Возвращает для данного слоя коллекцию символов Symbols для работы с библиотекой символов.
Visual Basic:
Property Symbols As Symbols
read-only
Коллекция содержит символы, которыми слой рисует символьные объекты.
Нумерация в Item идет с нуля, но номер и ID - разные вещи: ID символов идут не подряд. Перевести одно в другое позволяют методы GetIdByIndex и GetIndexById - в отличие от одноименных методов LineStyles, здесь они согласованы между собой. По ID символ берется свойством ItemById; на несуществующий ID оно дает Nothing без исключения.
ID символа хранится в стиле объекта - свойстве SymbolID объекта ElemStyle.
В случае неудачи возникает исключение с одним из следующих кодов:
Код
Описание
513
Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.
Visual Basic:
Sub Layer_Symbols 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set Sym = L.Symbols S = "Символов в слое: " & Sym.Count 'Нумерация с нуля, ID у символа свой For i = 0 To 4 If i < Sym.Count Then S = S & vbCrLf & "номер " & i & ": ID " & Sym.Item(i).Id & _ ", " & Sym.Item(i).Name Next MsgBox S End SubPython:
import zulu def Macro_Layer_Symbols(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active sym = L.Symbols print("Символов в слое:", sym.Count) # Нумерация с нуля, ID у символа свой for i in range(min(sym.Count, 5)): print("номер", i, ": ID", sym.Item(i).Id, ",", sym.Item(i).Name)