В статье Непоследний обзор API Renga мы рассказывали какими возможностями обладает API Renga, где искать документацию и примеры.
Сегодня поговорим о том, как c помощью простого скрипта на Python и JSON-файла можно автоматизировать создание свойств в проекте Renga.
Допустим, вы часто работаете по такой схеме: вам приходит проект от смежных специалистов. И здесь даже не важно сделан проект в Renga или он пришел к вам в формате IFC, а вы будете продолжать работу в Renga. Важно то, что в нем нет необходимого набора свойств.Поскольку набор может быть достаточно большим, вносить одни и те же свойства надоедает.
Тут на помощь приходит простая автоматизация.
Сначала давайте вспомним, какие характеристики есть у свойств объектов Renga:
- Имя свойства.
- Идентификатор свойства.
- Тип свойства.
- Если свойство типа Перечисление, то для него нужно еще создать список значений.
- Кроме того можно определить, какие типы объектов будут обладать этими свойствами.
Что ж, на основании этих данных прорабатываем JSON-файл, его описание для одного свойства будет выглядеть примерно так:
Обязательными записями в описании тут будут только “Имя свойства” и “property_type”, все остальное можно опустить. Например, вам не важен идентификатор свойства, вы его не указываете и он будет сгенерирован скриптом. Чтобы свойство автоматически было назначено типу объекта, вам нужно скопировать и вставить в JSON уникальные идентификаторы типов объектов из справки API, если назначать будете вручную, то можно пропустить.
Наш скрипт должен прочесть данные, обработать их и передать в Renga.
Если вы не хотите вникать, как писать скрипт, но хотите его использовать, то можете:
- Установить последнюю версию Python.
- В папке установки Python из командной строки вызвать pip install pywin32.
- Скачать скрипт и JSON-шаблон.
- Отредактировать или создать новый JSON-файл так, чтобы в нем были необходимые вам свойства.
- Запустить скрипт из командной строки с указанием файла проекта и JSON-файла со свойствами, замените имена:сreate_properties.py --project "C:\Projects\test.rnp" --properties "C:\Projects\properties.json"
Если вы никогда не писали на Python, и не использовали Renga API, но хотите попробовать, то для дальнейшей работы вам надо:
- Скачать RengaSDK.
- Установить последнюю версию Python.
- Установить редактор кода. Мы рекомендуем Visual Studio Code, но можно использовать и Notepad ++ или онлайн-редакторы.
- В папке установки Python из командной строки вызвать pip install pywin32.
- Открыть любой скрипт из папки RengaSDK\Samples\Python в редакторе кода, запустить отладку и проверить, что все работает.
Далее в редакторе кода создаем новый файл с расширением .py. Объявляем загрузку модулей.
Чтобы пользователь мог сам выбрать файл проекта и файл со свойствами добавим функцию, которая будет считывать параметры командной строки при запуске скрипта. Чтобы функция работала, добавляем загрузку модуля argparse .
Дальше нам понадобится открыть проект Renga и JSON-файл. Кстати, не забудьте его подготовить.
В файле RengaSDK\Samples\Python\OpenSaveCloseProject.py описано, как открыть проект, сохранить и закрыть. Копируем оттуда код и изменяем его с учетом того, что мы будем брать указанный ранее аргумент, как файл проекта.
Дальше мы будем работать со свойствами, поэтому нужно задать обращение к Менеджеру Свойств Renga.
Создаем словарь, который будет устанавливать соответствие заданных пользователем типов свойств - типам свойств Renga согласно справке API.
Дальше будем загружать данные из json-файла. Чтобы загрузка работала, в первой строке скрипта подключим JSON.
Продолжаем писать скрипт. После словаря открываем выбранный JSON-файл.
Чтобы проверить скрипт запустите командную строку на папке скриптов, выберите скрипт и укажите аргументы:
C:\Projects\RengaSDK\Samples\Python>create_properties.py --project "C:\Projects\test.rnp" --properties "C:\Projects\RengaSDK\Samples\Python\properties.json"
При запуске скрипта у вас откроется проект в Renga, в нем создадутся свойства, перечисленные в JSON-файле и, если там указаны идентификаторы типов объектов, у выбранных типов в проекте Renga появятся новые свойства. А если не указаны идентификаторы, то их можно увидеть во вкладке Все свойства в редакторе Свойств.
Если вы хотите, чтобы свойствам присваивались определенные значения, то вы можете это так же cделать с помощью скрипта. Как это сделать, показано в примере CreateProperty.py.
В общем, используйте наш скрипт, дорабатывайте его, задавайте вопросы. И, как всегда, следите за новостями!
Комментарии
https://help.rengabim.com/api/interface_i_property_manager.html
Посмотрите еще примеры в SDK.
Отправить комментарий