Возвращает тип модели слоя, если слой является слоем инженерной сети.
Visual Basic:
Function GetLayerNetworkModel() As Long
Модель сети определяется эвристически по набору признаков, характерных для той или иной модели инженерной сети.
Возвращаемые значения:
0 - модель не определена
1 - модель тепловой сети ZuluThermo
2 - модель водопроводной сети ZuluHydro
3 - модель паровой сети ZuluSteam
4 - модель газовой сети ZuluGaz
5 - модель сети водоотведения ZuluDrain
Если признаков инженерной сети в слое нет, метод возвращает -1: так отвечают обычные векторные слои и слой, только что созданный методом Create. Признаки метод ищет среди типовых объектов слоя, поэтому слой без типов сетью не считается.
Visual Basic:
Sub Layer_GetLayerNetworkModel 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active N = L.GetLayerNetworkModel Select Case N Case -1 : S = "признаков инженерной сети нет" Case 0 : S = "модель не определена" Case 1 : S = "тепловая сеть ZuluThermo" Case 2 : S = "водопроводная сеть ZuluHydro" Case 3 : S = "паровая сеть ZuluSteam" Case 4 : S = "газовая сеть ZuluGaz" Case 5 : S = "сеть водоотведения ZuluDrain" Case Else : S = "значение не описано" End Select MsgBox L.Name & vbCrLf & "GetLayerNetworkModel = " & N & " - " & S End SubPython:
import zulu def Macro_Layer_GetLayerNetworkModel(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active models = {-1: "признаков инженерной сети нет", 0: "модель не определена", 1: "тепловая сеть ZuluThermo", 2: "водопроводная сеть ZuluHydro", 3: "паровая сеть ZuluSteam", 4: "газовая сеть ZuluGaz", 5: "сеть водоотведения ZuluDrain"} n = L.GetLayerNetworkModel() print(L.Name) print("GetLayerNetworkModel =", n, "-", models.get(n, "значение не описано"))