Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Agens от 13-08-2023, 21:11:24

Название: Найти все примыкающие стены
Отправлено: Agens от 13-08-2023, 21:11:24
Давно не писал под Revit API и созрел такой вопрос.
Как без room или space быстро найти все примыкающие стены к стене?
Как я понял JoinGeometryUtils и GetJoinedElements не работает с семействами?
revit 2021
Название: Re: Найти все примыкающие стены
Отправлено: Александр Игнатович от 18-08-2023, 10:19:40
Путаницу чую здесь я. При чем тут семейства?

Вообще соседние стены можно получить из Location-а стены, с помощью LocationCurve.get_ElementsAtJoin. Нужно только учитывать Т-образные соединения, например, поиском стен в чуть-чуть расширенном bounding box-е исходной стены.

Название: Re: Найти все примыкающие стены
Отправлено: Agens от 24-08-2023, 09:31:30
о. спасибо за наводку...
Название: Re: Найти все примыкающие стены
Отправлено: Agens от 30-08-2023, 20:35:16
да. на концах стены легко искать стены, а вот в T-образном соединении что-то не пойму, как...
Название: Re: Найти все примыкающие стены
Отправлено: Александр Игнатович от 31-08-2023, 10:47:05
Собираем LogicalAndFilter из фильтра по классу и по bounding box-у (который берем из текущей стены и чуток увеличиваем), ищем по фильтру стены (fast enough :-)), из найденных стен исключаем ту, по которой искали изначально и те, что уже нашли ранее,  смотрим elements at join из location-а. Если есть стена, по которой искали, значит, нашли Т-образное соединение.

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