Разноцветный витраж в Dynamo

Создание семейства на основе витража

  • Открываем шаблон «Метрическая система, панель витража».
  • Переходим на восточный фасад.
  • Создаем элемент выдавливания по контуру опорных плоскостей, закрываем замки.
  • В панели свойств устанавливаем конец выдавливания 2.5 и начало — 2.5.
  • Подтверждаем зеленой галочкой.
  • Задаем параметр материала с именем «Цвет» (параметр экземпляра).
  • Сохраняем семейство.

Вставка новой панели в витраж

  • Создаем новый проект на архитектурном шаблоне.
  • Размещаем экземпляр архитектурной стены — Витраж.
  • Загружаем ранее созданное семейство панели.
  • Выбираем на витраже имеющуюся единственную панель (Tab), и заменяем её на созданную и загруженную панель.
  • В свойствах этой панели отобразится параметр «Цвет».

Настройка материалов

  • Переходим Управление — Материалы.
  • Находим материал Стекло и копируем его с именем «Цвет1».
  • Во вкладке графика отмечаем «Использовать визуальный образ».
  • Во вкладке Представление присваиваем цвет «Зеленый»
  • Аналогично создам материалы «Цвет2» (Синий) и «Цвет3″(Бронза)

Разбивка витража на панели

  • Нажимаем в свойствах «Изменить тип»
  • В горизонтальной и вертикальной сетке выбираем «Фиксированное число»
  • Подтверждаем и в параметре экземпляра уточняем количество линий сетки.

Строим Алгоритм в Dynamo

Часть I

  1. Выбор панелей. В дереве выбираем Revit-Selection-Categories. Ставим на поле Нод и выбираем «Панели витража» (CurtainWallPanels).
  2. Выделение панелей. Выбираем нод «All Elements of Category». Соединяем 2 Нода.
  3. Просмотр выделенного. Ставим нод «Watch», соединяем.
  4. Запуск алгоритма. Жмем Запуск и проверяем количество выбранных панелей.
  5. Установка параметров. Удаляем Watch. Ставим нод SetParametrByName. Соединяем Elements-Element. Ставим нод «Code Block» (двойным кликом ЛКМ). Вводим имя параметра в кавычках («Цвет»). Соединяем имя параметра ко входу «ParametrName».
  6. Выбор материала. Для выбора материала ставим нод MaterialByName и перед ним Code Block с текстом «Цвет1». Соединяем Code Block ко входу name, а выход Мaterial ко входу value. Запускаем алгоритм и видим появление списка элементов.

Часть II

  1. Подсчёт элементов. Ставим нод счетчика List.Count от выхода Elements. При запуске алгоритма, видим в ноде количество элементов.
  2. Выборка доли элементов. Ставим Code Block с переменной с, умноженной на долю 0.2.
  3. Округление числа. Ставим нод Round и присоединяем вход к выходу переменной с.
  4. Выборка второй доли. В том же ноде Code Block ставим вторую строку с*0.2, а нод округления копируем и присоединяем ко второй строке. Копирование — Ctrl + перемещение.
  5. Перемешивание элементов в списке. Создаем нод List.Shuffle, распределяющий выбранные элементы в хаотичном порядке. Присоединяем его к выходу нода All Elements of Category.
  6. Выборка элементов из списка. Создаем нод List.TakeItems, выбирающий несколько элементов из начала списка (в нашем случае — из уже образованного хаотичного списка). Количество подсоединяем от округленных значений долей из счетчика.
  7. Выборка оставшихся элементов в списке. Создаем List.DropItems, подключаем аналогично.
  8. Выборка второй доли. Из оставшихся элементов делаем выборку с несколькими элементами, числом равным количеству элементов второй доли. Копируем нод List.TakeItems, список берем и нода List.DropItems, а количество — из округленной второй доли.
  9. Выборка третей доли. Оставшиеся элементы списка выбираем также с помощью нода List.DropItems с такими же вводными, как в п.8. В итоге получаем три списка.

Часть III

  1. Создание группы узлов в алгоритме. Отсоединим связку Elements-Element и выделим мышкой несколько узлов. Создадим группу: Редактирование — Создать группу. Группа предназначена для удобства одновременного перемещения и копирования нескольких узлов. Перенесем группу в правую часть рабочего поля. Два раза откопируем ее перемещением с нажатой клавишей Ctrl. Трем группам назначим разные цвета (правая кнопка — выбор цвета).
  2. Присоединение групп к входным данным. Переименовываем строки в блоках названиями цветов — Цвет1, Цвет2, Цвет3. Присоединяем выходы с трех списков элементов ко входам Element. Запускаем алгоритм. Панели в модели меняют рандомно цвет.