Статьи > Тестирование статей
[Revit API]- Как получить линии из условного обозначения отверстия (продолжение)
(1/1)
Андрей Фазлеев:
Всё-таки нашёл решение с получением линий из семейства категории "Типовые аннотации". Как и обещал, пишу продолжение.
Google не помог, в руководстве пользователя тоже ничего не смог обнаружить.
На этот раз выручил сайт revitapisearch.com. Этот сайт - последний рубеж в моих изысканиях.
Если что-то совсем не выходит или нужно окончательно убедиться в том, что невозможно сделать через Revit API - захожу туда, нажимаю на кнопку "Members" и забиваю в поиске на страничке слова по смыслу.
Довольно-таки муторное занятие:
И далее F3, F3, F3 по всей простыне.
На 118-м найденном слове наткнулся на метод:
Ага, на этот раз охота оказалась удачной.
Строку из предыдущего сообщения
--- Код - C# [Выбрать] ---GeometryElement geometryElement = element.get_Geometry(geomOption);заменяю на
--- Код - C# [Выбрать] ---FamilyInstance fi = (FamilyInstance)element;GeometryElement geometryElement = fi.GetOriginalGeometry(geomOption);
Код скомпилировался и даже сработал, но в итоге я получил какую-то козявку в базовой точке проекта:
Видимо OriginalGeometry - это описание геометрии внутри семейства.
В объекте типа FamilyInstance есть метод GetTransform().
Смотрю что есть интересного в линии:
Добавляю строчку с трансформацией линии:
--- Код - C# [Выбрать] ---if (l != null){ l = (Line)l.CreateTransformed(fi.GetTransform()); lines.Add(l);}
В итоге получаю список линий, с изменённым положением и отмасштабированных таким же образом, как и семейства аннотаций:
Удачи!
Навигация
Перейти к полной версии