Возвращает коллекцию типов структуры слоя ObjectTypes.
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 SubPython:
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, ")")