Перейти к содержимому
Учи.Онлайн Выбрать школу
Статья

Dynamo для Revit: визуальное программирование, которое снимает рутину с проектировщика

Dynamo — среда визуального программирования, которая устанавливается вместе с Revit и открывается на вкладке «Управление». Вместо кода вы соединяете на холсте узлы: каждый выполняет одно действие — выбирает все помещения этажа, читает параметр, сортирует список, собирает строку, записывает значение обратно в модель. Готовый граф заменяет сотни одинаковых щелчков: нумерацию помещений и листов, заполнение параметров из Excel, расстановку элементов по точкам. Осваивать предстоит работу узлов и списков, параметры Revit, пакеты, Python-узел и запуск скриптов коллегами через Dynamo Player.

Автор: редакция Учи.ОнлайнОтветственный редактор: Дмитрий Игнатьев
Содержание
Иллюстрация к статье: Dynamo для Revit: визуальное программирование, которое снимает рутину с проектировщика

Новички обычно думают, что главное в Dynamo — выучить названия узлов. На деле труднее другое: граф почти всегда обрабатывает не один элемент, а список. Узел, который получил 38 помещений, вернёт 38 значений, и следующий узел должен понять, какое значение к какому помещению относится. Пока вы не научились видеть структуру списков, даже простой скрипт будет записывать номера не туда или молча пропускать последний элемент.

Что делает Dynamo и где нужен другой инструмент

Работа в Dynamo складывается из трёх действий. Сначала граф собирает элементы модели: по категории, по уровню, по выбору пользователя. Затем он преобразует данные: фильтрует, сортирует, считает, склеивает текст, строит точки и линии. В конце записывает результат в модель — заполняет параметры, создаёт или перемещает элементы. Всё это видно на холсте, и узел Watch показывает, что пришло на каждом шаге.

Dynamo подходит не для всего. Если нужно поправить пять дверей, быстрее сделать это вручную. Если формулу можно задать в спецификации или в параметре семейства, скрипт не нужен. А если инструмент должен работать у всего отдела годами, с окнами настроек и проверками, его чаще пишут плагином на C# — об этом на сайте есть отдельная статья. Dynamo занимает середину: повторяющиеся задачи, которые сам проектировщик может автоматизировать за вечер, не изучая API Revit.

Кому и какие задачи он снимает

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

Учебный пример: нумерация помещений вдоль коридора

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

Узел Categories с выбранной категорией «Помещения» передаёт её узлу All Elements of Category — тот возвращает все помещения модели. Через Element.GetParameterValueByName граф читает уровень каждого помещения, сравнивает его с нужным, и List.FilterByBoolMask оставляет только третий этаж. Element.GetLocation даёт точку каждого помещения, Point.X — её координату по горизонтали. List.SortByKey сортирует помещения по этой координате. Узел Sequence создаёт числа от 301 с шагом 1 в количестве, равном длине списка, а String from Object превращает их в текст, потому что номер помещения в Revit — строка. Наконец Element.SetParameterByName записывает номера в параметр «Номер».

Проверка простая: поставьте Watch после сортировки и сравните первые и последние элементы с планом. Запускайте граф сначала на копии модели. Если что-то пошло не так, отмена в Revit откатит все изменения скрипта одним действием.

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

Большинство ошибок новичка связаны не с логикой задачи, а с тем, как Dynamo сопоставляет данные.

Первая — переплетение списков (lacing). Когда на узел приходят два списка разной длины, результат зависит от режима: Shortest обрабатывает пары до конца короткого списка, Longest повторяет последний элемент короткого, Cross Product перебирает все сочетания. Если помещений 38, а номеров по ошибке 37, в режиме Shortest последнее помещение останется без номера, и граф не сообщит об этом.

Вторая — вложенные списки. Если собрать помещения по нескольким этажам, получится список списков, и узлы начнут работать на неожиданном уровне вложенности. Помогают List.Flatten и указание уровня списка прямо на входе узла.

Третья — имена параметров. Element.GetParameterValueByName ищет параметр по имени в языке интерфейса. Граф, собранный в английском Revit, в русском не найдёт параметр Number. Надёжнее работать с общими параметрами, у которых имя задано в файле общих параметров.

Четвёртая — автоматический режим запуска: на большой модели каждое изменение узла перезапускает граф, и Revit подвисает. Пока граф собирается, включите ручной режим.

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

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

  1. Убедитесь, что понимаете Revit: категории и семейства, параметры экземпляра и типа, общие параметры, спецификации.
  2. Пройдите первые главы официального учебника Dynamo Primer: интерфейс, узлы, типы данных, узел Watch.
  3. Разберите списки: уровни вложенности, режимы переплетения, сортировку и фильтр по маске.
  4. Потренируйтесь на копии учебной модели: выгрузите параметры помещений в Excel, поправьте таблицу и загрузите значения обратно.
  5. Подключите пакеты из Package Manager, когда стандартных узлов не хватает, и проверьте, для какой версии Dynamo они собраны.
  6. Освойте Python-узел: входы IN и выход OUT, чтение и запись параметров, обработку ошибок.
  7. Подготовьте граф для Dynamo Player: переименуйте входные узлы и отметьте их как входные, чтобы коллеги запускали скрипт, не открывая холст.

