BaseName property (Layer)

Возвращает/устанавливает для слоя текущее имя семантической базы данных примитивов.

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

Layer

Синтаксис:

Visual Basic:

Property BaseName As String

Описание:

Строка содержит имя файла описания базы данных системы Zulu, подключенной в данный момент к примитивам слоя. Для базы, файл которой лежит в папке слоя, имя возвращается без пути; полное имя файла даёт свойство Name объекта BaseInfo из коллекции Bases. Если база к примитивам не подключена, свойство возвращает пустую строку.

Это свойство не имеет смысла для типовых объектов слоя, так как каждый тип может иметь собственную базу данных, имя которой можно получить через свойство ObjectTypes.

Запись свойства подключает базу по имени и меняет свойство BaseID. Если база данных с указанным именем отсутствует в списке баз данных слоя, то она будет в список добавлена.

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

Код

Описание

513

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

Пример:

Visual Basic:

Sub Layer_BaseName
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
If L.Bases.Count = 0 Then
  MsgBox "У слоя нет баз данных"
  Exit Sub
End If
Old = L.BaseID
'Подключаем к примитивам первую базу слоя по полному имени файла
L.BaseName = L.Bases.Item(0).Name
MsgBox "Подключена база «" & L.BaseName & "», ее ID " & L.BaseID
'Возвращаем прежнюю базу
L.BaseID = Old
End Sub

Python:

import zulu

def Macro_Layer_BaseName():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    if L.Bases.Count == 0:
        print("У слоя нет баз данных")
        return
    old = L.BaseId
    # Подключаем к примитивам первую базу слоя по полному имени файла
    L.BaseName = L.Bases.Item(0).Name
    print("Подключена база", L.BaseName, ", ее ID", L.BaseId)
    # Возвращаем прежнюю базу
    L.BaseId = old