Переход от аннотаций к FamilySymbol

Автор Тема: Переход от аннотаций к FamilySymbol  (Прочитано 3086 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BazingaАвтор темы

  • ADN Club
  • ***
  • Сообщений: 101
  • Карма: 4
Нужно получить 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 возвращает.

В чем ошибка может быть?

Отмечено как Решение Александр Ривилис 04-06-2018, 18:44:50

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Переход от аннотаций к FamilySymbol
« Ответ #1 : 04-06-2018, 16:20:29 »
День добрый.

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

Используйте последний предложенный Вами вариант, только уберите ID.

Оффлайн BazingaАвтор темы

  • ADN Club
  • ***
  • Сообщений: 101
  • Карма: 4
Re: Переход от аннотаций к FamilySymbol
« Ответ #2 : 04-06-2018, 16:25:43 »
Александр Игнатович, Александр Игнатович, Пасибки!

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Переход от аннотаций к FamilySymbol
« Ответ #3 : 04-06-2018, 16:30:20 »
Забыл про "во-вторых"  :) Хотел написать еще, что нужно было бы использовать WhereElementIsElementType(), но это актуально для первого варианта, иначе будет находить как типоразмеры, так и экземпляры. OfClass(typeof(FamilySymbol)) будет вполне достаточно