Лучшее упражнение — автоматизировать часть задачи, которую вы делаете каждую неделю. Проверка простая: спецификация до и после запуска должна отличаться ровно тем, что вы задумали.

Почему скрипт перестаёт работать после обновления Revit

Граф, который годами работал в отделе, может сломаться не из-за ошибки в логике, а из-за смены платформы. Как сообщает команда Dynamo в заметке о выпуске Dynamo 3.0.3, начиная с версии 3.0.0 Dynamo работает на .NET 8, а Revit 2025 и другие продукты Autodesk тоже переходят на .NET 8. Изменения в API несовместимы с прежними, поэтому сменилась основная версия. Для авторов графов перемены почти незаметны, а вот пакеты затронуты.

В руководстве разработчика Dynamo сказано, что пакеты Dynamo 2.x собраны под .NET Framework 4.8 и в Dynamo 3.x работать не обязаны: при загрузке Package Manager предупреждает, что пакет выпущен для старой версии. Обратное ещё хуже: пакет для 3.x в Dynamo 2.x, скорее всего, не заработает. Даже между младшими версиями 3.x совместимость зависит от того, совпадает ли версия .NET.

С Python-узлами похожая история. В Dynamo 2.7 появился движок CPython3, а при открытии старых узлов IronPython2 Dynamo показывает предупреждение и предлагает помощник миграции, как описано в блоге Dynamo. В декабре 2025 года в руководстве по переходу на PythonNet3 новым движком Dynamo 4.0 назван PythonNet3, а IronPython 2.7 и CPython3 — устаревшими; для Revit 2025 и новее PythonNet3 доступен пакетом. На практике это значит: в описании каждого графа записывайте версию Revit и Dynamo, список пакетов с версиями и движок Python, а перед обновлением Revit в отделе прогоняйте рабочие скрипты на тестовой модели.

Где учиться и что проверить в программе

Dynamo обычно изучают как часть программы по BIM: он нужен тому, кто уже работает в модели. Тем, кто начинает с нуля, подойдёт онлайн-курс Skillbox «BIM-координатор с нуля»: по описанию, он идёт четыре месяца, включает 95 видеоматериалов и два проекта в портфолио, а среди тем, наряду с Revit и Navisworks, указан пункт «Автоматизация: основы скриптов в Dynamo». Отдельного перечня занятий по Dynamo на странице нет, так что объём этой части стоит уточнить у школы.

Открыть курс «BIM-координатор с нуля»

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

Тем, кто уже уверенно работает в Revit, ближе программа Skillbox «BIM-координатор»: два месяца, 12 тематических модулей, практические работы проверяют кураторы. В блоке «Автоматизация» заявлено знакомство с визуальным программированием в Dynamo, а основная часть программы посвящена координации моделей, обмену через IFC и поиску коллизий. На этом курсе Dynamo — вводная тема, дальше придётся практиковаться самостоятельно.

Открыть курс «BIM-координатор»

Для самостоятельной практики хватает Dynamo Primer и официального форума Dynamo. Сложность в другом — нужна своя задача и модель, на которой не страшно ошибиться.

Если Revit пока даётся с трудом, начинать с Dynamo рано. На курсе НАРХСИ «Проектирование зданий в Revit Architecture. Базовый курс» Dynamo в программе не указан, зато есть то, на что опираются скрипты: модуль о семействах с файлом общих параметров, ведомости и спецификации, настройка видов. Объём — 144 академических часа, около восьми недель, задания проверяет преподаватель.

Открыть курс

Как Dynamo влияет на доход

Отдельной надбавки «за Dynamo» в вакансиях обычно не бывает: навык входит в требования к BIM-менеджерам, координаторам и проектировщикам, которые ведут модели. В подборке hh.ru «BIM-менеджер» по Москве на 14 октября 2026 года — 85 вакансий. Среди них BIM-координатору раздела ОВ с опытом 1–3 года предлагают 160 000–200 000 ₽ на руки, BIM-координатору или менеджеру с опытом 3–6 лет — 130 000–180 000 ₽ до вычета налогов, BIM-менеджеру с опытом более шести лет — от 250 000 ₽ до вычета налогов. По карточкам в списке не видно, упомянут ли Dynamo в требованиях, поэтому эти вилки описывают роль, а не сам навык.

Навык влияет на доход косвенно: умение автоматизировать нумерацию, заполнение и проверку параметров — аргумент при переходе на роль координатора или BIM-менеджера. Чтобы оценить эффект, откройте полные описания вакансий своего города, сравните предложения с Dynamo или Python в требованиях и без них и различайте суммы до вычета налогов и на руки.

Если выбираете между школами, сравнить их поможет широкий рейтинг онлайн-школ с обучением строительству и BIM — он охватывает всё направление, а не один Dynamo. Но сначала попробуйте собрать первый граф на своей задаче: так станет ясно, нужна ли вам программа с проверкой заданий или хватит учебника и практики.