Dynamo. 17 минусов которые заставят Вас задуматься.

17.06.2022 30

Визуальное программирование.

Dynamo – программа для визуального программирования встроенная в стандартный функционал Autodesk Revit. Упрощённо визуальное программирование можно представить на примере пиццы =)

Необходимость для Autodesk такого инструмента как Dynamo продиктована несколькими факторами:

Для общего понимания работы программы стоит раскрыть несколько основных терминов:

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

Нод – код, написанный на языке Iron Python и объединённый в визуальную оболочку с входными и выходными данными. Каждый «прямоугольник» на рабочем пространстве – это нод.

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

17 минусов которые заставят Вас задуматься.

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

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

  2. Изменение от версии к версии Autodesk внутреннего алгоритма стандартных нодов ведёт к неисправности работы ранее созданных скриптов.
    Данный фактор не позволяет планировать временные затраты на ту или иную работу так как в любой момент скрипт может перестать работать. За работоспособностью созданных скриптов необходимо постоянно следить.
    Пример: вы собрали и успешно протестировали скрипт. На момент создания всё работало исправно. Но, открыв данный скрипт через год, вы с огорчением обнаружите жёлтые восклицательные знаки. Скрипт не будет работать пока вы не исправите предупреждение или ошибку.

  3. Скрипты, созданные в более поздних версиях Dynamo, не работают на ранних. Dynamo не обновляется автоматически.
    Ваш коллега создал скрипт в версии Dynamo 0.0, а у Вас на компьютере установлена версия Dynamo 1.0.0. Вы не сможете воспользоваться данным скриптом пока не обновите программу.

  4. Для обновления Dynamo требуются права администратора.
    В большинстве компаний для пользователей установлены ограничения на установку и обновление программ. Для обновления потребуется участие системного администратора, текущие задачи которого не всегда позволяют оперативно решить данную задачу.

  5. Возможностей стандартных нодов не хватает для полноценной оптимизации сложных процессов Revit.
    Количество операций объединённых в ноды в несколько сотен раз меньше количества операций доступных в API Revit. Этот момент не позволяет создавать сложные процессы оптимизации, необходимые при реальном проектировании.

  6. Для написания сложных команд от специалиста требуется знание языка программирования Iron Python.
    Специфика проектировщиков не программирование. В программировании скорость и корректность работы программы на прямую зависит от уровня знания языка и принципов программирования. Созданной проектировщиком программа в несколько раз менее эффективная по сравнению с программой, созданной программистом.

  7. Отсутствие полноценных форм для ввода данных пользователем. «Проигрыватель Dynamo» только частично исправляет данный недостаток и не позволяет вывести всю информацию в форме интуитивно понятной пользователю

  8. Язык Python в несколько раз медленней C++ и C#, на которых написан исходный код Revit.
    Выполнение сложных функций написанных на Python может работать в десятки раз дольше тех же функций написанных на C#.

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

  10. Ожидание при открытии скрипта
    Большие скрипты могут открываться до минуты. Это отнимает время специалиста.

  11. Каждый раз при открытии Dynamo необходимо указывать расположения файла.
    Пользователь может не знать путь к необходимому ему скрипту

  12. Нет единой вкладки с всеми доступными функциями
    Пользователи теряются в большой библиотеке скриптов и иногда могут не знать о существовании необходимой им функции

  13. Часто скрипты не протестированы и не универсальны.
    При создании скрипта у пользователя нет времени и возможности протестировать алгоритм на множестве разных случаев. Это ведёт к тому, что скрипт, работающий на одном проекте, может не сработать на другом.

  14. Интерфейс Dynamo от версии к версии серьёзно изменяется.
    Без постоянной практики трудно быстро адаптироваться в новом интерфейсе. Это приводит к увеличению времени на создание и корректировку скриптов.

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

  16. Iron Python отличается от Python.
    Для Iron Python существенно меньше обучающей информации чем для Python, что ведёт к трудностям написания алгоритмов на данном языке.

  17. Нет примеров и синтаксиса в стандартной базе данных Revit API Docs.
    Все примеры и синтаксис даны только на языках C#, Visual Basic, Visual C++, что увеличивает сложности по написанию исходного кода функции.