Найти в Дзене

Раскраска граней стен с помощью Revit API

Всем привет! Сегодня будет короткая статья о раскрашивании стен в Revit API. Всё довольно просто и понятно, можно брать код, собирать элементы в своём проекте и раскрашивать их по условиям (если вдруг почему-то вам не подошли фильтры).

Решение задачи

Напишем макрос, который предлагает пользователю выбрать грань, и раскрасим её в предварительно выбранный материал.

Для этого нам надо передать в метод PickObject другой аргумент ObjectType — Face.

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

Этот же код на GitHub Gist

Что мы делаем:

  • Находим нужный нам материал с помощью Linq
  • Получаем геометрию выбранного элемента
  • Берём входящие в неё солиды
  • Перебераем все их грани, пока не найдём нужную. А как только находим, раскрашиваем её в выбранный материал.

Результат:

-2

Ура, мы написали аналог команды "Краска" ))0).

А на этом на сегодня всё. Не забывайте подписываться на мой телеграм-канал о Revit API и до новых встреч на страницах блога!

-3