Renga API: автоматизируем автоматизацию с помощью ИИ-агентов

Renga API: автоматизируем автоматизацию с помощью ИИ-агентов

Исследуем внутреннее устройство Renga — отечественного BIM-решения. Разбираем его API, сравниваем с Revit и показываем, как подключить ИИ-агента для автоматизации разработки.

  • Обзор архитектуры Renga API и сравнение с Revit API.
  • Преимущества COM-интерфейса для интеграции с ИИ.
  • Работа с API через Python и внешние скрипты.
  • Создание ИИ-агента, который изучает API, генерирует и тестирует код.
  • Генерация параметрических семейств через Renga STDL и Lua.

Все материалы доступны в открытом репозитории.

Почему это важно?

Разработка плагинов для BIM-систем, таких как Revit, традиционно требует:

  • глубокого знания API;
  • компиляции сборок;
  • сложной отладки.

Что если автоматизировать сам процесс разработки? ИИ-агент может изучать API, писать скрипты, тестировать их и исправлять ошибки. Такой рабочий пайплайн уже реализован для Renga.

В этой статье — как архитектура Renga API делает такую интеграцию возможной и как вы можете её повторить.

Renga API: обзор и сравнение с Revit API

Renga — это российская альтернатива Revit, предназначенная для автоматизации проектирования и создания 3D-моделей зданий.

Сравнение с Revit помогает понять ключевые отличия и преимущества.

Архитектура: почему COM — это преимущество

Renga API построен на COM (Component Object Model) — стандарте Microsoft для взаимодействия программных компонентов в Windows.

COM-интерфейс позволяет одной программе вызывать функции другой, даже если они написаны на разных языках.

Revit API работает иначе: плагины загружаются в изолированную среду .NET (AppDomain) внутри процесса Revit. Код выполняется в том же процессе, что и приложение, и имеет ограниченный доступ извне.

COM даёт важные преимущества для ИИ:

  • ИИ-агент управляет Renga как внешним процессом: может запускать, закрывать, отправлять команды.
  • Не нужно встраиваться в процесс — достаточно знать COM-интерфейсы.
  • Полный доступ к модели через внешние вызовы.

SDK Renga API

SDK (Software Development Kit) — набор инструментов для разработки ПО под конкретную платформу.

Структура SDK (актуально для Renga API v2.46):

Главный файл — RengaCOMAPI.tlb. Это типизированная библиотека COM-интерфейсов, которая позволяет генерировать interop-сборки для .NET.

Даже при разработке на C# вы работаете с COM-объектами через .NET-обёртку, а не с нативным .NET API, как в Revit.

Поддерживаемые языки

  • C++ — для нативных COM-плагинов;
  • C#/.NET — через interop-слой;
  • Python — для внешних скриптов через COM.

Это важное отличие от Revit: Python в Renga — штатный, документированный способ автоматизации, а не сторонняя оболочка.

Два сценария работы с API

  1. Внутрипроцессный плагин — DLL (C++ или .NET), загружаемая в процесс Renga через XML-дескриптор .rndesc.
  2. Внешняя автоматизация — отдельный процесс управляет Renga через COM Local Server или ROT.

Для ИИ-агентов предпочтителен второй сценарий: агент работает как независимый процесс и не требует компиляции.

Сравнение Renga и Revit API:

Базовая технология
Renga: COM — внешний интерфейс
Revit: .NET (RevitAPI.dll) — плагин встраивается в AppDomain

Развертывание
Renga: DLL или Python-скрипты
Revit: только DLL

Поддержка языков
Renga: C++, C#, Python (официально)
Revit: C#, Python (через неофициальные обходные пути)

Ключевые возможности для ИИ

Взаимодействие через COM

COM-природа Renga API делает его доступным для ИИ-агентов:

  1. Глубокая интеграция — агент может управлять запуском, проектами, сессиями.
  2. Полный доступ к модели — через внешние команды, без встраивания в процесс.

