Symbols property (Layer)

Возвращает для данного слоя коллекцию символов Symbols для работы с библиотекой символов.

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

Layer

Синтаксис:

Visual Basic:

Property Symbols As Symbols

read-only

Описание:

Коллекция содержит символы, которыми слой рисует символьные объекты.

Нумерация в Item идет с нуля, но номер и ID - разные вещи: ID символов идут не подряд. Перевести одно в другое позволяют методы GetIdByIndex и GetIndexById - в отличие от одноименных методов LineStyles, здесь они согласованы между собой. По ID символ берется свойством ItemById; на несуществующий ID оно дает Nothing без исключения.

ID символа хранится в стиле объекта - свойстве SymbolID объекта ElemStyle.

В случае неудачи возникает исключение с одним из следующих кодов:

Код

Описание

513

Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.

Пример:

Visual Basic:

Sub Layer_Symbols
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set Sym = L.Symbols
S = "Символов в слое: " & Sym.Count
'Нумерация с нуля, ID у символа свой
For i = 0 To 4
  If i < Sym.Count Then S = S & vbCrLf & "номер " & i & ": ID " & Sym.Item(i).Id & _
      ", " & Sym.Item(i).Name
Next
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_Symbols():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    sym = L.Symbols
    print("Символов в слое:", sym.Count)
    # Нумерация с нуля, ID у символа свой
    for i in range(min(sym.Count, 5)):
        print("номер", i, ": ID", sym.Item(i).Id, ",", sym.Item(i).Name)