Статьи > Тестирование статей

[Revit API] - Как получить линии из условного обозначения отверстия

(1/1)

Андрей Фазлеев:
На прошлой неделе Хасан Мамаев задал вопрос:

--- Цитировать ---Я пытаюсь получить геометрию нескольких экземпляров одного плоского семейства таким кодом:
i.GetInstanceGeometry()
но выдаёт ошибку: AttributeError: 'FamilyInstance' object has no attribute 'GetInstanceGeometry'
Объекты, из которых нужно вытянуть линии - условное отображение отверстий:


--- Конец цитаты ---

Сегодня появилось время, пытаюсь разобраться.

Первым делом обращаюсь к документации.
Есть пример с извлечением геометрии из стены, но применить один в один не удалось.

После изысканий разработал такой код:


--- Код - C# [Выбрать] ---private List<Line> GetLines(Element element){     List<Line> lines = new List<Line>();     Autodesk.Revit.DB.Options geomOption = element.Document.Application.Create.NewGeometryOptions();             if (null != geomOption)            {                geomOption.View = element.Document.ActiveView;                           }     GeometryElement geometryElement = element.get_Geometry(geomOption);     foreach (GeometryInstance gi in geometryElement)    {        foreach (GeometryObject go in gi.GetInstanceGeometry())        {            Line l = go as Line;             if (l != null)            {                lines.Add(l);            }        }    }     return lines; }
Этот код заработал для элементов типа Элементы узлов.
Для Типовых аннотаций не работает. Если найду решение, то сделаю продолжение.

Удачи!

Навигация

[0] Главная страница сообщений

Перейти к полной версии