Это перевод статьи австралийского БИМ-специалиста Гэвина Крампа. Она называется «Learning Dynamo? Avoid these 10 mistakes!».

24.01.22 в блоге выйдет интервью с Гэвином, в котором он расскажет, как стал БИМ-менеджером и насколько развит БИМ в Австралии. Почитайте, это интересный материал. А теперь перейдём к переводу статьи.

Учишь Динамо? Избегай эти 10 ошибок!

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

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

Ошибка 1: Пропускать азы

Из всех десяти грехов, что я перечислю, этот самый страшный. Он — самая распространённая ошибка, что вижу у новичков, из-за чего они бросают обучение, причём это касается любой программы.

Большинство приходит к программированию, потому что им нужно решить какую-то сложную проблему, однако это не значит, что именно с этого нужно начинать обучение. Начинать нужно с базовых вещей.

Для Динамо такими являются:

  • Потоки данных и вычислительная логика;
  • Типы объектов и данных, методы преобразования;
  • управление списками, уровнями списков и переплетениями;
  • предупреждения, ошибки и их смысл.

Сначала разберитесь с этим, и я гарантирую, что всё остальное усвоите куда легче. В идеале начните изучения с чтения статей на Динамо Праймер.

Динамо Праймер — сборник статей по основам работы в Динамо
Динамо Праймер — сборник статей по основам работы в Динамо

Можете почитать у меня в блоге в отдельной статье про управление списками, уровнями и переплетениями.

Ошибка 2: Копирование нодов против Управления списками

Я видел много скриптов в открытом доступен, в основном в ЛинкедИне, которые на первый взгляд кажутся впечатляющими. Сотни нодов и огромная порция лапши, которая их соединяет. Однако, если приглядеться повнимательнее, вы заметите, что автор много раз копировал и вставлял одно и то же. Это признак неумения работать со списками. Иногда это нужно, но чаще всего всё же плохая работа со списками.

Пример повторяющихся параллельных участков кода в скрипте
Пример повторяющихся параллельных участков кода в скрипте

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

Ошибка 3: Спешка

Мы живём в быстро меняющемся мире, но это не значит, что новички должны учиться в таком же темпе. Начинающие часто торопятся, пропускают важное, что приводит ко всем возможным ошибкам. Скриптец не сразу строился! Помните: это марафон, а не спринт.

Избегайте не только спешки, но и того, что кто-то ускорит ваше обучение за вас. Ко мне много раз обращались, чтобы я обучил Динамо за максимально короткий срок (и бесплатно). Помните, ваше обучение и его качество в конечном счёте — ваша ответственность.

Ошибка 4: Не учиться отлаживать код

Когда вы сталкиваетесь с предупреждением об ошибке в Динамо, ни в коем случае не бегите сразу к кому-нибудь, кто объяснит, что случилось, или решит задачу за вас. Программа сама пытается вам кое-что сказать!

Дебаггинг, отлаживание (проверка на возможные ошибки), — важнейшая сторона обучения и на неё вы потратите большую часть времени. Не торопитесь, разберитесь с тем, что предупреждения хотят вам сказать, именно так вы и найдёте решение.

Пример скрипта с ошибкой. Внимательно прочитайте желтые листики с сообщениями и попробуйте разобраться, что там написано
Пример скрипта с ошибкой. Внимательно прочитайте желтые листики с сообщениями и попробуйте разобраться, что там написано

Если я не вижу, что ученик реально пытался разобраться с ошибкой, то просто скажу ему, что он должен учиться на горьком опыте. Если много ресурсов и форумов, на которых, скорее всего, уже до дыр затёрли каждое такое предупреждение, ну или хотя бы объясняют, что программа пытается донести до пользователя.

Ошибка 5: Повторять готовые алгоритмы

В оригинале это ошибка звучит Only use 'follow me' tutorials — использовать учебные материалы в стиле «Повторяй за мной».

Когда меня спрашивают: «Какой аспект в изучении Динамо самый важный?» — я отвечаю коротко: «Контекст». Нет ничего лучше для мотивации, чем необходимость решить конкретную задачу. И в таком случае, хотя видео в жанре «Повторяй за мной» и несут определённую пользу, они чаще всего упускают контекст вашей задачи.

Хоть я и сам выпускаю подобные видео, всегда есть и другие способы эффективного обучения
Хоть я и сам выпускаю подобные видео, всегда есть и другие способы эффективного обучения

Когда я начинал изучать Динамо, передо мной стояла конкретная задача: нужно было пронумеровать двери в здании в зависимости от помещения и способа открывания. Я пользовался разными видео-инструкциями, но в конечном счёте создал свой собственный скрипт. Когда спустя месяц тяжкого обучения я запустил скрипт на работе, и он великолепно справился с задачей, — это был момент личного триумфа.

