Выбираем на витраже имеющуюся единственную панель (Tab), и заменяем её на созданную и загруженную панель.
В свойствах этой панели отобразится параметр «Цвет».
Настройка материалов
Переходим Управление — Материалы.
Находим материал Стекло и копируем его с именем «Цвет1».
Во вкладке графика отмечаем «Использовать визуальный образ».
Во вкладке Представление присваиваем цвет «Зеленый»
Аналогично создам материалы «Цвет2» (Синий) и «Цвет3″(Бронза)
Разбивка витража на панели
Нажимаем в свойствах «Изменить тип»
В горизонтальной и вертикальной сетке выбираем «Фиксированное число»
Подтверждаем и в параметре экземпляра уточняем количество линий сетки.
Строим Алгоритм в Dynamo
Часть I
Выбор панелей. В дереве выбираем Revit-Selection-Categories. Ставим на поле Нод и выбираем «Панели витража» (CurtainWallPanels).
Выделение панелей. Выбираем нод «All Elements of Category». Соединяем 2 Нода.
Просмотр выделенного. Ставим нод «Watch», соединяем.
Запуск алгоритма. Жмем Запуск и проверяем количество выбранных панелей.
Установка параметров. Удаляем Watch. Ставим нод SetParametrByName. Соединяем Elements-Element. Ставим нод «Code Block» (двойным кликом ЛКМ). Вводим имя параметра в кавычках («Цвет»). Соединяем имя параметра ко входу «ParametrName».
Выбор материала. Для выбора материала ставим нод MaterialByName и перед ним Code Block с текстом «Цвет1». Соединяем Code Block ко входу name, а выход Мaterial ко входу value. Запускаем алгоритм и видим появление списка элементов.
Часть II
Подсчёт элементов. Ставим нод счетчика List.Count от выхода Elements. При запуске алгоритма, видим в ноде количество элементов.
Выборка доли элементов. Ставим Code Block с переменной с, умноженной на долю 0.2.
Округление числа. Ставим нод Round и присоединяем вход к выходу переменной с.
Выборка второй доли. В том же ноде Code Block ставим вторую строку с*0.2, а нод округления копируем и присоединяем ко второй строке. Копирование — Ctrl + перемещение.
Перемешивание элементов в списке. Создаем нод List.Shuffle, распределяющий выбранные элементы в хаотичном порядке. Присоединяем его к выходу нода All Elements of Category.
Выборка элементов из списка. Создаем нод List.TakeItems, выбирающий несколько элементов из начала списка (в нашем случае — из уже образованного хаотичного списка). Количество подсоединяем от округленных значений долей из счетчика.
Выборка оставшихся элементов в списке. Создаем List.DropItems, подключаем аналогично.
Выборка второй доли. Из оставшихся элементов делаем выборку с несколькими элементами, числом равным количеству элементов второй доли. Копируем нод List.TakeItems, список берем и нода List.DropItems, а количество — из округленной второй доли.
Выборка третей доли. Оставшиеся элементы списка выбираем также с помощью нода List.DropItems с такими же вводными, как в п.8. В итоге получаем три списка.
Часть III
Создание группы узлов в алгоритме. Отсоединим связку Elements-Element и выделим мышкой несколько узлов. Создадим группу: Редактирование — Создать группу. Группа предназначена для удобства одновременного перемещения и копирования нескольких узлов. Перенесем группу в правую часть рабочего поля. Два раза откопируем ее перемещением с нажатой клавишей Ctrl. Трем группам назначим разные цвета (правая кнопка — выбор цвета).
Присоединение групп к входным данным. Переименовываем строки в блоках названиями цветов — Цвет1, Цвет2, Цвет3. Присоединяем выходы с трех списков элементов ко входам Element. Запускаем алгоритм. Панели в модели меняют рандомно цвет.