Найти в Дзене
Digital Solution

С чего начать изучение Dynamo для Revit

В этой статье разберем, где надо брать информацию для изучения Dynamo. Здесь вы найдете ссылки на различные образовательные материалы по Dynamo от самих разработчиков программы и от сторонних пользователей, на русском языке, и на английском, для тех, кто только сел изучать эту программу, так и для тех, кто уже что-то знает и хочет двигаться дальше. 1. Что такое Dynamo? Dynamo это инструмент для программы информационного моделирования зданий Autodesk Revit (на самом деле не только для Revit), позволяющий автоматизировать различные процессы проектирования в Revit. В Dynamo создаются скрипты с по принципу визуального программирования. Создатель скрипта не пишет код в виде текста, как это принято в обычном программировании, а создаёт код из готовых блоков (эти блоки называются ноды, от английского node – узел), каждый из которых выполняет определённую операцию. Если говорить кратко, то для создания скрипта в Dynamo надо продумать последовательность действий нужного алгоритма, найти

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

1. Что такое Dynamo?

Dynamo это инструмент для программы информационного моделирования зданий Autodesk Revit (на самом деле не только для Revit), позволяющий автоматизировать различные процессы проектирования в Revit.

В Dynamo создаются скрипты с по принципу визуального программирования. Создатель скрипта не пишет код в виде текста, как это принято в обычном программировании, а создаёт код из готовых блоков (эти блоки называются ноды, от английского node – узел), каждый из которых выполняет определённую операцию.

Если говорить кратко, то для создания скрипта в Dynamo надо продумать последовательность действий нужного алгоритма, найти подходящие для этих действий ноды в библиотеке нодов, соединить ноды и запустить скрипт. Готово!

Пример скрипта Dynamo
Пример скрипта Dynamo

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

https://dynamobim.org/

А теперь поговорим про то, откуда черпать дополнительную информацию по Dynamo.

2. Официальные источники

Для начала обратимся к официальным образовательным ресурсам по Dynamo. Их надо брать как основу в изучении Dynamo и всех их можно найти на официальном сайте Dynamo. Что это за ресурсы?

На сайте dynamobim.org можно найти и посмотреть видеокурс "Introductory Tutorials for Dynamo 2.X". Вот первое видео этого курса:

Кроме этого существует специальная энциклопедия Dynamo Primer, в которой изложены все основные принципы работы. Начиная с объяснения, что такое визуальное программирование и заканчивая советами по эффективной работе со скриптами Dynamo:

https://primer.dynamobim.org/

Также существует словарь Dynamo, в нем разбираются ноды Dynamo: как они устроены, с какими данными работают, приводятся примеры их использования. Ссылка:

https://dictionary.dynamobim.com/#/

И конечно учиться надо на хороших примерах. Такие примеры скриптов можно найти на стартовом окне Dynamo в правом нижнем углу.

Примеры скриптов Dynamo можно найти на стартовом окне программы
Примеры скриптов Dynamo можно найти на стартовом окне программы

3. Видеокурсы (на русском) и прочие ссылки

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

Курсы Алексея Лобанова на Youtube:

Курсы Хасана Мамаева на Youtube:

Курс "Dynamo: продвинутый курс" на портале bim.vc:
https://bim.vc/base/video/dynamoadvanced/

Также можно пройти и платные онлайн курсы по Dynamo. На платформе Stepic:
https://stepik.org/course/50129/promo

Курс от компании PRORUBIM:
http://prorubim.com/course/dynamo/

И конечно можно пройти курс по Dynamo в живую, например, в Москве это можно сделать в академии BIM:
http://bimacad.ru/ru/avtorskij-kurs-dynamo-dlya-revit

По этой ссылке можно найти куда более обширный список видеоуроков по Dynamo:
http://dynamobim.ru/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D1%83%D1%80%D0%BE%D0%BA%D0%B8/

Теперь пара слов про сайт http://dynamobim.ru. Это русский сайт, полностью посвященный Dynamo, с русскоязычным форумом, скриптами Dynamo, полезными ссылками и материалами. Так что скорее заходите, регистрируйтесь и изучайте.

На официальном сайте Dynamo тоже имеется форум, но уже англоязычный, на котором можно найти много полезной информации:
https://forum.dynamobim.com/

4. Дополнительные материалы (пакеты нодов)

Часто возникает ситуация, когда стандартных нодов Dynamo не хватает для решения определенной задачи. В таких случаях выручают пакеты дополнительных нодов (Dynamo Packages), создаваемые пользователями Dynamo специально для расширения функционала. Их можно скачать напрямую в программе Dynamo.

На этом сайте можно посмотреть информацию по этим пакетам и изучить статистику:
https://www.dynamopackages.com/

Вот наиболее востребованные:

-Lunchbox
-Archi-lab
-Clockwork
-Spring nodes
-SteamNodes
-Rhythm
-Bumblebee

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

5. Следующий уровень – Design Script/Python/Revit API

5.1 DesignScript и Python

Пакеты нодов уже не спасают при решении сложных задач в Dynamo?

Тогда учимся писать свой код.

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

-с помощью языка программирования DesignScript в нодах «Code Block». Язык DesignScript является встроенным языком программирования в Dynamo, то есть использовать его вы сможете только в самом Dynamo.

По ссылке pdf методичка по DesignScript - Dynamo Language Manual:
https://dynamobim.org/wp-content/uploads/forum-assets/colin-mccroneautodesk-com/07/10/Dynamo_language_guide_version_1.pdf

-с помощью языка программирования Python в нодах «Python Script» и «Python Script From String». Python в Dynamo работает с реализацией языка IronPython. Начинать изучать Python можно без привязки к Dynamo, этот язык является сейчас очень популярным и его легко начать изучать даже человеку, не знакомому с программированием. Вот подборка образовательных материалов как по чистому Python, так и по его применению в Dynamo и Revit:

http://dynamobim.ru/python/

Уроки PythonForDynamo от Хасана Мамаева:

Python для начинающих:
https://www.python.org/about/gettingstarted/

5.2 Revit API

У Revit, как и у большинства программ есть API (application programming interface – интерфейс прикладного программирования), который является набором различных функций, позволяющих работать с «внутренностями» Revit. То есть почти любую операцию, которую мы совершаем напрямую в Revit мы можем описать с помощью Revit API. Как это устроено? Когда мы работаем в Revit, то используем мышку и кнопки на панели инструментов. Например, чтобы создать стену, мы выбираем инструмент «Стена», в свойствах экземпляра настраиваем параметры, выбираем инструмент рисования, рисуем линию построения стены. Тоже самое можно и реализовать через Revit API с помощью команды Wall.Create(Document, Curve, wallTypeId, levelId, Double, Double, Boolean, Boolean). То есть для класса Wall мы используем метод, который создаёт экземпляр семейства стены с заданными свойствами (например, Curve – линия построения стены, wallTypeId – типоразмер стены, levelId – уровень привязки и т.д.).

Доступ к Revit API в Dynamo можно получить через скрипты Python. Разобраться с Revit API уже куда сложнее, но работа с Revit API даёт уже намного больше возможностей, в отличие от ограниченных возможностей нодов Dynamo.

Документация по Revit API. Здесь вся информация все про классы, методы классов, свойства классов и т.д.:
https://www.revitapidocs.com/

Статья про то как начинать знакомство с Revit API:
https://thebuildingcoder.typepad.com/blog/about-the-author.html#2

Уроки от Danny Bentley по Python в Dynamo с Revit API:

На этом всё, бежим учиться программировать!