Возвращает ID стиля линии в коллекции стилей линий.
Visual Basic:
Property Id As Long
read-only
У только что созданного описателя стиля свойство равно -1: ID выдается, когда стиль попадает в библиотеку стилей слоя методом AddItem коллекции LineStyles. Метод возвращает тот же номер, который потом показывает это свойство.
По этому номеру стиль берут из библиотеки методом ItemById; для несуществующего номера он возвращает Nothing. Номер по индексу дает метод GetIdByIndex.
Стиль, перенесенный в другой объект методом SetBLOB, свой номер не сохраняет: у объекта - приемника ID остается -1 до добавления в библиотеку.
Пример показывает ID стиля до и после добавления в библиотеку стилей слоя.
Visual Basic:
Sub LineStyleDef_Id 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Собираем стиль из одной линии Set lsd = CreateObject("ZuluLib.LineStyleDef") Set lse = CreateObject("ZuluLib.LineStyleElement") lse.SetLineColor RGB(0, 128, 0) lse.SetLineWidth 1 lsd.AddLineElement lse S = "Id нового описателя: " & lsd.Id 'Кладем стиль в библиотеку стилей слоя Id = L.LineStyles.AddItem(lsd, -1) S = S & vbCrLf & "AddItem вернул: " & Id 'Берем стиль обратно по этому номеру Set got = L.LineStyles.ItemById(Id) S = S & vbCrLf & "Id стиля из библиотеки: " & got.Id MsgBox S End SubPython:
import zulu def Macro_LineStyleDef_Id(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Собираем стиль из одной линии lsd = zulu.LineStyleDef() lse = zulu.LineStyleElement() lse.SetLineColor(32768) lse.SetLineWidth(1) lsd.AddLineElement(lse) print("Id нового описателя:", lsd.Id) # Кладем стиль в библиотеку стилей слоя ident = L.LineStyles.AddItem(lsd, -1) print("AddItem вернул:", ident) # Берем стиль обратно по этому номеру got = L.LineStyles.ItemById(ident) print("Id стиля из библиотеки:", got.Id)