Метод возвращает символ объект Symbol.
Visual Basic:
Function GetSymbol() As Symbol
Если символ элементу не задан - у только что созданного элемента и у элементов-линий, - метод возвращает Nothing. По этому признаку символьные элементы стиля отличают от линейных.
Возвращается копия символа, хранящаяся в элементе: ее Id равен -1, а название пустое, даже если элемент получил символ из библиотеки слоя с номером и названием.
Пример находит в библиотеке стилей слоя первые символьные элементы.
Visual Basic:
Sub LineStyleElement_GetSymbol 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set LS = L.LineStyles S = "" n = 0 'Перебираем стили и их элементы, нумерация с нуля For i = 0 To LS.Count - 1 Set els = LS.Item(i).StyleElements For j = 0 To els.Count - 1 Set sym = els.Item(j).GetSymbol 'У элемента-линии символа нет If (Not sym Is Nothing) And (n < 5) Then S = S & "стиль " & LS.Item(i).Id & ", элемент " & j & ": символ с Id " & sym.Id & vbCrLf n = n + 1 End If Next Next MsgBox S End SubPython:
import zulu def Macro_LineStyleElement_GetSymbol(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active LS = L.LineStyles n = 0 # Перебираем стили и их элементы, нумерация с нуля for i in range(LS.Count): els = LS.Item(i).StyleElements for j in range(els.Count): sym = els.Item(j).GetSymbol() # У элемента-линии символа нет if sym is not None and n < 5: print("стиль", LS.Item(i).Id, ", элемент", j, ": символ с Id", sym.Id) n += 1