Добрый день. Возникла необходимость получить высоту и ширину балок (класс: FamilyInstance, BuiltInCategory: OST_StructuralFraming). Проблемы нет, когда балка направлена параллельно осям координат, достаточно извлечь BoundingBoxXYZ и вычислить габариты.
Сложность возникла когда балка идет под углом.
Я пробовал вычислять высоту используя вектор направления из LocationCurve и используя BoundingBoxXYZ через геометрические формулы, но здесь возникает проблема из-за того, что boundingbox меняется из-за разных значений ползунков "Примыкание в начале" и "Примыкание в конце". В общем мне не удалось корректно получить высоту и ширину балки.
Второй способ какой я вижу, это создавать временный дубликат нужной балки параллельно оси OX и используя BoundingBoxXYZ вычислять габариты временного элемента, сохранять для дальнейшего использования, и затем удалять временный элемент. Но здесь возникает вопрос производительности данного подхода на больших файлах.
Может кто-то сталкивался с подобной проблемой и знает эффективные решения?