Это перевод статьи австралийского БИМ-специалиста Гэвина Крампа. Она называется «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». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.
Методичка по работе в Ревите
Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.
Мини-курс по моделированию ОВ и ВК
В специальный плейлист на Ютубе выкладываю свои ролики по работе в Ревите. Этот курс записывал для студентов, разбираю базовые моменты по моделированию.