ObjectTypes property (Layer)

Возвращает коллекцию типов структуры слоя ObjectTypes.

Применяется к:

Layer

Синтаксис:

Visual Basic:

Property ObjectTypes As ObjectTypes

read-only

Описание:

Коллекция описывает типы объектов слоя - у тепловой сети это, например, «Источник», «Узел», «Потребитель». Свойство Item принимает и ID типа, и его название, а перебирать коллекцию удобно методом GetItemByIndex, у которого номера идут с нуля. Номер по названию дает GetIndexByName.

У каждого типа есть ID, название, графический тип, номер базы данных BaseID и набор режимов Modes. Обращение по несуществующему ID вызывает исключение 521.

В случае неудачи возникает исключение с одним из следующих кодов:

Код

Описание

513

Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.

517Слой не является векторным слоем.

Пример:

Visual Basic:

Sub Layer_ObjectTypes
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set OT = L.ObjectTypes
S = "Типов в слое: " & OT.Count
'Перебор по номерам с нуля
For i = 0 To OT.Count - 1
  Set T = OT.GetItemByIndex(i)
  S = S & vbCrLf & "тип " & T.Id & ": " & T.Name & " (режимов " & T.Modes.Count & ")"
Next
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_ObjectTypes():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    ot = L.ObjectTypes
    print("Типов в слое:", ot.Count)
    # Перебор по номерам с нуля
    for i in range(ot.Count):
        t = ot.GetItemByIndex(i)
        print("тип", t.Id, ":", t.Name, "(режимов", t.Modes.Count, ")")