Возобновляю практику написания статей после 6-месячного перерыва в активности (считая последний пост в апреле в своем tg-канале). Случилось много событий в рабочей и учебном плане, из-за которых такая пауза и была, в том числе из-за выгорания.
Собственно статья посвящена уже опубликованному курса на портале InfraBIM PRO:
1. Предыстория (опыт применения Dynamo)
Итак, сама по себе задумка написать курс для Civil 3D по Dynamo была еще давно, чуть ли не с момента его появления. В 2019, когда он впервые вышел на Civil 2020 в виде устанавливаемого пакета, нам проводили небольшую демонстрацию возможностей этой надстройки эксперты из БИМ-академии, это был небольшой внутренний митап тогда еще технических специалистов по Civil 3d среди партнеров (компаний-дистрибьюторов софта Autodesk) летом 2019 года. Помню, мой давний коллега А. Куренков в шутку спрашивал "ну что, с лета 2020 будешь погружаться в Dynamo"? Кто бы мог подумать, что погружаться в него мне пришлось, но не с азов, а под предлогом автоматизации некоторых специфичных действий в Civil 3D - в основном, для работы с библиотекой систем координат. На тот момент, это был пакет нодов MapConnection.
Осенью 2020 года стартовал курс "BIM-менеджмент" от ННГАСУ, Росатома и Vysotsky Consalting
На нём автоматизация в Dynamo не применялась, но мной для подготовки материалов и их анализа потом активно использовалась. Ясное дело, это были простенькие задачки а-ля посчитать геометрию, нарисовать примитивы и т.д.
Куда более серьезные задачи на автоматизацию начались с лета 2021 года, когда я параллельно был трудоустроен на двух площадках - своём вузе с проектом создания существующих схем ОДД по СПб и в РЖДП, где семимильными шагами двигались в БИМ и реашилсь задачи интероперабельности ПО в части ЖД.
Скромно уточню сферы использования там Dynamo
- построение минимальных выпуклых оболочек для захвата 60-м зоны вдоль трасс Civil 3D (геометрический алгоритм простой, взят с Habr);
- вычисление оптимальных разбивок трасс на листы с выводом отчета в текстовый вид;
- авто-поворот точечных и текстовых объектов относительно ближайшей трассы (для чертежей);
- расстановка по листам линии разрывов, названий листов, заполнение динамического блока-штампа;
- автоматизация перестроения поверхностей (отдельный непубличный пакет нодов для Dynamo для парсинга LandXML и генерации по нему поверхности Civil 3D), для каких-то линейных сооружений;
- генерация в revit точной топоповерхности по граням LandXML-поверхности из Civil 3D (пакет CreateRevitTopoSurface);
И далее еще ряд пакетов, которые в своё время были написаны:
- MapConnection: работа с базой систем координат;
- Civil3d.CustomNodes: разная мелочь, свойства чертежа, солиды;
- RengaDyn: пакет нодов для отечественной САПР Renga, был капитально обновлен в августе 2023.
2. О разработке этого курса
Первые осторожные политические заявления о намерениях написать курс были мной высказаны Алле Землянской еще кажется в начале 2023 года, в апреле я даже сформировал предварительную программу, но потом я погрузился в кучу работы, и в учебные дела своей аспирантуры - подготовка заданий и сдача кандидатских экзаменов в июне, потом в недельный отпуск в горы (Архыз), потом в прокрастинацию дома и короче к записи курса вернулся только в середине августа.
Кстати, похождения в Архызе можно почитать на моем втором канале (чисто туритическом-личном),чтобы не сбивать поисковые индексы Дзена разнотематическими статьями:
Там же есть и другие статьи за период активного творчества здесь, приводить на все не буду, если интересно, сами прочтете.
Итак, я сел записывать курс где-то в середине августа, но мне сразу не понравится звук, и я заказал себе новый микрофон, потом началась новая волна работы со стороны СПбПУ и я забросил курс до начала сентября.
Весь курс был мной записан до 18.09. Потом я на неделю катался в Москву на конференцию Графикон 2023 и потом в Нижний Новгород в свой ННГАСУ. Про это даже писать не хочу 😐.
3. Контент курса
Хоть я и не люблю высокие фразы, но курс получился огненный. Я вообще хотел, чтобы он был полностью бесплатный, но... хотя бы так, чем полностью закрытый.
Из его основных особенностей:
- упор на работу с объектами AutoCAD;
- плавное погружение в инструменты автоматизации от стандартных нодов, нодов из сторонних пакетов, Python-скриптов, Python-нодов с .NET API, своих нодов на C# и ActiveX API;
- специально для курса был разработан и опубликован открыто пакет нодов Link_COM_Acad,
который за 17 дней скачали лишь 156 человек 😣, и это мировое сообщество якобы заинтересованное в крутой автоматизации;
Вариантов приобретения там два, оба через предварительный запрос:
4. Что дальше?
Ещё на этапе подготовки материалов для данного курса я планировал его расширить частью про Дороги (коридоры, профили, конструкции) и Инженерные сети, включая блок практических задач, но теперь делать этого не особо хочется, так как не виден спрос, как и применимость этих подходов. Смотря здраво на процессы автоматизации с позиции такого же программиста или даже писателя-интегратора решений, становится очевидной несостоятельность Dynamo как средства серьезной автоматизации, независящей от обновлений продукта и решающей комплексные задачи. Применяемая в Dynamo абстракция для перехода от .NET API к нодам не гарантирует выполнения логики для всех случаев, а где-то и вовсе невозможна для переноса в среду графического редактора.
Логичный путь действий - автоматизация средствами встроенного .NET API и логичный вопрос про низкий процент пользователей, владеющих навыками программирования под AutoCAD или Civil 3D компенсируется огромным числом открытых проектов и сообществом разработчиков, где ответы можно найти.
У меня есть в планах адаптировать пакет Link_COM_Acad для nanoCAD и ModelStudio с записью такого курса, но пока всё на паузе. До востребованности.