Всем привет! Сегодня будет короткая статья о раскрашивании стен в Revit API. Всё довольно просто и понятно, можно брать код, собирать элементы в своём проекте и раскрашивать их по условиям (если вдруг почему-то вам не подошли фильтры).
Решение задачи
Напишем макрос, который предлагает пользователю выбрать грань, и раскрасим её в предварительно выбранный материал.
Для этого нам надо передать в метод PickObject другой аргумент ObjectType — Face.
Затем нужно из получившейся ссылки на грань получить саму грань. У меня это не получилось, поэтому я пошёл путём перебора по всем граням выбранного элемента, пока не дойдём до нужной. Код получился такой:
Что мы делаем:
- Находим нужный нам материал с помощью Linq
- Получаем геометрию выбранного элемента
- Берём входящие в неё солиды
- Перебераем все их грани, пока не найдём нужную. А как только находим, раскрашиваем её в выбранный материал.
Результат:
Ура, мы написали аналог команды "Краска" ))0).
А на этом на сегодня всё. Не забывайте подписываться на мой телеграм-канал о Revit API и до новых встреч на страницах блога!