Статьи > Тестирование статей
[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; }
Этот код заработал для элементов типа Элементы узлов.
Для Типовых аннотаций не работает. Если найду решение, то сделаю продолжение.
Удачи!
Навигация
Перейти к полной версии