В этой статье разберем, где надо брать информацию для изучения Dynamo. Здесь вы найдете ссылки на различные образовательные материалы по Dynamo от самих разработчиков программы и от сторонних пользователей, на русском языке, и на английском, для тех, кто только сел изучать эту программу, так и для тех, кто уже что-то знает и хочет двигаться дальше.
1. Что такое Dynamo?
Dynamo это инструмент для программы информационного моделирования зданий Autodesk Revit (на самом деле не только для Revit), позволяющий автоматизировать различные процессы проектирования в Revit.
В Dynamo создаются скрипты с по принципу визуального программирования. Создатель скрипта не пишет код в виде текста, как это принято в обычном программировании, а создаёт код из готовых блоков (эти блоки называются ноды, от английского node – узел), каждый из которых выполняет определённую операцию.
Если говорить кратко, то для создания скрипта в Dynamo надо продумать последовательность действий нужного алгоритма, найти подходящие для этих действий ноды в библиотеке нодов, соединить ноды и запустить скрипт. Готово!
На официальном сайте проекта можно найти всю основную информацию про Dynamo и конечно же посмотреть видео, где наглядно показывается, как работает этот инструмент:
А теперь поговорим про то, откуда черпать дополнительную информацию по Dynamo.
2. Официальные источники
Для начала обратимся к официальным образовательным ресурсам по Dynamo. Их надо брать как основу в изучении Dynamo и всех их можно найти на официальном сайте Dynamo. Что это за ресурсы?
На сайте dynamobim.org можно найти и посмотреть видеокурс "Introductory Tutorials for Dynamo 2.X". Вот первое видео этого курса:
Кроме этого существует специальная энциклопедия Dynamo Primer, в которой изложены все основные принципы работы. Начиная с объяснения, что такое визуальное программирование и заканчивая советами по эффективной работе со скриптами Dynamo:
Также существует словарь Dynamo, в нем разбираются ноды Dynamo: как они устроены, с какими данными работают, приводятся примеры их использования. Ссылка:
https://dictionary.dynamobim.com/#/
И конечно учиться надо на хороших примерах. Такие примеры скриптов можно найти на стартовом окне 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:
Уроки 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:
На этом всё, бежим учиться программировать!