Введение
В этой статье я хочу вернуться к теме взаимодействия Revit с нейросетями. Недавно я писал статью о том, насколько близко искусственный интеллект подошел к работе в Revit, в конце я делаю вывод, что это неплохой концепт, но на данном этапе он не способен изменить подходы к работе.
На этом фоне изначально предложенный алгоритм использования ИИ исключительно для написания скриптов (небольших автоматизаций под конкретные задачи) выглядит сильно выгоднее как в финансовом плане, так и соотношении результата к затраченным усилиям.
Поэтому я хочу вернуться к этому алгоритму и поделиться результатами использования этого процесса своим коллегой - Артемом Руденко.
Краткое напомню алгоритм работы
- Пишем в чат с ИИ текстовый запрос на решение задачи в Revit.
- Копируем полученный код ответа на языке Python.
- Вставляем код скрипта в расширение для Revit - PyShell и запускаем.
Для запуска скрипта используется расширение для Revit - PyShell
Опыт работы коллеги
Для вступления скажу пару слов, Артем занимается разработкой слаботочных сетей (раздел СС). Проекты выполняет в Revit, пользуется различными плагинами и внутренними расширениями, разрабатываемыми в рамках организации. Также в работе ему приходится контролировать субподрядные организации, работающие в данном разделе, проверять качество проекта и организовывать процессы работ.
Артем был одним из первых подписчиков, кто ознакомился с моей предыдущей статьей. С первых попыток он получил положительный опыт и начал активно применять этот алгоритм для решения задач.
Главной особенностью данного подхода он выделяет скорость и качество написанных ИИ скриптов. Зачастую решить нужную проблему удавалось с одного запроса в ИИ, что, с его слов, выглядело как магия.
Раньше, как правило, подобные задачи решались двумя путями: написанием запросов во внутренний отдел разработок или поиском готовых решений. Но важным аспектом была скорость: если решение не удалось получить сразу, приходилось использовать ручной способ или ждать.
Важный нюанс, что Артем имеет только общие представления о языках разработки и синтаксисе Python. Тем не менее данный алгоритм уже помог ему облегчить жизнь и решить не одну задачу.
Далее я покажу примеры его скриптов, разработанные данным методом, сами скрипты можно будет получить в телеграм-канале.
Скрипты
Важно! Подобные скрипты, особенно на этапе разработки, не стоит запускать на активном проекте Revit. Для безопасности стоит использовать отсоединенный проект для предварительного тестирования. Вы можете использовать и дорабатывать полученные скрипты на свое усмотрение. Результат корректной работы скриптов на вашем проекте и вашей версии Revit не гарантирован.
Получить ID элемента из связи
Скрипт показывает ID выбранного элемента из связанного файла. Стандартный просмотр не может корректно работать со связями, а эта информация крайне важна, когда происходит координация с другими разделами.
Для выполнения запускаем его, выбираем элемент и видим всю ключевую информацию. Можно сделать скрин и отправить смежнику для контекста проблемы.
Имена параметров из семейства
Частая проблема, когда нам нужно куда-то вывести имена параметра (поставка задач в бим-отдел, свои разработки), приходится долго переписывать его вручную. При этом очень важно, чтобы название четко соответствовало исходному значению.
Работа данного скрипта облегчает нам задачу, мы можем выбрать любой элемент в модели и из него вывести список всех параметров в обычном текстовом виде.
За секунду мы получаем все данные в нужном виде. Работа скрипта проста и эффективна: запускаем в панели PyShell, выбираем элемент, получаем результат.
Поиск на плане
Скрипт позволяет найти нужный элемент на виде, удобно, если мы точно знаем, что он есть на виде, но сложно найти, где именно. Для элементов из связи мы не можем использовать спецификацию для поиска, этот скрипт помогает справиться с проблемой.
При запуске появляется окно, в которое мы можем ввести текст из марки, важно, чтобы элемент был замаркирован на виде. После нажимаем "Найти", нужная марка попадет в текущий выбор.
Чаты с ИИ по разработке скриптов:
ID элемента в связанной модели
Имена параметров из семейства
Поиск на плане
Дополнительно от Артема:
Всё началось с того, что у меня появилась конкретная цель: отфильтровать спецификацию по полю “Рабочий набор”, как оказалось нет возможности добавить такое поле в спецификацию на версиях Ревита 2022 и ниже, начиная с версии 2023 такой функционал появляется. Было принято решение заполнить “пустующий” параметр наименованием рабочего набора, для дальнейшего добавления этого поля в спеку. Я имел четкий запрос и понимал, что “руками” такой объём работ выполнить невозможно, плюс ко всему останется куча незаполненных параметров. Зная, что можно писать скрипты в динамо, я обратился к своему коллеге Егору за помощью в написании скрипта. Он в свою очередь предложил альтернативный способ через PyShell с “привлечением” ИИ агента в качестве кодера (в данном случае grok.com), что изрядно меня заинтересовало. Итого я получил не просто одноразовое решение своей задачи, а готовый инструмент по решению целого пула задач.
Главные плюсы:
- Это абсолютно бесплатно, готовый рабочий код можно получить хоть с 1 запроса при правильном написании промта. Обычно получаю после 4-6 запросов.
- Это быстро, как будто у тебя есть личный бим специалист программист, который бросает все свои дела и занимается только твоей задачей.
- Возможность использовать полезные скрипты в дальнейшем и распространять среди коллег внутри и за пределами компании.
- Трендовая возможность попробовать себя в “вайб-кодинге” и получать удовольствие от того, что пашут роботы, а не человек 😀.
Минусы:
Для себя не выявил. Возможно ограничение с количеством запросов, но я с этим не столкнулся ни разу.
Вывод
В заключение хочу сказать, что все указанные скрипты имели одну четкую задачу. Не требовали внутренней экосистемы, позволяли решать задачи самого инженера, а также оказывали поддержку подрядчикам, которые не имеют доступа во внутреннюю инфраструктуру организации.
Это позволило закрывать возникающие проблемы максимально быстро, без дополнительных затрат на разработку. Результаты экономили ресурсы на всех уровнях, снижая нагрузку как на подряд, инженеров и разгружая отделы поддержки..
В конечном итоге, как мне кажется, технологии информационного моделирования и должны быть нацелены на получение лучшего результата с меньшими усилиями. Именно данный алгоритм, как я считаю, позволяет добиться именно этого.
Если вам было интересно читать о реальных результатах и живом опыте, прошу поставить лайк. Возможно, поделиться вашими историями по использованию подобных инструментах. Спасибо.
Скрипты Артема из данной статьи можно взять в моем телеграмм канале: