Text2BIM - это мультиагентный фреймворк на базе LLM, который генерирует 3D-модели зданий по текстовому описанию непосредственно в САПР

Text2BIM - это мультиагентный фреймворк на базе LLM, который генерирует 3D-модели зданий по текстовому описанию непосредственно в САПР
ProGenAI Сколково
+79153432992
Недавно мы публиковали обзор статьи про BIMgent от ученых из Мюнхенского технического университета!
Та же научная группа опубликовала в 2024 году статью с несколько другим подходом к генеративному построению BIM-моделей - мультиагентный фреймворк на базе LLM генерирует 3D-модели зданий по текстовому описанию непосредственно в САПР.
3212

Цель

Общая информация
Как это работает?
Пользователь пишет, что он хочет построить (например, «двухэтажный отель с восемью комнатами на этаже»), а система преобразует это в код и автоматически создает полноценную 3D-модель.
Фреймворк основан на работе четырех ИИ-агентов:
  • Владелец продукта: Уточняет задачу
  • Архитектор: Создает детальный план
  • Программист: Пишет код для модели
  • Рецензент: Проверяет ошибки и предлагает исправления
Важная часть системы — это Rule-Based Model Checker
  • Этот компонент не основан на ИИ и использует детерминированные правила (например, проверка на коллизии, корректность пространственной структуры, поддержка крыш стенами) для объективной оценки качества сгенерированной BIM-модели. Его отчеты направляются агенту-рецензенту для исправления ошибок.
Результаты
  • В ходе экспериментов фреймворк показал высокую эффективность. При использовании моделей GPT-4o и Mistral-Large-2 средний процент прохождения проверок качества для итоговых моделей достиг 99.4% и 99.2% соответственно. Это доказывает, что подход позволяет генерировать высококачественные и структурно-рациональные BIM-модели, полностью соответствующие задаче пользователя

Потенциал

Архитектура Text2BIM
Text2BIM — это модульный фреймворк, который генерирует BIM-модели не через эмуляцию действий в GUI, а путем создания исполняемого кода, вызывающего API САПР. Его архитектура основана на совместной работе нескольких LLM-агентов.
От запроса к детализированному плану

