ThemeFilters property (Layer)

Возвращает коллекцию ThemeFilters фильтров тематических раскрасок слоя.

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

Layer

Синтаксис:

Visual Basic:

Property ThemeFilters As ThemeFilters

read-only

Описание:

Фильтр описывает, по какому признаку раскрашивать объекты; по нему строится сама раскраска - методом CreateTheme, которому передают ID фильтра. Готовые раскраски слоя лежат в коллекции Themes.

Номер и ID связаны методами GetIdByIndex и GetIndexById, сам описатель дают GetItemByIndex и GetItemById. У описателя читается название - свойство UserName.

На несуществующий ID GetItemById возвращает не Nothing, а пустой описатель, поэтому ID лучше брать из самой коллекции.

Пример:

Visual Basic:

Sub Layer_ThemeFilters
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set TF = L.ThemeFilters
S = "Фильтров раскраски: " & TF.Count
'Нумерация с нуля, ID у фильтра свой
For i = 0 To TF.Count - 1
  S = S & vbCrLf & "номер " & i & ": ID " & TF.GetIdByIndex(i) & ", " & TF.GetItemByIndex(i).UserName
Next
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_ThemeFilters():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    tf = L.ThemeFilters
    print("Фильтров раскраски:", tf.Count)
    # Нумерация с нуля, ID у фильтра свой
    for i in range(tf.Count):
        print("номер", i, ": ID", tf.GetIdByIndex(i), ",", tf.GetItemByIndex(i).UserName)