Найти тему
IEK GROUP

BIM с нуля #4: Почему важно изучать языки программирования для проектировщика. Объясняем на примерах с Python

Оглавление

Мы продолжаем тему «BIM с нуля» и сегодня расскажем, зачем проектировщику стоит выучить Python. А разобраться во всех нюансах поможет наш эксперт, BIM-менеджер IEK GROUP Владислав Созутов.

Почему важно изучать языки программирования для проектировщика. Объясняем на примерах с Python
Почему важно изучать языки программирования для проектировщика. Объясняем на примерах с Python

– В современном проектировании у специалиста очень много рутины и слишком мало творчества. Проектировщик превращается в робота и перестает мыслить креативно, – говорит Владислав Созутов. – Плюс ко всему, не все знают, как правильно управлять своим временем, и зачастую всегда в погоне за сдачей того или иного проекта. Некогда учиться чему-то новому, совершенствоваться, да и просто подумать над решением задачи.

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

Распределите свое время, верно оцените срок сдачи проекта, расставьте приоритеты (делайте в первую очередь самое важное). И каждый день оставляйте 30-60 минут на самообучение.

Распределите свое время, верно оцените срок сдачи проекта, расставьте приоритеты
Распределите свое время, верно оцените срок сдачи проекта, расставьте приоритеты

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

Python – наиболее универсальный язык, с понятным синтаксисом, что позволяет моментально вкатиться и начать решать задачи. Он идеально подходит для науки и, в частности, для проектирования (работа с excel-таблицами, написание небольших расширений под САПР-системы и т.д.).

Python – наиболее универсальный язык, с понятным синтаксисом, что позволяет моментально вкатиться и начать решать задачи.
Python – наиболее универсальный язык, с понятным синтаксисом, что позволяет моментально вкатиться и начать решать задачи.

Если хотите освоить Python, не покупайте дорогостоящие курсы, это просто маркетинг. Достаточно зайти на официальную страничку языка и почитать документацию. Кстати, документация на английском, что позволит вам освоить еще один язык))

Есть также несколько популярных ресурсов для самообучения на русском - pythonworld и конечно же, YouTube и habr\q&a вам в помощь. Кроме того, не помешало бы прочитать несколько книг, например «Изучаем Python», автор Лутц М. – всем советую.

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

Автоматизация Excel при помощи Python

Я хочу с вами разобрать несколько конкретных кейсов, которые реализовал с помощью Python. Первое, с чего начал, – это автоматизация excel. Для работы с таблицами на «Питоне» вам понадобятся дополнительные библиотеки, например, openpyxl.

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

Проверяем на простом примере, действительно ли можно реализовать автоматизацию с помощью данной библиотеки. После написания еще раз тестируем и сравниваем результаты ручного труда и нашего скрипта. Чтобы не запускать каждый раз скрипт из редактора кода, вам пригодится библиотека, которая создает .exe файл для запуска вашей программы – PyInstaller.

Как Python помогает автоматизировать Revit

Далее поговорим про BIM-пример, в частности, про автоматизацию в Revit. Чтобы на «Питоне» работать в Revit, вам понадобятся такие инструменты как revit python shell, revitLookup и pyRevit, а также знания Revit API (API - программный интерфейс приложения, позволяющий взаимодействовать с приложением, некие правила).

  • Revit python shell – среда разработки, встроенная в Revit, написанная на языке IronPython (одно из ответвлений Python), которая позволяет быстро написать скрипт и посмотреть, как работает ваш код. Очень помогает при изучении Revit API.
  • RevitLookup – это интерактивный инструмент исследования базы данных проекта Revit. Поможет понять, как устроен Revit изнутри, и посмотреть, как добраться до нужного параметра.
  • PyRevit – это среда быстрого прототипирования приложений (RAD) для Revit. PyRevit – мощный инструмент для реализации ваших идей, который позволяет быстро набросать прототип на любом языке, который вам наиболее удобен в среде Revit, с использованием его API.

Этих инструментов будет достаточно на начальном этапе. Давайте вернемся к конкретному примеру создания скрипта для Revit. Допустим, мы устали создавать одни и те же параметры при создании нового семейства. Мы понимаем, что шаблоны семейств нам не подойдут (есть множество причин, почему это может быть), и хотим, чтобы по кнопке автоматически создавались параметры. Причем параметр должен создаться в определенном месте, в группе параметров (параметры в Revit сгруппированы) «Идентификация». И некоторые из этих параметров должны быть заполнены: либо просто значение, либо в строке формул.

Открываем Revit API и смотрим, какие методы нам позволят создать параметры. Затем проверяем, как добраться до нужных параметров через RevitLookup. Далее тестируем нашу идею в Python shell. Если всё ОК, то начинаем писать наш код в Visual Code, заранее подключив файл .py к pyRevit. Это и есть наши процессы при написании скриптов.

Кстати, если вам нужен код для создания и заполнения параметров, оставлю вам ссылку в комментариях.

Второй пример по Revit – это заполнение параметров в проекте для системных семейств. Не секрет, что заполнять параметры системных семейств вроде лотков или воздуховодов неудобно, так как они имеют разные размеры и в тип лотка не запишешь эту информацию.

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

Как я реализовал данный скрипт, вы можете посмотреть сами, ссылку оставлю в комментариях.

Это только пара примеров того, что можно реализовать с помощью Revit API. Всё зависит от вашей фантазии и практики, возможностей – масса.

Кроме этих инструментов, хотел бы еще рассказать про Dynamo – это гибкая среда, предназначенная для совместного использования с широким спектром программ. Dynamo включает отдельный набор узлов, разработанных специально для Revit, а также библиотеки сторонних разработчиков из числа участников сообщества пользователей в сфере строительства. Dynamo отлично подойдет для тех новичков, кто всё-таки хотел бы не программировать, а просто реализовать свою идею. Вы можете наглядно посмотреть реализацию скрипта и со временем начнете понимать, как устроен API и как функции связаны между собой.

Пример работы в Dynamo
Пример работы в Dynamo

На этом всё, спасибо, что дочитали до конца. Удачи в автоматизации!

Надеемся, статья была вам полезной. Ставьте лайк и подписывайтесь на наш канал, чтобы не пропустить интересную информацию!

Наши предыдущие статьи на тему проектирования:

Ссылка на программное обеспечение для проектирования: https://www.iek.ru/products/standard_solutions/

Все публикации на канале по данной теме: #iek-bim

#bim #bim-технологии #revit #revit уроки #сапр #электрика #проектирование домов #iek #iek group