Этот этап преобразует абстрактную текстовую инструкцию пользователя в структурированный архитектурный план, готовый для программной реализации.

  • 1. Расширение запроса (Product Owner): Этот агент получает исходную инструкцию пользователя (α) и обогащает её, создавая подробное техническое задание.
    • На входе: Инструкция пользователя, описание доступных инструментов (T), история диалога (Φ_global).
    • Метод: Использует технику Chain of Thought (CoT) для пошагового рассуждения и декомпозиции задачи.
    • На выходе: Детализированный документ с требованиями (α_enhanced).
  • 2. Генерация архитектурного плана (Architect): Вызывается Владельцем продукта для создания конкретного плана здания.
    • Метод: Работает на основе few-shots learning и специального промпт-шаблона (P_Arch), в который заложены базовые архитектурные правила (конфигурация компонентов, внутренние перегородки и т.д.). Вызов агента происходит через механизм function-calling.
    • На выходе: Структурированный текстовый план (Building_Plan) с координатами и размерами элементов.
    • Процесс описывается формулами: Building_Plan ← F(LLM_Architect(P_Arch(α'))), α_enhanced ← LLM_ProductOwner(P_PO(α, T, Φ_global) | Building_Plan)
Генерация кода и самокоррекция

Слой преобразует детализированный план в исполняемый Python-код, который создает BIM-модель.

  • Programmer (Программист): Ключевой агент, который пишет код, используя заранее определенный набор высокоуровневых функций (Toolset).
    • На входе: Расширенные требования (α_enhanced), информация об инструментах (T).
    • Метод: Использует zero-shot learning, что позволяет ему гибко комбинировать функции для решения разнообразных задач без жестких примеров.
    • На выходе: Python-код (code), готовый к исполнению. code ← LLM_Coder(P_Co(α_enhanced, T, Φ_global))
  • Цикл саморефлексии (Self-reflection loop): Встроенный механизм для автоматического исправления синтаксических ошибок.
    • Процесс: Если при выполнении кода кастомный интерпретатор обнаруживает ошибку (E), она вместе с проблемным кодом (code_n) отправляется обратно Программисту для исправления.
    • Ограничение: Цикл повторяется до 3 раз. code_n+1 ← LLM_Coder(P_Co(E_n, T, code_n))
Проверка качества и итеративное улучшение

Финальный этап, где сгенерированная модель проверяется на соответствие правилам и дорабатывается в цикле обратной связи.

  • Model Checking: Готовая модель экспортируется в IFC и проверяется внешним rule-based чекером (в исследовании — Solibri) на основе набора детерминированных правил (классы 1-3 по классификации Solihin & Eastman).
    • Проверяется: Геометрические коллизии, корректность семантических атрибутов, соответствие архитектурной логике (например, крыша должна опираться на стены).
    • На выходе: Отчет об ошибках в формате BCF, содержащий информацию о проблемах (I).
  • Reviewer (Рецензент): Этот агент анализирует отчет об ошибках и предлагает решение.
    • На входе: Информация об ошибках (I), описание инструментов (T), исходный код (code).
    • На выходе: Текстовые предложения по исправлению кода (β). β ← LLM_Reviewer(P_Rev(I, T, code))
  • Цикл оптимизации качества (Quality-optimization loop): Программист получает предложения от Рецензента и генерирует исправленный код (code_t+1), который снова проходит через проверку. Этот процесс также ограничен 3 итерациями и является ключевым для достижения высокого качества модели.
Оценка производительности и анализ ошибок

Для тестирования был создан кастомный бенчмарк Mini Building Benchmark. Результаты абляционных исследований: Отключение ключевых компонентов показало их критическую важность:

  • Результаты сравнения LLM: Фреймворк показал высокую эффективность с разными базовыми моделями.
    • GPT-4o: 99.4% средний процент прохождения правил.
    • Mistral-Large-2: 99.2% средний процент прохождения правил.
    • Gemini-1.5-Pro: 94.05%, показал менее стабильные результаты.
  • Эффективность цикла оптимизации:
    • GPT-4o и Mistral-Large-2 в роли Рецензента успешно снижали количество ошибок в модели с каждой итерацией.
    • Gemini-1.5-Pro иногда пытался полностью переписать код вместо исправления, что приводило к увеличению числа ошибок.
  • Анализ ошибок: Качественный анализ показал, что агенты отлично справляются с простыми, детерминированными проблемами, но испытывают трудности со сложными пространственными задачами.
    • Успешно решаются: Проблемы класса 1 (например, "в модели не определено пространство" → "создать пространство").
    • Сложности возникают: Проблемы класса 3, требующие пространственного понимания (например, "две стены пересекаются" → какую стену и в какую сторону двигать?).
  • Ключевые технологические особенности:
    • Императивное представление моделей: BIM-модель представляется в виде кода, а не данных, что позволяет гибко комбинировать вызовы функций и использовать алгоритмическую логику.
    • Декомпозиция через специализацию: Распределение ролей между агентами позволяет эффективно разделить сложную задачу на подзадачи (архитектура, программирование, верификация).
    • Детерминированная верификация: Использование правил и модели-чекера обеспечивает объективную оценку качества, не зависящую от стохастичности LLM.
  • Таким образом, Text2BIM — это комплексная система, решающая задачу автоматизации САПР через генерацию кода, полагаясь на совместную работу LLM-агентов и уникальный цикл итеративного улучшения качества модели на основе правил.

Тематика семинара

Сравнение BIMgent и Text2BIM
BIMgent и Text2BIM - это два принципиально разных взгляда на автоматизацию процесса проектирования.
BIMgent — это «цифровой ассистент», который имитирует действия человека, управляя мышью и клавиатурой в графическом интерфейсе программы. Text2BIM — это «команда ИИ-программистов», которая пишет код для прямого взаимодействия с программным ядром (API) САПР.
 

Сравнительная таблица подходов

Критерий

 

BIMgent (Эмуляция пользователя)

 

Text2BIM (Генерация кода)

 

Основной принцип работы

 

Эмуляция действий пользователя. Агент "смотрит" на экран и "кликает" по кнопкам, как человек.

 

Генерация исполняемого кода. Агенты пишут Python-скрипт, который напрямую вызывает функции программы.

 

Способ взаимодействия с САПР

 

Управление графическим интерфейсом (GUI). Использует мышь, клавиатуру, горячие клавиши.

 

Вызов программного интерфейса (API). Прямые команды к ядру программы без использования GUI.

 

Архитектура системы

 

Иерархический агент. Один агент с иерархией планировщиков (High-level и Low-level).

 

Мультиагентная система. Команда из четырех агентов с разными ролями (Product Owner, Architect, Programmer, Reviewer).

 

Входные данные

 

Мультимодальные: текст, эскизы, изображения планов.

 

Преимущественно текстовые. Основной фокус на преобразовании текстовых инструкций.

 

Механизм исправления ошибок

 

Визуальный контроль. "Супервайзер" анализирует скриншоты после каждого действия и, если результат неверный, инициирует коррекцию. Ошибки — это неправильные действия в интерфейсе.

 

Двойной цикл проверки:

 

  1. Кода: Интерпретатор ловит синтаксические ошибки.
  2. Модели: Внешний Model Checker (Solibri) проверяет готовую модель на коллизии и соответствие правилам.

 

Источник знаний для действий

 

Документация для пользователя. Агент через RAG изучает, как пользоваться инструментами, читая официальные руководства.

 

Документация API. Агент изучает описание функций (Toolset), чтобы правильно их вызывать в коде.

 

Ключевые выводы и отличия в философии
  • Универсальность vs. Надежность:
    • BIMgent более универсален. Теоретически, его можно научить работать с любой программой, у которой есть графический интерфейс, даже без доступа к API.
    • Text2BIM более надежен и быстр в исполнении. API-вызовы точны, детерминированы и не зависят от разрешения экрана или изменений в дизайне кнопок. Однако он жестко привязан к API конкретной программы.
  • 2. Технологическая зрелость:
    • BIMgent решает проблему совместимости с legacy-системами, но страдает от ошибок GUI.
    • Text2BIM требует развитого API, но обеспечивает надежное выполнение. Проверка качества модели здесь гораздо глубже и формализованнее (через IFC и Model Checker).
  • Процесс "мышления":
    • BIMgent думает как пользователь-оператор: "Чтобы создать стену, мне нужно нажать эту кнопку, потом эту и эту".
    • Text2BIM думает как архитектор-программист: "Чтобы создать стену, мне нужно вызвать функцию create_wall с координатами (x1, y1) и (x2, y2)".
  • В итоге, BIMgent — это шаг к созданию универсального ИИ-ассистента для любой визуальной программы, а Text2BIM — это более узкоспециализированный, но потенциально более мощный и надежный инструмент для автоматизации проектирования в средах с открытым API.