Задача
Сделать скрипт Dynamo для автоматического создания стен внутренней отделки в комнатах, пирогов полов и плинтусов
Как нужно
Стены, полы и плинтуса фиксированного типа. Заказчик сам будет менять их тип в дальнейшем.
Плинтуса должны быть выполнены физически, так как этого требует ТЗ на разработку модели.
Заказчик проектирует здания различного назначения с различным каркасом и внутренними конструкциями. Поэтому в помещении могут быть металлические колонны с обшивкой, витражные перегородки, одна или несколько дверей, несколько контуров плинтусов и т. д.
Как делали
В начале
Разработали тестовый скрипт и ноды для него, производящие базовые операции:
- Анализ контуров помещений и определение контуров построения стен исходя из их толщины
- Построение стен той-же высоты, что и высота помещения
- Определение основы каждой грани помещения (стены, которая является границей грани) и слияние отделочной стены с основной (это необходимо для того, чтобы проемы в основной стене начали вырезаться и в отделочной)
- Генерация пирога пола по контурам помещений
- Анализ траекторий для плинтусов
Первые тесты показали, что наибольшую сложность представляет создание плинтусов с разрывами в дверных проемах.
Решили разработать два варианта: создание одного неразрывного плинтуса и создание множества отдельных плинтусов с разрывами.
В конце
При тестировании на реальных моделях заказчика были внесены правки в алгоритм для фильтрации витражных стен, корректного обхода свободных колонн без обшивки.
Также сделали фильтрацию помещений с некорректной геометрией.
После этого на всех тестовых моделях с разным конструктивом скрипт начал работать корректно и без ошибок.
В конце добавили возможность записи показателей помещений в свойства отделочных стен этих помещений.
Что получилось
Сформировали стройную логическую структуру алгоритма и логические модули упаковали в ноды.
Были разработаны несколько скриптов, которые их используют:
- Генерация отделки для всех помещений
- Генерация отделки для всех помещений на уровне
- Генерация отделки для выделенных помещений
- Генерация отделки для одного выделенного помещения
Модульная структура позволить BIM отделу заказчика оперативно и легко адаптировать скрипты для разных вариантов использования (например, генерация сплошных плинтусов вместо раздельных или анализ только офисных помещений).