Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Bazinga от 04-06-2018, 16:17:26

Название: Переход от аннотаций к FamilySymbol
Отправлено: Bazinga от 04-06-2018, 16:17:26
Нужно получить FamilySymbol из аннотаций, чтобы потом разместить его на листе.
Код - C# [Выбрать]
  1. new FilteredElementCollector(document, ID).OfCategory(BuiltInCategory.OST_GenericAnnotation).ToList();
извлечь первый элемент и
Код - C# [Выбрать]
  1. FamilySymbol afs = AnnotFam[0] as FamilySymbol
. Возвращает null.
Код - C# [Выбрать]
  1. FamilySymbol fs = new FilteredElementCollector(document, ID).OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_GenericAnnotation).FirstElement() as FamilySymbol
Также null возвращает.

В чем ошибка может быть?
Название: Re: Переход от аннотаций к FamilySymbol
Отправлено: Александр Игнатович от 04-06-2018, 16:20:29
День добрый.

Во-первых, Вы при создании FilteredElementCollector передаете вторым параметром Id. В этом случае Revit будет искать только элементы, принадлежащие данному виду. FamilySymbol никоим образом не принадлежит какому-либо виду.

Используйте последний предложенный Вами вариант, только уберите ID.
Название: Re: Переход от аннотаций к FamilySymbol
Отправлено: Bazinga от 04-06-2018, 16:25:43
Александр Игнатович, Александр Игнатович, Пасибки!
Название: Re: Переход от аннотаций к FamilySymbol
Отправлено: Александр Игнатович от 04-06-2018, 16:30:20
Забыл про "во-вторых"  :) Хотел написать еще, что нужно было бы использовать WhereElementIsElementType(), но это актуально для первого варианта, иначе будет находить как типоразмеры, так и экземпляры. OfClass(typeof(FamilySymbol)) будет вполне достаточно