- Главная
- Генеративное проектирование
- BIMgent - мультиагентный фреймворк, основанный на мультимодальных больших языковых моделях (LLM), способный взять на себя задачи архитектора по работе в программе Vectorworks.
BIMgent - мультиагентный фреймворк, основанный на мультимодальных больших языковых моделях (LLM), способный взять на себя задачи архитектора по работе в программе Vectorworks.
Цель
- Фреймворк автономно преобразует эскиз в 3D BIM-модель через трехуровневую архитектуру. Система преобразует изображение в 2D-план, распознает архитектурные элементы и извлекает их координаты. Затем фреймворк разбивает задачу на этапы и генерирует детальные команды, которые выполняются непосредственно в Vectorworks, а встроенный супервайзер верифицирует каждый шаг по скриншотам для коррекции ошибок. Пользователь получает готовую 3D модель.
- На начальном этапе мультимодальная LLM создает 2D-план этажа, полностью основываясь на словесном описании. Последующие шаги аналогичны процессу работы с эскизом. Это позволяет напрямую преобразовать прописанные требования в 3D-модель, минуя ручное черчение.
- Входными данными служат изображение существующего плана и текстовая команда с описанием требуемых изменений. Мультимодальная LLM, анализируя оба ввода, генерирует измененный 2D-план. Затем система планирует и выполняет в Vectorworks только те операции, которые нужны для трансформации исходной модели в новую. Это значительно ускоряет внесение правок.
- Пользователь самостоятельно создает сложные элементы проекта в Vectorworks, а затем может дать команду, например, «создать все стены», основываясь на ранее подготовленном плане.
- 1. Design Layer (Проектирование): преобразует исходные данные в детализированный 2D-план. Система распознает элементы будущего здания, преобразуя их координаты в пиксельные координаты для работы в GUI
- 2. Action Planning Layer (Планирование действий), состоящий из:
- High-level Planner, который создает общую последовательность шагов, имитируя логику архитектора.
- Low-level Planner, который разбивает эти общие шаги на конкретные действия с помощью RAG- подхода, обращаясь к заранее загруженной официальной документации программы Vectorworks.
- 3. Execution Layer (Исполнение): Агент выполняет запланированные действия на основании двух типов рабочих процессов:
- Pure-Action Workflow: для детерминированных действий, (нажатие горячих клавиш, размещение элементов по известным координатам).
- Vision-Driven Workflow: для задач, требующих визуального анализа интерфейса (например, настройка параметров в диалоговых окнах).
- Важная часть системы - «супервайзер» на базе LLM, который после каждого шага проверяет скриншот экрана, оценивает успешность операции и, в случае неудачи, инициирует коррекцию действий.
Потенциал
Этот слой преобразует мультимодальные входные данные (текст, эскизы) в машиночитаемый 2D-план.
- Генерация плана: После сравнения нескольких подходов (GAN, SVG-код) лучшим решением оказалась прямая генерация изображений с помощью мультимодальных LLM (gpt-image-1), которые создают наиболее когерентные и функциональные планы.
- Сегментация: Специализированная модель DeepFloorPlan используется для точной идентификации и классификации архитектурных элементов, таких как стены и проёмы, на сгенерированном изображении. Решаемые задачи:
- Предсказание примитивов границ комнат: Совместное предсказание расположения стен (walls) и проёмов (openings).
- Предсказание масок типов комнат: Классификация и сегментация областей плана по типам помещений (например, кухня, гостиная, спальня и т.д.).
- Интерпретация: Мультимодальная LLM (Gemini 2.5 Pro) дополнительно анализирует результаты сегментации для более тонкой классификации (например, различение внутренних и внешних стен) и преобразует координаты элементов в пиксельные координаты для GUI.
- x_gui = (x_i / w_img) * w_gui
- y_gui = (y_i / h_img) * h_gui
- где w_img, h_img — размеры изображения плана, а w_gui, h_gui — размеры панели проектирования в BIM-программе. Это преобразование необходимо для последующего точного позиционирования курсора и взаимодействия с интерфейсом.
- 3. Интерпретация: Мультимодальная LLM (Gemini 2.5 Pro) дополнительно анализирует результаты сегментации для более тонкой классификации (например, различение внутренних и внешних стен) и преобразует координаты элементов в пиксельные координаты для GUI.
Слой генерирует последовательность операций для выполнения в GUI САПР, используя иерархический подход.
- На входе: Текстовое описание задачи от пользователя (например: "Generate a one-storey office building with a large open workspace...") и структурированные метаданные, полученные на этапе Design Layer.
- На выходе: отформатированный JSON-объект, содержащий последовательность высокоуровневых шагов.
Пример: "step 1": {
"class": "layer",
"component": "layer_floor1",
"description": "Create a design layer for the first floor and name it '01-Floor'."}
- Low-level Planner: Получив общую задачу, этот агент детализирует её, обращаясь через RAG-подход к векторной базе данных с официальной документацией ПО (Vectorworks). На основе найденных инструкций он генерирует конкретные подзадачи.Для генерации используется GPT-4.1. На выходе формируются два типа подзадач:
- Pure-Action: Детерминированные действия с заранее известными данными (например, построение стены по координатам).
- Vision-Driven: Действия, требующие визуального анализа GUI (навигация по меню, настройка параметров в окнах).
Финальный слой выполняет сгенерированный план действий в интерфейсе BIM-программы, контролируя состояние системы и исправляя ошибки. Для двух типов подшагов реализованы отдельные workflows:
- Pure-Action Workflow: Для подшагов типа Pure-Action заранее сгенерированная последовательность действий (например, [shortcut('9'), move_mouse_to(500,393), left_click(), ...]) выполняется напрямую. Для снижения задержки используется speculative multi-action execution — выполняется сразу целая последовательность действий без повторных запросов к агенту после каждого клика.
- Vision-Driven Workflow: Для взаимодействия с динамическими элементами используется динамическое GUI grounding. Система делает снимок экрана до и после действия. Выделенная область парсится моделью (Omni-Parser-v2) в структурированное представление (Set-of-Marks) с bounding box'ами и текстом элементов UI. Это представление передаётся Генератору Действий (на основе VLM), который, основываясь на задаче, генерирует нужные действия (например, "кликнуть на поле 'Height'", "ввести значение 3000", "нажать Enter").
- Супервайзер: После каждого действия LLM-супервайзер (O4-mini) анализирует скриншот GUI и проверяет корректность выполнения. В случае ошибки он инициирует её исправление.
Для тестирования был создан кастомный бенчмарк Mini Building Benchmark. Результаты абляционных исследований: Отключение ключевых компонентов показало их критическую важность:
- Без иерархического планирования агент не справился ни с одной задачей
- Динамическое заземление GUI повысило общую успешность на 18.67%
- Супервайзер и саморефлексия дали прирост в 20.57% к общей успешности
- Супервайзер и саморефлексия дали прирост в 20.57% к общей успешности
Анализ ошибок: Большинство сбоев происходит на этапах взаимодействия с интерфейсом, а не планирования. Из 92 ошибок:
- Grounding Error (ошибка "приземления" на элемент GUI): 40.0%
- Execution Error (ошибка исполнения команды): 45.6%
- Planning Error (ошибка планирования): всего 14.4%
Тематика семинара
Я хочу иметь возможность автоматически преобразовывать текстовое описание или эскиз плана этажа в готовую 3D BIM-модель,
Чтобы значительно сократить время на рутинное моделирование, минимизировать ошибки и сосредоточиться на творческих и оптимизационных задачах.
Шаг 1: Инициализация проекта и ввод данных
- Действие пользователя
- 1. Пользователь запускает плагин или интерфейс BIMgent в своей BIM-среде (например, Vectorworks).
- 2. Выбирает тип входных данных: "Текстовое описание" или "Эскиз/Изображение".
- 3. Вводит данные:
- Вариант А (Текст): Вводит или вставляет текстовое описание здания в специальное поле. Например: "Создай одноэтажный офис с открытой планировкой, двумя переговорными, кабинетом руководителя, кухней-столовой и двумя санузлами".
- Вариант Б (Эскиз): Загружает изображение (скан ручного рисунка, фотографию или существующий план) через интерфейс загрузки.
- 4. Нажимает кнопку "Сгенерировать модель" или "Запустить"
- Действие системы: Система принимает мультимодальные входные данные (текст или изображение).
- Результат шага: Задача принята в обработку. Пользователь видит статус "Генерация плана...".
Шаг 2: Просмотр и подтверждение сгенерированного плана этажа
- Действие пользователя
- 1. Пользователь просматривает автоматически сгенерированный 2D-план этажа, который система отображает в интерфейсе плагина.
- 2. (Опционально) При необходимости пользователь может внести правки в распознанные элементы (например, исправить тип стены или местоположение двери) через простой графический редактор или текстовые подсказки.
- 3. Подтверждает корректность плана, нажимая кнопку "Продолжить".
- Действие системы:
- 1. Генерация плана: Мультимодальная LLM преобразует текст или эскиз в четкий 2D-план этажа.
- 2. Сегментация и интерпретация: Специализированные модели распознают элементы, уточняют детали и преобразуют координаты для GUI.
- Результат шага: Пользователь подтвердил окончательный вариант плана. Система переходит к этапу планирования действий.
Шаг 3: Наблюдение за процессом планирования действий
- Действие пользователя
- 1. Пользователь наблюдает за ходом работы в интерфейсе плагина, где может отображаться прогресс-бар или список запланированных высокоуровневых шагов (например, "Планирование создания стен...").
- 2. (Опционально) Пользователь может просмотреть детализированный план действий перед выполнением, если система предоставляет такую возможность.
- Действие системы:
- 1. Высокоуровневое планирование: Агент разбивает задачу на общие шаги (создание слоев, стен, проемов и т.д.).
- 2. Низкоуровневое планирование: Агент генерирует конкретные инструкции для BIM-программы, обращаясь к её документации.
- Результат шага: Сформирован детальный план действий. Система готова к автоматическому исполнению.
Шаг 4: Наблюдение за автоматическим построением модели
- Действие пользователя
- 1. Пользователь наблюдает, как BIMgent автоматически управляет интерфейсом BIM-программы: курсор мыши перемещается, нажимаются кнопки, вводятся данные, в реальном времени создаются стены, окна и другие элементы.
- 2. (Опционально) В случае возникновения ошибок, которые агент не может исправить самостоятельно, пользователь может получить уведомление с предложением вмешаться (например, "Не удалось найти элемент 'Крыша'. Пожалуйста, укажите его расположение").
- Действие системы:
- 1. Исполнение действий: Агент выполняет сгенерированные шаги в интерфейсе BIM-программы.
- 2. Самоконтроль (Reflection): Агент постоянно проверяет результат каждого шага и при необходимости исправляет ошибки.
- Результат шага: В BIM-программе последовательно создается 3D-модель. Пользователь видит прогресс в реальном времени.
Шаг 5: Проверка и сохранение конечного результата
- Действие пользователя
- 1. После завершения работы агента пользователь видит уведомление "Модель успешно создана".
- 2. Пользователь проверяет готовую 3D BIM-модель в основном окне BIM-программы: осматривает геометрию, проверяет параметры элементов (толщину стен, высоту этажей).
- 3. Вносит окончательные правки, если это необходимо (например, добавляет мебель или материалы, которые не были указаны в исходном задании).
- 4. Сохраняет проект стандартными средствами BIM-программы.
- Действие системы: Агент завершает выполнение всех шагов плана.
- Конечный результат для пользователя: Готовая, параметрическая 3D BIM-модель здания в файле BIM-программы, соответствующая исходному заданию.
Краткое резюме процесса:
|
Шаг |
Название этапа |
Действие Пользователя |
Действие Системы (BIMgent) |
Результат этапа |
|
|
1 |
Ввод данных |
Запускает плагин, выбирает тип ввода, вводит текстовое описание или загружает эскиз, нажимает "Сгенерировать". |
Принимает мультимодальные входные данные (текст/изображение). |
Задача принята в обработку. |
|
|
2 |
Подготовка плана |
Просматривает сгенерированный 2D-план, вносит правки (опционально), подтверждает корректность плана. |
Генерирует 2D-план из входных данных, сегментирует элементы, интерпретирует детали, преобразует координаты для GUI. |
Утверждённый, машиночитаемый план с координатами. |
|
|
3 |
Планирование действий |
Наблюдает за прогрессом (например, по прогресс-бару или списку шагов). |
Создает иерархический план: высокоуровневые шаги -> детальные, программно-специфичные инструкции, используя документацию (RAG). |
Детальный пошаговый план действий для BIM-ПО. |
|
|
4 |
Исполнение |
Наблюдает за автоматическим моделированием в интерфейсе BIM-ПО, вмешивается при получении уведомления об ошибке. |
Автоматически исполняет план: перемещает курсор, кликает, вводит данные. Контролирует состояние GUI и исправляет ошибки. |
Частично готовая 3D-модель в BIM-ПО. |
|
|
51 |
Результат |
Проверяет готовую 3D BIM-модель, вносит финальные правки (если требуется), сохраняет проект. |
Завершает выполнение всех операций. |
Готовая параметрическая 3D BIM-модель. |
|
Примеры эскизов и текстового описания задачи:


- 1. Создай модель здания на основе нарисованного от руки восьмиугольного плана этажа, изменив внутреннюю планировку таким образом, чтобы она включала четыре комнаты вместо трех.
- 2. Создай двухэтажное офисное здание на основе эскиза с изменениями. Раздели самую большую комнату посередине на две комнаты.
- 3. Создай двухэтажный дом на основе изображения с некоторыми изменениями. Добавь небольшую комнату внизу.