Возвращает коллекцию стилей линий слоя.
Visual Basic:
Property LineStyles As LineStyles
read-only
Коллекция содержит стили линий, доступные слою: каждый элемент - это объект LineStyleDef со своим Id, именем и набором элементов рисования StyleElements. Нумерация в Item идет с нуля, по ID стиль берется свойством ItemById.
Несуществующий номер и несуществующий ID возвращают Nothing, исключения при этом не возникает - ответ стоит проверять.
Номер элемента в ID переводит метод GetIdByIndex. А вот обратный метод GetIndexById номер в этой коллекции не дает - возвращаемое им число с номером элемента не совпадает, так что искать элемент по ID надежнее свойством ItemById или перебором.
В случае неудачи возникает исключение с одним из следующих кодов:
Код
Описание
513
Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.
Visual Basic:
Sub Layer_LineStyles 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set LS = L.LineStyles S = "Стилей линий: " & LS.Count 'Нумерация с нуля; показываем стили, у которых есть имя For i = 0 To LS.Count - 1 Set D = LS.Item(i) If Len(D.Name) > 0 Then S = S & vbCrLf & "Id " & D.Id & ": " & D.Name & " (элементов " & D.StyleElements.Count & ")" End If Next MsgBox S End SubPython:
import zulu def Macro_Layer_LineStyles(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active ls = L.LineStyles print("Стилей линий:", ls.Count) # Нумерация с нуля; показываем стили, у которых есть имя for i in range(ls.Count): d = ls.Item(i) if len(d.Name) > 0: print("Id", d.Id, ":", d.Name, "(элементов", d.StyleElements.Count, ")")