Возвращает коллекцию LineStyleElements - набор одиночных линий и символов, из которых собран стиль линии.
Visual Basic:
Property StyleElements As LineStyleElements
read-only
Элементы в коллекции нумеруются с нуля, обращение по номеру Count возвращает Nothing. У простого стиля один элемент, у штрихового или штрих-пунктирного их несколько; у нового описателя стиля коллекция пуста, пока в него не добавлены элементы методами AddLineElement и AddSymbolElement.
Свойство отдает не копию, а сам набор стиля: два обращения подряд дают один и тот же объект.
Параметры элемента читаются его методами GetLineType, GetLineColor, GetLineWidth, GetLineStep, GetLineDash и другими, а видимость элемента в стиле - методом GetElemVisible самой коллекции. У линейного элемента GetSymbol возвращает Nothing.
Пример разбирает штриховой стиль слоя на элементы.
Visual Basic:
Sub LineStyleDef_StyleElements 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Стиль линии с номером 4 - штриховой Set lsd = L.LineStyles.ItemById(4) If lsd Is Nothing Then MsgBox "В слое нет стиля с номером 4" Exit Sub End If Set els = lsd.StyleElements S = "Элементов в стиле: " & els.Count 'Нумерация элементов с нуля For i = 0 To els.Count - 1 Set e = els.Item(i) S = S & vbCrLf & i & ": цвет " & e.GetLineColor & ", толщина " & e.GetLineWidth & _ ", шаг " & Round(e.GetLineStep, 2) & ", штрих " & Round(e.GetLineDash, 2) & _ ", виден " & els.GetElemVisible(i) Next MsgBox S End SubPython:
import zulu def Macro_LineStyleDef_StyleElements(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Стиль линии с номером 4 - штриховой lsd = L.LineStyles.ItemById(4) if lsd is None: print("В слое нет стиля с номером 4") return els = lsd.StyleElements print("Элементов в стиле:", els.Count) # Нумерация элементов с нуля for i in range(els.Count): e = els.Item(i) print(i, ": цвет", e.GetLineColor(), ", толщина", e.GetLineWidth(), ", шаг", round(e.GetLineStep(), 2), ", штрих", round(e.GetLineDash(), 2), ", виден", els.GetElemVisible(i))