Ошибка 6: Решать только специфические задачи

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

Уникальные объекты не всегда полезны
Уникальные объекты не всегда полезны

Хоть иногда вы и можете решать «разовые» задачи с помощью Динамо, обычно это касается геометрии, это не лучшие упражнения, чтобы стать хорошим программистом. Я всегда подбадриваю учеников создавать такие скрипты, которыми они могут воспользоваться в разных сценариях работы, и это помогает им стать более сильными идейными лидерами. Важно работать на коллектив, а не ради себя любимого.

Ошибка 7: Учиться одному

Последуйте моему совету — не учитесь в одиночку. Мой путь был бы куда легче, если бы прошёл его вместе с хотя бы одним коллегой. Когда приступил к освоению Динамо, программа только-только становилась популярной, поэтому было сложно найти единомышленников. К счастью для будущих новичков сегодня эти навыки очень востребованы многими фирмами в строительной отрасли.

Когда учитесь совместно, то ваши знания распространяются на всю группу. Пока изучаете управление списками, коллега может усвоить типы данных, а в конце недели вы встретитесь и обменяетесь знаниями. Совместное обучение углубляет и закрепляет знания, а также это отличная мотивация для продолжения как через поддержку, так и благодаря соревновательному духу.

Ошибка 8: Использовать слишком много пользовательских пакетов

В Динамо огромная библиотека пользовательских пакетов, доступных и для новичков, и для опытных пользователей. Например, Clockwork, Data Shapes, Rhythm, Genius Loci и так далее. Хотя они и помогут вам решать задачи эффективнее, они не научат пользоваться Динамо. Ну разве что хорошо знакомят с тем, как управлять версиями этих самых пакетов.

Больше тысячи пакетов, которые будут отвлекать вас от обучения
Больше тысячи пакетов, которые будут отвлекать вас от обучения

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

Отказ от пакетов позволит глубже разобраться, что предлагает Динамо и меньше использовать пакетные ноды без понимания продвинутых методов, которые в них заключены.

Ошибка 9: Использовать старые версии Динамо

Давайте пробежимся по актуальным версиям Динамо для Ревита:

  • Более ранние: Пора бы обновиться!
  • Revit 2016: 1.3.2
  • Revit 2017: 2.0.3
  • Revit 2018: 2.0.3
  • Revit 2019: 2.0.3
  • Revit 2020: Динамо 2.3 встроено
  • Revit 2021: Динамо 2.5 встроено
  • Revit 2022: Динамо 2.10 встроено

Всегда следует учиться на актуальной версии Ревита/Динамо. Программы постоянно обновляются, поэтому старые версии довольно быстро выйдут из поддержки, особенно версии до 2.0. Пользовательские пакеты тоже вызывают больше ошибок в старых версиях, так как большинство разработчиков сфокусированы на новейших сборках. Не отставайте!

Если будете учиться на старой версии Динамо, ждите разочарования.

Тут Гэвин как-то сгущает краски, поверьте, если вы нифига не можете в Динамо 1.3.4, то и в Динамо 2.11 вряд ли будете совершать чудеса. Но однозначно в новых версиях больше стандартных пакетов и меньше ошибок. Тем не менее зачастую версия Динамо определяется версией Ревита, в которой вы вынуждены работать, поэтому приходится подстраиваться.

Ошибка 10: Уделять слишком много внимания геометрии

Хотя в Динамо и можно сгенерировать и обрабатывать геометрию, это не самая сильная сторона инструмента по сравнению с альтернативами вроде Grasshopper для Rhino 3D. Динамо лучше всего подходит для работы с данными и элементами Ревита, поэтому лучше сфокусировать обучение именно на этом.

Выглядит красиво, а толку?
Выглядит красиво, а толку?

Я видел много учебных курсов, которые используют примеры с геометрией и в которых реализуют сложные математические концепты вроде синусоидальных волн. Однако всё это имеет мало отношения к тому, чем большинство пользователей на самом деле занимается в реальности.

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

Я призываю пользователей, которым нужна обработка геометрии и связанные с ней задачи вроде генеративного дизайна использовать вместо Динамо Грассхоппер и Рино Инсайд.

Заключение

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

  • Автор статьи, иллюстрации — Gavin Crump @BIM Guru
  • Перевод — Вадим Муратов

Полезные материалы

Уведомления о новых статьях

Получайте в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.

Методичка по работе в Ревите

Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.

Мини-курс по моделированию ОВ и ВК

В специальный плейлист на Ютубе выкладываю свои ролики по работе в Ревите. Этот курс записывал для студентов, разбираю базовые моменты по моделированию.