Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: Agens от 13-08-2023, 21:11:24
-
Давно не писал под Revit API и созрел такой вопрос.
Как без room или space быстро найти все примыкающие стены к стене?
Как я понял JoinGeometryUtils и GetJoinedElements не работает с семействами?
revit 2021
-
Путаницу чую здесь я. При чем тут семейства?
Вообще соседние стены можно получить из Location-а стены, с помощью LocationCurve.get_ElementsAtJoin. Нужно только учитывать Т-образные соединения, например, поиском стен в чуть-чуть расширенном bounding box-е исходной стены.
-
о. спасибо за наводку...
-
да. на концах стены легко искать стены, а вот в T-образном соединении что-то не пойму, как...
-
Собираем LogicalAndFilter из фильтра по классу и по bounding box-у (который берем из текущей стены и чуток увеличиваем), ищем по фильтру стены (fast enough :-)), из найденных стен исключаем ту, по которой искали изначально и те, что уже нашли ранее, смотрим elements at join из location-а. Если есть стена, по которой искали, значит, нашли Т-образное соединение.
Наверное, всю эту схему еще следует чуток расширить, проверять, где находятся соседние стены, то есть, если у тебя угол, с одной стороны которого сплошная стена, а с другой несколько стен по уровням..