Revit08 мая 20261457 слов

Плагин Revit или Dynamo: что выбрать команде

Сравнение по восьми критериям, стоимость владения на три года, промежуточный путь через pyRevit и три условия, при которых скрипт пора превращать в кнопку.

Плагин Revit или Dynamo: что выбрать команде

Скрипт нумеровал помещения по часовой стрелке и работал безупречно. У автора. У второго инженера он падал на середине, у третьего расставил номера в обратном порядке, четвёртый открыл файл и увидел красные узлы вместо графа.

Знакомая история для любого, кто пробовал раздать Dynamo команде. Логика была правильная, инструмент выбран не тот.

Разберу, где проходит граница между «хватит скрипта» и «нужна кнопка», сколько это стоит на дистанции и что делать, если бюджета на разработку нет.

Разница не в мощности

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

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

Плагин это скомпилированное приложение на C#, которое живёт на панели инструментов. Пользователь нажимает кнопку и получает результат. Внутренности ему не видны, сломать их случайно нельзя.

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

Сравнение по восьми критериям

КритерийDynamoПлагин на C#
Срок первой рабочей версиичасы или дниот двух недель
Порог входа для авторасредний, без программированиянужен разработчик
Надёжность у постороннегонизкая, ломается от перестановки узловвысокая
Скорость на больших моделяхзаметно медленнеев 5-20 раз быстрее
Обработка ошибокпадает и оставляет модель в полусостояниитранзакции с откатом
Интерфейсокно графа, поля вводаформа с полями, подсказки, проверка ввода
Обновление под новую версию Revitчасто ломается, правится вручнуюпересборка, обычно без изменений логики
Раздача командефайл плюс инструкцияустановщик, обновление централизованно

Строку про скорость поясню. На модели с 40 тысячами элементов массовая запись параметра в Dynamo шла у нас 6-7 минут, тот же алгоритм в плагине укладывался в 20 секунд. Причина в том, что граф гоняет данные через промежуточные списки узлов, а компилированный код работает напрямую с транзакцией.

Когда хватает Dynamo

Сюда попадает большинство задач: массовое заполнение параметров, разовая выгрузка ведомости, проверка модели по своему списку правил, пакетное переименование видов. Конкретные сценарии с разбором собраны в статье про связку Dynamo и Python.

Когда нужен плагин

Отдельный случай: инструмент, который вы даёте наружу, подрядчикам или заказчику. Граф отдавать нельзя, там ваша логика и ваши риски.

Средний путь, про который забывают

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

Dynamo Player. Скрипт кладут в папку проекта, пользователь запускает его одной кнопкой и заполняет входные поля. Графа он не видит и сломать не может. Настройка занимает полчаса, требует только правильно оформить входы и выходы.

pyRevit. Бесплатная надстройка, в которой своя кнопка на ленте это папка с файлом скрипта на Python. Выглядит как настоящий плагин, пишется как обычный скрипт.

MyTools.extension/
  MyTools.tab/
    Проверки.panel/
      Пустые марки.pushbutton/
        script.py        # обычный python, доступ к doc и Revit API
        icon.png

Наш обычный маршрут такой. Прототип в Dynamo, обкатка на двух людях, перенос логики в pyRevit-кнопку для отдела, и только устоявшиеся тяжёлые инструменты уходят в компилируемый плагин. До третьего шага доходит примерно каждая пятая задача, и это нормально.

Сколько стоит владение

Разработка это первый чек, а не полный. Считать надо на три года.

СтатьяDynamopyRevitПлагин
Первая версия1-3 дня3-7 днейот 2 недель
Поддержка в годчасы авторанесколько часов10-15% от разработки
Переход на новую версию Revitпеределка узлов, до дняобычно без правокпересборка, 1-2 дня
Обучение пользователя1-2 часа на человека10 минут10 минут
Потери от ошибок пользователявысокиенизкиепочти нулевые

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

Вторая недооценённая строка это переход на новую версию Revit. Графы ломаются на обновлениях регулярно: меняются узлы, версия питона внутри, поведение библиотек. Компания с двадцатью скриптами тратит на такой переезд ощутимую неделю раз в год.

