Задача

Сделать скрипт Dynamo для автоматического создания стен внутренней отделки в комнатах, пирогов полов и плинтусов

Скрипт генерации стен, пола и плинтусов

Как нужно

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

Плинтуса должны быть выполнены физически, так как этого требует ТЗ на разработку модели.

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

Как делали

В начале

Разработали тестовый скрипт и ноды для него, производящие базовые операции:

  • Анализ контуров помещений и определение контуров построения стен исходя из их толщины
  • Построение стен той-же высоты, что и высота помещения
  • Определение основы каждой грани помещения (стены, которая является границей грани) и слияние отделочной стены с основной (это необходимо для того, чтобы проемы в основной стене начали вырезаться и в отделочной)
  • Генерация пирога пола по контурам помещений
  • Анализ траекторий для плинтусов

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

Решили разработать два варианта: создание одного неразрывного плинтуса и создание множества отдельных плинтусов с разрывами.

В конце

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

Также сделали фильтрацию помещений с некорректной геометрией.

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

В конце добавили возможность записи показателей помещений в свойства отделочных стен этих помещений.

Что получилось

Сформировали стройную логическую структуру алгоритма и логические модули упаковали в ноды.

Были разработаны несколько скриптов, которые их используют:

  • Генерация отделки для всех помещений
  • Генерация отделки для всех помещений на уровне
  • Генерация отделки для выделенных помещений
  • Генерация отделки для одного выделенного помещения

Модульная структура позволить BIM отделу заказчика оперативно и легко адаптировать скрипты для разных вариантов использования (например, генерация сплошных плинтусов вместо раздельных или анализ только офисных помещений).

Нод генератора плинтусов