Библиотека renga_ai: Python-скиллы для агента

Фокус — на внешней автоматизации через Python. Создана библиотека инструкций и скриптов, где каждый скрипт — это «скилл» для ИИ-агента.

Реализовано:

  • подключение к приложению;
  • открытие и сохранение проекта;
  • доступ к модели и объектам;
  • создание и удаление объектов;
  • чтение параметров и свойств;
  • дамп объектов и геометрии;
  • рефлексия по RengaCOMAPI.tlb.

Минимальный пример: начало работы с Renga

Простая схема взаимодействия ИИ с Renga:

Ключевой скилл и общий пайплайн

Используется reflection-driven подход: агент изучает API, анализирует объекты и генерирует код.

Основной скилл — dump_object(com_object: Any) -> Dict[str, Any].

Дамп нужен, чтобы:

  • увидеть, какие интерфейсы поддерживает COM-объект;
  • не гадать по названиям;
  • получить реальные значения свойств;
  • определить безопасные методы для чтения;
  • найти геометрические интерфейсы;
  • сопоставить объект с документацией из RengaAPI_Docs/.

Порядок работы агента:

  1. Получает список скиллов через get_skills_catalog().
  2. Ищет подходящий скилл. Если не находит — продолжает.
  3. Выполняет dump_object() или dump_selected_object().
  4. Анализирует дамп.
  5. Ищет нужные интерфейсы в документации и .tlb.
  6. Генерирует и запускает скрипт.
  7. Повторяет до достижения результата.

Примеры работы

Агент может, например, создавать текст из стен с помощью бесплатной модели Qwen Code.

Более практичный пример — подсчёт объёма и площади стен.

Такой агент подходит для изучения API, написания плагинов и тестирования. Он сам открывает модель, запускает скрипты, ловит ошибки и вносит правки.

Есть потенциал использовать его как ассистента в повседневной работе.

Renga STDL API: создание семейств через ИИ

В Renga нет графического редактора параметрических семейств, как в Revit. Вместо этого используются «шаблоны стилей», создаваемые через код на Lua и JSON.

Раньше это считалось слишком сложным. Но с ИИ подход меняется.

Что такое STDL?

Renga STDL — отдельный SDK для создания параметрических объектов. Основан на Lua + JSON.

Цель — создание объектов с вычисляемой геометрией.

Агент для генерации семейств

В библиотеке renga_ai реализована основа для работы с STDL.

Документация, примеры и вспомогательные файлы доступны в папке RengaSTDL_Docs/.

Идея проста: агент генерирует код на Lua, описывающий геометрию, создаёт JSON-файл и запускает RstBuilder.exe из SDK.

На выходе — файл .rst, который загружается в Renga.

Например, стул был сгенерирован по простому промпту. Агент добавил параметризацию.

Как начать использовать?

Скачайте репозиторий renga_ai и дайте ИИ-агенту прочитать README.md и AGENTS.md. После этого он готов к работе.

Можно использовать qwen code — бесплатную модель без ограничений. Дневных лимитов хватит при умеренном использовании.

Заключение

Преимущества Renga API и STDL:

  • Гибкость API — COM позволяет управлять приложением из любого процесса.
  • Официальная поддержка Python — без костылей.
  • ИИ-агент как разработчик — сам изучает API, пишет и тестирует код.
  • Lua для семейств — мощный инструмент в руках ИИ.

Потенциал применения:

  • Автоматизация рутинных задач в BIM.
  • Быстрое прототипирование плагинов.
  • Обучение разработчиков через ИИ-ассистента.
  • Генерация библиотек компонентов по ТЗ.

Renga предоставляет удобный опыт взаимодействия с API. Это направление может изменить подход к работе с CAD-системами.

Библиотека renga_ai упрощает интеграцию с ИИ и даёт полезные инструменты для изучения и автоматизации.

Читать оригинал