Симптомы, что инструмент выбран не тот

Скрипт запускает только автор. Симптом: у человека очередь из просьб «прогони мне». Задача переросла граф, пора в Player или в кнопку.

Перед запуском надо помнить пять правил. Симптом: инструкция начинается словами «сначала выдели все элементы, потом обязательно...». Пользователь однажды забудет, и модель придётся откатывать.

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

Каждое обновление Revit ломает половину библиотеки. Симптом: январь уходит на починку скриптов вместо работы.

Один и тот же скрипт живёт в семи копиях. Симптом: у каждого своя версия с мелкими правками. Кто-то работает по устаревшей логике и не знает об этом.

После запуска пришлось откатывать модель. Симптом: инженер запустил заполнение марок, а параметры перезаписались по всему этажу, включая уже согласованные позиции. Причина не в коде: граф берёт ровно то, что ему дали на вход, и проверять выбор пользователя некому. Чинили формой с обязательными полями и предупреждением перед записью: «будет изменено 312 элементов, продолжить». За полгода после этого ни одного отката.

Скрипт молча пропустил половину элементов. Симптом: ведомость собралась, выглядит нормально, а в ней недостаёт 40 позиций. Заметили на выдаче. Причина в том, что у части семейств параметр назывался иначе, скрипт их не нашёл и спокойно поехал дальше. Чинили правилом: любой инструмент возвращает два списка, обработанное и пропущенное с указанием причины. Пустой второй список стал условием приёмки работы.

Инструмент работает только на машине автора. Симптом: у остальных при запуске ошибка про отсутствующую библиотеку либо про недоступный путь. Причина обычно скучная: внутри прописана папка на диске автора и внешний пакет, который у коллег не установлен. Чинили переносом в расширение pyRevit, которое раздаётся одной папкой из общего хранилища и обновляется у всех разом.

Чего ждать не надо

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

Автоматизация не окупается на разовой задаче. Правило простое: считаем, сколько минут операция занимает вручную, умножаем на частоту за год. Меньше 20-30 часов в год, автоматизировать смысла нет, разве что ради снижения ошибок.

Ни один из вариантов не работает без хозяина. Библиотека скриптов без ответственного превращается в свалку за полгода. Нужен человек, который ведёт список, версии и отвечает на вопросы.

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

Частые вопросы

Можно ли начать сразу с плагина? Можно, но дороже. Половина требований проясняется только после того, как люди попробовали прототип.

Нужна ли лицензия для распространения плагина? Внутри компании нет. Для продажи наружу нужны своя подпись и правила Autodesk по публикации.

pyRevit это надёжно? Он живёт много лет и используется широко. Риск один: зависимость от стороннего проекта. Для критичных инструментов мы всё же собираем плагин.

На чём писать: C# или Python? Внутри Dynamo и pyRevit Python. Компилируемый плагин на C#, там лучше производительность и предсказуемость.

Сколько стоит перенос скриптов в кнопки? Зависит от того, сколько логики придётся переписывать. Типовой набор из пяти-семи рабочих скриптов упаковывается за 2-3 недели.

Что делать со скриптами уволившегося сотрудника? Разбирать сразу, пока помнят, что они делали. Мы обычно оставляем два-три действительно нужных, переписываем их начисто и остальное честно выбрасываем. Хранить полсотни чужих графов без описания смысла нет: пользоваться ими всё равно никто не станет, а искать среди них рабочий дольше, чем написать заново.

Можно ли запускать инструменты по расписанию, без человека? Граф нет, ему нужен открытый Revit и живой пользователь. Пакетная обработка моделей ночью это либо облачный сервис Autodesk, либо своя служба, которая открывает файлы и гоняет по ним плагин. Второй вариант дороже на старте и дешевле в работе.

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

Как решить у себя

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

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

Мы делаем и то, и другое: прототипы, кнопки pyRevit и полноценные плагины с установщиком. Примеры на страницах автоматизации Revit и Dynamo-скриптов. Опишите задачу через контакты, скажем, что дешевле в вашем случае.

Нужен похожий BIM/AI процесс?

Напишите в Telegram или на email — разберём задачу и предложим архитектуру решения.

Telegram Оставить заявку