RUS  ENG 

Автоматическое занесение наименований узлов (VBScript)

26 декабря 2018

Автоматическое занесение наименований узлов (VBScript)

В данном примере решается задача по автоматическому заполнению поля базы данных по узловым объектам - Наименование

Наименование объекта состоит из 2-х частей.

  • Статичного префикса "узел - ", который заносится по всем объектам.
  • Порядкового номера, который генерируется автоматически, начиная с 1. Нумерация производится на основании ID (sys) объекта, от меньшего к большему.
  Sub set_name_uzel 'type_uz - тип объекта 'preff - префикс type_uz = 4 preff= "" 'На момент запуска макроса необходимо открыть карту, активировать слой Set L = Zulu.ActiveMapDoc.Layers.Active ' Создали объект объект базы данных Zulu Set Db = CreateObject("Zb.ZbDatabase") ' открывает существующую семантическую базу данных типа 4 Db.Open L.ObjectTypes.Item(type_uz).BaseName ' Keys - список ключей объектов с типом 4 Set Keys = L.ElementKeys.SelectByType(type_uz,0) ' счетчик узлов n = 1 ' Перебираем все объекты типа 4 в цикле For i = 1 To Keys.Count ' создаем наименование узла, состоящее из префикса "узел -" и счетчика text = preff & n 'Записываем значение в соответствующие поля Db.UpdateBaseRecord Keys.Item(i), "Name" , text, 0 ' Добавляем к счетчику 1 n = n + 1 Next ' по завершению процедуры, выдаем сообщение с количеством переименованных узлов MsgBox "Пронумеровано " & n-1 &" узлов" End Sub

 См. также: Создание группы объектов на основании топологической связанности (VBScript)

Скачать пример (18.01 КБ)


Возврат к списку

Последнее обновление — 26.11.2023 23:11:18