LineStyles property (Layer)

Возвращает коллекцию стилей линий слоя.

Применяется к:

Layer

Синтаксис:

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 Sub

Python:

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, ")")