Добавляет в описатель стиля линии новый линейный элемент.
Visual Basic:
Sub AddLineElement(iElement As LineStyleElement)
iElement - объект, описывающий стиль одиночной линии.
Стиль линии собирается из элементов: одиночные линии добавляются этим методом, символы вдоль линии - методом AddSymbolElement. В одном стиле их может быть сколько угодно и в любом сочетании; порядок добавления сохраняется, и весь набор виден через StyleElements.
Элемент переносится в стиль копией: после вызова тот же объект можно перенастроить и добавить снова - в стиле окажутся два разных элемента. Толщина линии, если ее не задали методом SetLineWidth, остается равной 0,0265 миллиметра - это тончайшая линия в одну точку.
Готовый стиль попадает в библиотеку стилей слоя методом AddItem. Стиль, уже лежащий в библиотеке, метод ItemById отдает копией: добавленный элемент виден только в этом объекте, а в библиотеку изменение возвращается методом ReplaceItem - после него новый состав читается и новым объектом, и после переоткрытия слоя.
Пример собирает стиль из двух параллельных красных линий и кладет его в слой.
Visual Basic:
Sub LineStyleDef_AddLineElement 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Описатель стиля линии Set lsd = CreateObject("ZuluLib.LineStyleDef") 'Первая линия - сплошная красная Set lse = CreateObject("ZuluLib.LineStyleElement") lse.SetLineColor RGB(255, 0, 0) lse.SetLineType 0 lse.SetLineWidth 1 lsd.AddLineElement lse 'Вторая такая же, но сдвинута по вертикали Set lse2 = CreateObject("ZuluLib.LineStyleElement") lse2.SetLineColor RGB(255, 0, 0) lse2.SetLineType 0 lse2.SetLineWidth 1 lse2.SetLineShiftVer 5 lsd.AddLineElement lse2 S = "Элементов в стиле: " & lsd.StyleElements.Count 'Кладем стиль в библиотеку стилей слоя S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1) MsgBox S End SubPython:
import zulu def Macro_LineStyleDef_AddLineElement(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Описатель стиля линии lsd = zulu.LineStyleDef() # Первая линия - сплошная красная lse = zulu.LineStyleElement() lse.SetLineColor(255) lse.SetLineType(0) lse.SetLineWidth(1) lsd.AddLineElement(lse) # Вторая такая же, но сдвинута по вертикали lse2 = zulu.LineStyleElement() lse2.SetLineColor(255) lse2.SetLineType(0) lse2.SetLineWidth(1) lse2.SetLineShiftVer(5) lsd.AddLineElement(lse2) print("Элементов в стиле:", lsd.StyleElements.Count) # Кладем стиль в библиотеку стилей слоя print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))