Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: Olga от 19-08-2020, 06:21:06
-
Доброго времени суток!
Мне необходимо узнать максимальную длину и ширину помещения. Все было хорошо когда длина и ширина соответствовали точкам boundingBox. Но если помещение расположено под углом то значения становятся не корректными( снимаются все равно относительно глобальной системы координат). Может быть есть какое нибудь более менее простое решение?
-
Olga,
https://www.revitapidocs.com/2020/75c9d2c7-a402-ea8b-9e7c-f8bc3510bbd5.htm
Там пример как можно получить все сегменты помещения. Кстати, оно ведь может быть и не прямоугольное. Поэтому длина и ширина не всегда имеют смысл.
-
да, я знаю про сегменты. В том то и дело что помещения не совсем прямоугольные, а сегменты бывают довольно короткие даже на прямых участках и мне нужно узнать максимальное расстояние между боковыми стенками.
-
В том то и дело что помещения не совсем прямоугольные, а сегменты бывают довольно короткие даже на прямых участках и мне нужно узнать максимальное расстояние между боковыми стенками.
Попарное получение расстояний между (почти) параллельными сегментами (рассматриваемые как бесконечные прямые) позволит найти максимальное расстояние, или то что можно считать длиной и шириной помещения.
-
Это отличная идея! Спасибо. А есть какой то проверенный способ нахождения параллельных или почти параллельных сегментов?
-
Olga,
Ну например измерение угла между двумя векторами, образованными начальной и конечной точкой сегмента. Если он близок к 0 или PI (степень близости нужно задать самостоятельно, например 0.1), то сегменты параллельны.
Угол между двумя векторами: https://www.revitapidocs.com/2020/4251dd2b-1b48-8b2e-7159-02333cdf39e6.htm
-
Благодарю!