Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: user32 от 13-02-2021, 10:05:04
-
Здравствуйте,
У меня есть семейство не основе стены/перекрытия (проходки). Мне необходимо получать точки на границе со стеной как центральную так и угловую, но всегда с одной стороны.
Например вот такие:
(https://i.postimg.cc/PLtDdVHs/2021-02-13-09-55-34-Autodesk-Revit-2020-2-rvt-3-D-3-D.png) (https://postimg.cc/PLtDdVHs)
Я думал получить через bounding Box, но не могу понять как мне получить ту плоскость, которая параллельно стене, возможно ли как то это сделать?
Может быть тут какой то другой подход можно применить, а не через Bbox?
Не могу понять что-то
-
Не совсем понял вопрос, честно говоря, но, ты случаем, не Wall.Orientation ищешь?
-
Возможно это тоже пригодится. Идея заключается в следующем. У меня есть проходка, например, я беру у нее boundingBox, затем я у Bbox беру ту плоскость, которая параллельна стене и которая по координате X меньше и уже на ней я получаю точки которые мне нужны.
(https://i.postimg.cc/2bv1LgF9/image.png) (https://postimg.cc/2bv1LgF9)
-
Так стены не обязательно параллельны OX или OY. Пока опять не понимаю, у тебя это семейство уже размещено в модели? Если оно на основе грани, можно попробовать с его HostFace-ом поработать
-
Да, семейство уже размещено в модели. Семейство на основе стены. Вот думаю попробовать найти пересечение элемента и стены, может как то через это получится
-
1. Через метод HostObjectUtils.GetSideFaces получаем нужную грань стены - наружную или внутреннюю. Пример (https://adndevblog.typepad.com/aec/2012/07/accessing-the-exterior-face-of-a-wall-programmatically.html)
2. Используем пример из этой статьи (https://thebuildingcoder.typepad.com/blog/2015/12/wall-opening-profiles-and-happy-holidays.html) и получаем грани, образованные семейством
3. Проецируем точки ребер граней из п.2 на плоскость из п.1 и находим среднюю точку
-
Спасибо!