Dynamo core что это
DYNAMO в REVIT
DYNAMO — инструмент для визуального программирования
Процесс проектирования можно представить, как пошаговый набор действий, выполняемых по определенному алгоритму. В этом же ключе работает система DYNAMO. Она представляет алгоритмы в наглядном формате, доступном для понимания пользователями без специальных знаний в области программирования.
Визуальное программирование — современная альтернатива текстовым форматам программирования (с использованием языков программирования). Вместо ввода текста со сложными и строгими правилами, достаточно соединять предварительно разработанные готовые узлы вместе, последовательно добиваясь нужной информации. Каждый узел уже содержит в себе куски кода, которые пришлось бы создавать в процессе классического программирования — получается некий конструктор алгоритма.
Динамо встроен в программу Ревит в виде модуля, позволяющего параллельно работать в двух этих системах, создавая в Динамо алгоритмы действий, совершаемые сразу же в Ревите.
Кнопки Dynamo в Ревит располагаются на вкладке Управление в блоке Визуальное программирование.
Словарь Dynamo
Ноды — блоки или узлы, из которых собирается скрипт (программный код), сохраняемый в отдельном файле с расширением dyn.
В интерфейсе Динамо все ноды представлены в библиотеке с левой стороны рабочего окна, и распределены по категориям и подкатегориям. Для поиска нужного нода необходимо начать вводить в стоку поиска первые символы названия нода — будут появляться подходящие варианты.
Работа с нодами
Ноды соединяются между собой связями (проводами). В нодах есть входные и выходные порты, куда подключаются связи. Эти порты называются слоты.
Переименование нодов
Для смыслового упорядочивания нодов их можно переименовывать. Для этого два раза щелкаем на шапку нода.
Создание групп из нодов
Если несколько нодов решают одну подзадачу в скрипте, их можно объединить в группу. Для этого ноды выделяются рамкой и правой кнопкой мыши вызывается контекстное меню, в котором выбирается команда Создать группу. У группы можно редактировать заголовок, цвет фона, размер шрифта. Кроме того, в группу можно добавить один или несколько нодов, ноды и группу можно разгруппировать (команды в контекстном меню по правой кнопке мыши).
Создание в Dynamo своих индивидуальных нодов
В Динамо можно пользоваться не только стандартными нодами, имеющимися в дереве выбора, но и создавать свои собственные из нескольких стандартных. Например, если часть скрипта из нескольких нодов часто используется в проекте, эти ноды можно выделить и из контекстного меню выбрать функцию «Создать собственный нод». Появится единственный нод, повторяющий функции нескольких. Его можно переименовать, а также настроить отображение входных и выходных слотов.
Типы данных
Текстовый тип данных (строка)
Текст в Dinamo может создаваться разными способами. Подробнее об операциях со строками читайте на этой странице:
Числовой формат данных
Числа в Динамо, как и строки, создаются различными видами нодов:
Если требуются целые числа, используются ноды Integer и Integer Slider.
Для перевода символов из текстового формата в числовой используется нод ToNumber.
Последовательности чисел создаются обычно в CodeBlock подобной записью: 0..10..2 (где 1 — первое число последовательности, 10 — последнее число последовательности и 2 — шаг чисел)
Последовательность чисел в Динамо можно создать также с помощью специального нода:
Примеры автоматизации работы с Dynamo
Система Dynamo поддерживает собственный язык программирования Design Script, кодить на котором возможно внутри универсального нода Code Block. С помощью такой записи алгоритма можно сделать программу более эффективной.
Dynamo Core 2.1 Release
Hello World of Dynamo!
Today marks the release of Dynamo Core 2.1 and a changing of the landscape around how Core is both delivered and used.
TL:DR
Library search improvements (accuracy and speed), IronPython install changes and Dictionary interoperability, package node migration for Dynamo 2.0+ graphs, bug fix to library UI start-up crash and Dynamo for Revit installations are more tightly integrated and will no longer interfere with previous installations.
Advanced Steel 2020 – Advanced Steel contains Dynamo version 2.1
Alias 2019 – Alias contains Dynamo version 2.0 and will integrate version 2.1 in a future release
Civil3d 2020 – Download Dynamo 2.1 from your desktop app after you install Civil3D 2020
FormIt 17.1 – Dynamo 2.1 is bundled with FormIt
Revit 2020 – Dynamo 2.1 ships with Revit 2020 in a unified experience that is now integrated as a feature
Sandbox 2.1 – Standalone Dynamo Core environment is available to download
What’s new with Dynamo 2.1?
Core Changes
Dynamo 2.1 is a significant release for our team as we have decoupled the Dynamo Core installer from Dynamo for Revit. This means that Revit will release new versions with Dynamo installed as a standard component without a separate installer and without affecting previous Revit installations. This decision has been made to bring more predictability and stability to the Dynamo for Revit experience as well as allowing Dynamo to more seamlessly exist in other host applications such as Alias and Civil3D.
Search Improvements
Finally, the Search Experience has been dramatically improved! Search has been optimized and is now more accurate, faster at returning results and should now bring the most relevant nodes to the top of the search results. This should mean a decrease in the time spent browsing for the correct node for all users of Dynamo – from Beginner to Dynalegend!
Revit Integration
Today the landscape of installed Dynamo Core versions, Dynamo Revit versions and Revit versions is confusing and hard to maintain for users while it’s also difficult for us to add new functionality and support all the various Dynamo/Host versions at the same time. Often, bespoke host application requirements are simply not compatible, and that means that some users are stuck on old versions of Dynamo or can’t use it at all. We want to change that!
We want to simplify the relationship between Dynamo and Revit: Applications like Revit will start to more tightly integrate and test specific builds of Dynamo as a feature instead of a plugin. As Dynamo is now a feature of Revit, you will not be able to remove, uninstall or downgrade your Dynamo version but will also no longer have to support multiple versions of Dynamo with each install of Revit nor update Dynamo versions in Revit.
This also means that the Dynamo team will no longer deliver installers for Dynamo Revit and Revit will instead start shipping newer versions of Dynamo on a regular basis. This means you will get an updated Dynamo version when Revit releases a new version meaning more stability and performance with less overhead requirements. Hurrah!
This means we will also no longer support multiple versions of Dynamo inside a single version of Revit. Users will have “Dynamo” running in Revit and we can eliminate the confusion of “what 2 versions of Dynamo are you running with what 3 versions of Revit” In an Impossible 6 block matrix.
This new approach has a lot of benefits:
What is the state of Dynamo Core?
Today
Dynamo 2.1 release establishes a more clean separation of Dynamo Core technology (basic library, search, node ui, DesignScript, etc.) from host integrations and delivery (e.g., Revit libraries and Installers).
The second big change we’re making is to increase the frequency of Dynamo stable releases. They will be smaller and more frequent with less breaking changes and a recommitment to keeping our APIs and files compatible between releases. This allows Dynamo to integrate into more tools and make multi-application workflows possible. In other words, you will see Dynamo 2.2 and subsequent releases coming more frequently.
In the near Future
With the caveat that our current expectations are based on what we know today, here are the strategic investments and divestments we are working on. Of course these plans are not intended to be a promise or guarantee of future delivery of products, services or features and purchasing decisions should not be made based upon these statements..
On the Horizon
Other teams within Autodesk are now looking at how they could use Dynamo Core inside their own host applications. The Dynamo team’s commitment and focus is to build a a better, faster, more stable compute application, and to make Dynamo compute integrations easier and more maintainably integrated into other applications.
Release Notes
In order to keep a semblance of propriety to this blog post we’ve skipped a few things! For more information on other minor features, bug fixes, and known issues in Dynamo 2.1, go check out our release notes.
A big shout-out to everyone who contributed to the release and the entire Dynamo community for continuing to support our work. As always, please let us know if you have any feedback or suggestions.
So please download the new Sandbox or Revit 2020, have a play and let us know what you think!
Как выбрать лучший инструмент автоматизации для вашей работы в Revit. Дизайнеры против программистов
Новые средства автоматизации выводят планирование на новый уровень развития.
Какой инструмент позволит нам сэкономить тысячи часов за счет автоматизации процессов BIM в Revit?
На данный момент у нас есть 4 варианта для автоматизации работы в Autodesk Revit:
Эта диаграмма может помочь вам объяснить менеджерам, в каких случаях и что необходимо применять при автоматизации планирования учитывая параметры скорость_работы/размер_задачи/наличие_визуализации.
Каждое решение имеет свои инструменты
Например: если вы делаете какой-то скрипт используя только визуальные узлы в «Динамо» в первое время, скорость вашего скрипта будет высока. Но в случае расширения параметров задачи и увеличения условий: скорость работы вашего скрипта может резко упасть.
Заменив Dynamo на Python (вы также можете использовать IronPython в Dynamo), работа скрипта будет выглядеть более стабильно. Вы начинаете медленно программировать скрипт, но в данном случае — рост сценария уже не вызывает проблем ни в скорости, ни в процессе разработки (хотя иногда сценарий становится настолько большим, что вы уже не можете работать с кодом используя стандартный встроенный редактор IronPython).
Для каждого решения есть свой инструменты
При выборе инструмента вам нужно смотреть на «Перспективу» идеи.
Если ваш скрипт это что-то быстрое и небольшое, то визуальное программирование — Dynamo или Grasshopper.
Для задач среднего размера инструменты на Python подходят больше.
Если же у вас большое задание с большим количеством данных и параметров, лучше использовать C# (та же самая задача, написанная в Dynamo, будет работать в 10 раз медленнее).
Дизайнеры против программистов
Программисты, работающие в отделах BIM, не любят такие инструменты, как Dynamo или Grasshopper, потому что для программистов сценарии в Dynamo выглядят как «код спагетти». Такие разработчики пишут «относительно чистые» (на самом деле аналогичные по качеству в Dynamo) инструменты для Revit — на C# (или RevitPythonShell).
Проблема в том, что такие инструменты пишутся по запросу из отдела планирования. Таким образом, сильная внутренняя мотивация дизайнера переходит в искусственную внешнюю мотивацию для программиста.
В результате сложной работы по переносу логики дизайнера в код программиста в процессе планирования создается новая ссылка, которая в будущем, на мой взгляд, может быть заменена такими инструментами, как #Dynamo или #Grasshopper.
Для людей, которые десятилетиями занимались дизайном, такие инструменты, как Dynamo и Rhino. InSide — это глоток свежего воздуха в монотонной планировачной работе.
Благослови Бог сообщество открытого исходного кода и разработчиков таких инструментов, как Dynamo и Grasshoper, PythonShell, pyRevit, Rhino.Inside!
Буду благодарен за ваши комментарии и новые контакты.
Краткий обзор инструментов
#Dynamo — это инструмент визуального программирования, который работает с Revit. Dynamo расширяет возможности Revit, предоставляя доступ к Revit API (интерфейсу прикладного программирования) более доступным способом. Вместо того, чтобы вводить код, в Dynamo вы создаете программы, манипулируя графическими элементами, которые называются «узлами». Этот подход к программированию лучше подходит для визуально ориентированных типов, таких как архитекторы, дизайнеры и инженеры.
# Rhino.Inside — это проект Rhino WIP с открытым исходным кодом, который позволяет Rhino и Grasshopper запускаться в других 64-битных приложениях Windows, таких как Revit, AutoCAD и т. Д. С Rhino Inside Revit вы также получаете все функциональные возможности Rhino, включая Grasshopper for Revit. Grasshopper — это визуальный язык программирования, схожий по своей концепции с Dynamo (хотя есть и принципиальные отличия).
C # — Autodesk #Revit предоставляет богатый API, который можно использовать для настройки существующих функций продукта или добавления совершенно новых. Вы можете автоматизировать повторяющиеся, отнимающие много времени задачи и расширять основные функции, не выходя из среды Autodesk Revit. #API можно использовать для создания пользовательских инструментов и функций, которые подключаются непосредственно к Autodesk Revit, расширяя его функциональные возможности.
#RevitPythonShell — предоставляет возможность написания сценариев программному обеспечению Autodesk Revit и Project Vasari. Дизайнеры имеют возможность интерактивно проектировать и манипулировать элементами Revit, используя алгоритм и вычислительную логику с кодом Python.
DYNAMO: ПРОДВИНУТЫЙ УРОВЕНЬ. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ. ЧАСТЬ 1
Пожаловаться на статью?
Dynamo — это бесплатное дополнение для Autodesk Revit. В нем можно “научить” Revit новым функциям без написания сложного кода. Dynamo ускоряет работу и автоматически делает то, что Revit не умеет: переименовывает помещения, оси, кусты свай, экспортирует данные в Excel и импортирует из него, считает теплопотери здания, сравнивает файлы, подсчитывает квартирографию, ведомость отделки и множество других вещей.
В бесплатных видеоуроках по Dynamo вы научитесь всем нюансам написания дополнений. Изучив материал, вы ускорите свою производительность на 15-200%. Главная ценность уроков — отдельная глава с написанием дополнений для ежедневных задач: поиск элементов, перенумерация элементов, случайная расстановка объектов и другое.
Расширение функционала Dynamo
Что делать, если для решения задачи не хватает стандартных нодов. Поиск пакета нодов в интернете. Использование возможностей языка Design Script для работы с геометрией. Использование языка IronPython и Revit API для решения любой задачи.
Code Block, Python Script
Создание пользовательского нода
Объединение полезной, часто используемой группы нодов в пользовательский узел (нод). Создание собственной категории нодов. Назначение входных и выходных слотов.
Curve.PointsAtChordLengthFromPoint, Circle.ByCenterPointRadius, Code Block, Circle.ByCenterPointRadius, Rectangle.ByWidthLength, PolyCurve.Curves, Input, Output
Публикация и установка пакетов
Для того, чтобы поделиться своими нодами, можно опубликовать собственный пакет нодов. Так делают пользователи Dynamo по всему миру, поэтому многие полезные пакеты нодов можно бесплатно скачать и использовать. При необходимости нод из пакеты можно “раскрыть”.
LaunchBox for Dynamo, archi-lab.net, Clockwork for Dynamo, Rhynamo, BumbleBee
Синтаксис Design Script
Возможности языка Design Script. Ресурсы для изучения синтаксиса и возможностей.
Создание функций
Понятие функции. Создание функций на Design Script. Возможность применения созданной функции во всём текущем скрипте Dynamo.
Нод Python Script
Описание нода, с помощью которого можно обращаться к Revit на языке программирования Python. Входные и выходные слоты. Тело скрипта.
Python Script, Python Script from String, File.ReadText
Синтаксис Python
Основные правила написания кода. Цвета операторов, переменных и методов, текста, чисел и комментариев.
Простейшие операции
Основы работы с числовым и текстовым форматом. Назначение переменных. Вывод результата работы скрипта.
Python Script, Code Block
Анализ предупреждений
Обнаружение и анализ ошибок в коде. Пример предупреждения при попытке сложения переменных с разными типами данных.
Python Script, Code Block
Операторы условия if, elif, else
Простой способ проверки различных условий с помощью трёх операторов условий: IF (“если”), ELIF (“если нет, то если”) и ELSE (“если нет, то”). Пример сравнения двух чисел.
Python Script, Code Block
Операторы and, or
Задание нескольких условий одной строкой с помощью логических операторов AND (“и”) и OR (“или”). Пример определения того, попадает ли заданное число в диапазон двух других чисел.
Python Script, Code Block
Операторы in, not
Задание условий с помощью оператора IN (“в”), проверяющего нахождение идентичного элемента в списке и оператора отрицания NOT (“не”).
Python Script, Code Block
Оператор цикла for
Обработка списка с помощью цикла FOR (“для”), который работает непосредственно с элементами списка. Проверка условия для каждого элемента. Добавление элементов в список.
Python Script, Code Block
Оператор цикла while
Обработка списка с помощью цикла WHILE (“пока”), который работает до тех пор, пока соблюдается заданное условие. Предупреждение зацикливания программы.
Python Script, Code Block
Dynamo Core 2.9: увеличение производительности и улучшение пользовательского опыта
Что такое Dynamo и из чего он состоит?
Dynamo Core – это набор связанных компонентов, которые состоят из графического интерфейса, вычислительного ядра, языка сценариев DesignScript и готовых нод, которые не являются специфичными для других программ, таких как Revit или Civil 3d.
Dynamo Sandbox предназначен для разработчиков пакетов и для людей, работающих с кодом Dynamo, которые хотят быть в курсе последних обновлений и лучших материалов. Sandbox – это “основная” функциональность Dynamo, организованная таким образом, что она и не конфликтует с другими продуктами Dynamo, и не требует никаких сторонних приложений (за исключением нескольких компонентов Windows и некоторых необязательных/опциональных дополнений).
Что нового в Dynamo 2.9?
• [2] Поместите ноду, которая будет частью вашего целевого рабочего процесса (например, геометрическая нода). Теперь используйте функцию автозаполнения ноды, нажав кнопку Alt и левую кнопку мыши на любом входном порту чтобы открыть интерфейс автозаполнения ноды и посмотреть предложенные варианты.
• [3] Как только необходимый вариант будет выбран, Dynamo соединит две ноды вместе с соответствующими портами и поместит новую ноду слева от целевого.
• [4] Отфильтровать предложения нод в диалоговом меню автозаполнения (Node AutoComplete) можно с помощью функции поиска. Интерфейс здесь такой же как при клике правой кнопкой мыши, но алгоритм сравнивает только строки с названием нода, а не названия и описания нодов одновременно.
• [5] Если алгоритм не сможет подобрать варианты, Dynamo предложит пользователю выбрать из встроенные входных данных.
Некоторые известные проблемы с автозаполнением нод с помощью функции Node AutoComplete:
• Автозаполнение ноды пока не может применяться к выходным портам.
• Автозаполнение ноды не может использоваться в кастомизированных рабочих пространствах, в этом случае его активация может остановить работу этой функции для текущей сессии.
• Ноды, взятые из интерфейса Node AutoComplete, могут быть неправильно расположены из-за значения шкалы DPI.
• На сегодняшний день примитивные запросы (например, число, функция или строка) исключены из Node AutoComplete, потому что иначе алгоритм возвращает слишком большое количество результатов.
Разработчиками Dynamo была проделана большая работа, итогом которой стало улучшение производительности целевых геометрических нод: на графике видно, что Point.PruneDuplicates и Curve.ParameterAtPoint теперь работают в 35 раз быстрее, чем в предыдущих версиях. Технические характеристики компьютера и объем данных могут немного влиять на скорость, но значительный прирост производительности остается бесспорным.
Разница в скорости между Dynamo 2.7 и Dynamo 2.9
Боковое меню, Extensions Sidebar, стало более гибким, благодаря чему у пользователей остается больше экранного пространства: для работы с нодами резервируется минимально необходимое место, а большую часть экрана теперь можно использовать для просмотра документов, данных и визуализаций.
• [6] Окно справа можно сильнее растянуть по ширине, чем в Dynamo 2.8.0
Также разработчики добавили поддержку int64 для целочисленных слайдеров. Если бы пользователь вводил большое int64 число в целочисленный слайдер в Dynamo 2.8.0, оно было бы округлено до int32. Иными словами, если ввести 45643212342 в целочисленный слайдер в Dynamo 2.8.0, оно будет округлено до 2147483647, а в Dynamo 2.9.0 вводимое число останется неизменным. Данная доработка обусловлена тем, что для всех нод, принимающих или возвращающих int, в Dynamo 2.8.0 все они фактически маршалируются как int64, и команда разработки приложила усилия для их согласованности в Dynamo.
• [7] Пользователи могут перетаскивать или вводить вручную int64 число и использовать при работе в Dynamo.
Для работы с геометрией были добавлены три новых геометрических ноды: PolyCurve.ByThickeningCurveNormal, Solid.ByRuledLoft и Solid.Separate.
• [8] Пример Solid.Separate
• [9] Пример Solid.ByRuledLoft
• [10] Пример PolyCurve.ByThickeningCurveNormal
В заключении
Dynamo 2.9 получил ряд качественных преимуществ перед более ранними версиями. Команда не ограничилась небольшими доработками и устранением багов, а порадовала пользователей кратным увеличением производительности и рядом полезных функций для лучшего пользовательского опыта.