Найти в Дзене

Секреты BIM: Как AI в Revit упрощает жизнь проектировщикам!

С каждым годом всё чаще идут обсуждения о внедрении искусственного интеллекта во все процессы. При этом информационное моделирование эта технология будто обходит стороной. Все ждут момента, когда программы начнут делать всю работу за пользователя. Но уже сейчас есть несколько подходов использования текстовых моделей, которые могут существенно облегчить работу в рамках процессов BIM. Далее в статье я покажу несколько примеров того, как текстовые нейросети можно использовать для ускорения работы и автоматизации задач. По сути, основной подход будет заключаться в генерации скриптов или макросов с помощью нейросетей. Разумеется, такие скрипты можно разрабатывать и без использования нейросетей, но их применение избавляет от необходимости изучать язык программирования и значительно ускоряет сам процесс разработки. Необходимую автоматизацию мы просто описываем человеческим языком, а искусственный интеллект преобразует это в программный код. В идеале мы стремимся к максимально простой связке м
Оглавление

Введение.

С каждым годом всё чаще идут обсуждения о внедрении искусственного интеллекта во все процессы. При этом информационное моделирование эта технология будто обходит стороной. Все ждут момента, когда программы начнут делать всю работу за пользователя. Но уже сейчас есть несколько подходов использования текстовых моделей, которые могут существенно облегчить работу в рамках процессов BIM.

Далее в статье я покажу несколько примеров того, как текстовые нейросети можно использовать для ускорения работы и автоматизации задач. По сути, основной подход будет заключаться в генерации скриптов или макросов с помощью нейросетей. Разумеется, такие скрипты можно разрабатывать и без использования нейросетей, но их применение избавляет от необходимости изучать язык программирования и значительно ускоряет сам процесс разработки.

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

Общий процесс

В идеале мы стремимся к максимально простой связке между программой и текстовой нейросетью: чтобы достаточно было один раз сформулировать запрос, а затем просто переносить ответ нейросети в программу и, при необходимости, результат из программы — обратно в нейросеть. В таком случае весь процесс будет занимать столько времени, сколько требуется на нажатие Ctrl+C и Ctrl+V.

Алгоритм будет такой:

Предварительно вам нужно будет выбрать в какой текстовой нейросети работать. Я на данный момент работаю с grok.com, так как на моей практике он показывал лучшие результаты в подобных задачах. Но вы можете проверить работу и на других моделях.

1. Говорим нейросети в каком виде мы хотим получить результат, это может быть код на Python/Lisp и т.д. (Далее в примерах я покажу изначальные примеры промптов).

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

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

Автоматизация в Revit через PythonShell.

Предварительно нам необходимо установить надстройку для запуска Python скриптов PythonShell. Скачать ее можно с GitHub (https://github.com/architecture-building-systems/revitpythonshell
- ниже под заголовком "
Installation" будут установочники для любой версии Revit).

После установки на вкладки "Надстройки" у нас должна появиться кнопка Python Shell.

-2

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

-3

Далее формируем запрос в нейросети, начиная со фразы "Разработай скрипт на Python для программы Revit, запуск будет осуществляться через Python Shell. Скрипт должен..." и описываем что должен сделать скрипт. Я для примера запрошу посчитать количество стен на активном виде.

-4

После этого получаем ответ нейросети с кодом. Сам код копируем выделением либо через специальную кнопку.

-5

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

-6

Скрипт вывел количество стен как мы и просили. Также он показал ID каждый стены, такого в нашем запросе не было. Чтобы Grok не своевольничал мы можем попросить его об этом, но в целом думаю что результат удовлетворительный.

В ручном режиме проверяем соответствует ли результат скрипта действительности и видим что ответ корректный, значит скрипт отработал правильно.

-7

Попробуем создать еще один скрипт. Он должен будет удалить все окна из проекта. Пишем запрос и копируем скрипт.

-8

Запускаем в проекте и сразу же видим результаты работы и отчет.

-9

Как видим с помощью данного алгоритма работы мы можем не только делать анализ модели и получать данные, но еще и вносить изменения в модель.

Отладка ошибок.

Зачастую при разработки скриптов для более сложных задач полученный код запускается не с первого раза как показано в примерах выше. Это может быть вызвано несколькими факторами такими как:

  • Нейросеть допустила ошибку в самом коде
  • Условия в котором запускается скрипт отличается от тех которые описаны в запросе
  • Нейросети недостаточно информации для разработки скрипта

В целом подобные проблемы я обычно решаю следующим способом:

1. Выделяем всю полученную информацию из консоли после выполнения кода Ctrl+A, Ctrl+C

-10

2. Описываем нейросети что произошло и даем ей информацию из консоли

-11

3. Получаем от нейросети новый код с рекомендациями по отладке и пытаемся запустить его.

4. Если же в течении нескольких запросов результатов это не дает (обычно я жду до 3х раз), то можем воспользоваться "Think" - для того чтобы нейросеть углубилась в проблему и выдала лучшее понимание возможных причин. Также можем выполнить "DeepSearch" тогда нейросеть попытается изучить актуальную документацию для решения задачи, либо найти похожие кейсы.

-12

Как правило это решает проблему, либо нейросеть понимает что текущих возможностей программы (API) недостаточно для решения этой задачи и в таком случае предлагает альтернативный подход.

Примеры скриптов написанных мной таким алгоритмом.

1. Автоматическое проставление осевых размеров по ГОСТ

-13

2. Автоматическое закрепление осей и уровней

-14

3. Автоматическая генерация разверток по стенам и формирование их на листе

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

К примеру вот вариант контекстного фильтра для Revit все видимые кнопки и панельки при этом функциональны. Разработан он был по тому же алгоритму с использованием Grok.

-16

Заключение.

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

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

Из рекомендаций также подскажу что в случае когда вы ведете долгую разработку подобных приложений или скриптов, то стоит регулярно менять чат для увеличения скорости ответов нейросети. А также чтобы убрать из контекста неактуальную информацию. Для этого нужно отправить подобный запрос в нейросеть "Собери в одном сообщении всю ключевую информацию о разработке для переноса в другой чат. Включи полезные детали, советы для нейросети и источники, которые могут помочь в дальнейшем."

Точно такой же алгоритм мы можем использовать и в других программах (если вам было бы интересно прочитать подобную статью, напишите об этом в комментариях):

  • Автоматизация в AutoCAD через LISP.
  • Автоматизация работы с файлами в среде Windows через bat файлы.
  • Автоматизация работы с данными через таблицы Google spreadsheet (Apps Skrip) или Excel

Спасибо всем кто дочитал это статью до конца! Если она вам понравилась прошу поставить на нее лайк. Также пишите комментарии если остались вопросы.