DoSelectByAttributes method (MapDoc)

Открывает для слоя диалог «Выделить объекты по атрибутам отображения» и выделяет объекты, отмеченные в нем.

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

MapDoc

Синтаксис:

Visual Basic:

Function DoSelectByAttributes(Layer As Layer) As Boolean

Layer - слой карты, в котором выделяются объекты.

Описание:

Метод открывает тот же диалог, что и команда меню ZuluGIS «Карта | Запрос | По атрибутам». В диалоге перечислены способы отображения объектов слоя, а вкладки зависят от его содержимого: «Типовые» - типы объектов и их режимы, «Контуры» - стили заливки площадных объектов, «Линии» - стили линий, «Текст» - шрифты надписей, «Простые символы» - символы. Вкладки, для которых в слое нет объектов, не показываются.

Если отметить в диалоге строки и нажать «OK», метод возвращает True, а в выделении слоя (Selection) оказываются все объекты с отмеченными атрибутами. Если нажать «Отмена», метод возвращает False, и выделение слоя не меняется.

Макрос ждет, пока диалог не будет закрыт.

Пример:

Пример открывает диалог для активного слоя и сообщает, сколько объектов выделено.

Visual Basic:

Sub MapDoc_DoSelectByAttributes
'Берем рабочую карту и ее активный слой
Set Doc = Zulu.ActiveMapDoc
Set L = Doc.Layers.Active
'Диалог выделения по атрибутам отображения
If Doc.DoSelectByAttributes(L) Then
  MsgBox "Выделено объектов: " & L.Selection.ElementKeys.Count
Else
  MsgBox "Выбор отменен"
End If
End Sub

Python:

import zulu

def Macro_MapDoc_DoSelectByAttributes():
    # Берем рабочую карту и ее активный слой
    doc = zulu.App.ActiveMapDoc
    L = doc.Layers.Active
    # Диалог выделения по атрибутам отображения
    if doc.DoSelectByAttributes(L):
        print("Выделено объектов:", L.Selection.ElementKeys.Count)
    else:
        print("Выбор отменен")