На прошлой неделе Хасан Мамаев задал вопрос:
Сегодня появилось время, пытаюсь разобраться.
Первым делом обращаюсь к документации.
Есть пример с извлечением геометрии из стены, но применить один в один не удалось.
После изысканий разработал такой код:
Удачи!
Я пытаюсь получить геометрию нескольких экземпляров одного плоского семейства таким кодом:
i.GetInstanceGeometry()
но выдаёт ошибку: AttributeError: 'FamilyInstance' object has no attribute 'GetInstanceGeometry'
Объекты, из которых нужно вытянуть линии - условное отображение отверстий:
Сегодня появилось время, пытаюсь разобраться.
Первым делом обращаюсь к документации.
Есть пример с извлечением геометрии из стены, но применить один в один не удалось.
После изысканий разработал такой код:
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;
}
Этот код заработал для элементов типа Элементы узлов.
Для Типовых аннотаций не работает. Если найду решение, то сделаю продолжение.
Удачи!
Андрей спасибо за решение моей задачи. Добавлю, что этот код нужен для того чтобы по УГО проемов можно было прорезать в перекрытиях сами проемы
ОтветитьУдалить