Российская BIM-система
eng

Блог / В двух словах об API

На днях на Хабре вышла статья, в которой Евгений Тян, наш ведущий разработчик, рассказывает об API Renga.
Для тех, кто знаком с нашими системами, знает какое расширение написать и даже готов приступать, только не знает как, приводим выдержку из статьи.
“Вам понадобится VisualStudio и уверенность, что вы знаете C++ (сейчас у Renga C++ API, но в перспективе (уже зимой) у нас переход на COM, будем поддерживать .Net расширения).
Итак, по шагам:
  1. Скачиваем SDK отсюда, распаковываем в удобное место.
  2. Создаем простую dll с настройками по умолчанию, назовем MyPlugin.
  3. В дополнительных папках включений и дополнительных папках lib добавляем путь к RengaSDK, во включаемые библиотеки добавляем RengaApi.lib и RengaBase.lib
  4. Теперь напишем минимальную реализацию. По сути C++ расширение к Renga - обычная dll библиотека с экспортной функцией, которая возвращает указатель на интерфейс IPlugin. Поэтому все что нам нужно сделать:
    1. Создать класс унаследованный от этого интерфейса. В классе реализуем оба метода интерфейса start и stop, эти методы будут вызваны после загрузки и перед выгрузкой соответственно. Реализацию пока оставим пустой.
    2. Реализовать экспортную функцию, возвращающую указатель на интерфейс IPlugin. Для этого можно воспользоваться макросом EXPORT_PLUGIN
  5. Создадим файл описания расширения с именем MyPlugin.rnedesc с таким текстом:
  6. <RengaPlugin>     <Name>MyPlugin</Name>     <Version>1.0</Version>     <Vendor>Vendor name</Vendor>     <Copyright>Copyright text</Copyright>     <RequiredAPIVersion>1.2</RequiredAPIVersion>     <PluginFilename>MyPlugin.dll</PluginFilename> </RengaPlugin>

  7. Для того, чтобы расширение появилось в Renga в папке установки Renga в папке Plugins, создаем папку MyPlugin, в которую кладем нашу dll и файл описания.
Если все сделано правильно, то при запуске Renga в диалоге настроек в разделе “Расширения” появится наше расширение, которое ничего не делает.”
Далее в статье рассматривается как сделать приложение для расчета кирпичей в стенах.

Сейчас с помощью API Renga вы можете:
  • Экспортировать 3D представление объектов в виде полигональной сетки (mesh-представление), разделенное на группы, чтобы можно было, к примеру, отличить фасад стены от торца.
  • Добавлять элементы управления в пользовательский интерфейс Renga (ну и реагировать на них, само собой).
  • Получать параметры и расчетные характеристики трехмерных объектов модели (объемы, площади, размеры и т.п.).
  • Создавать пользовательские свойства, назначать их объектам модели, менять значение.
  • Управлять видимостью и выделять объекты модели.
Для начала работы с API Renga ознакомьтесь с SDK, и примерами на все основные возможности.
Читайте полную статью об API на Хабре, а кроме того, обратите внимание на заметки в блоге Фильтры Renga и Модель здания в подробностях.