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

ADN Club => Revit API => Тема начата: shss от 04-03-2017, 10:46:58

Название: Получение всех категорий из Schedule
Отправлено: shss от 04-03-2017, 10:46:58
Добрый день!
Мне необходимо получить категории спецификации.
Для одной категории я использую
Код - C# [Выбрать]
  1.  Category category = doc.Settings.Categories.get_Item((BuiltInCategory)viewSheet.Definition.CategoryId.IntegerValue);
но в случае с <Multi-Category> значение IntegerValue = -1.
И через LookUp категория возращает null.
Хочу попробовать вариант перебрать все элементы и получить их категории, но может есть вариант поприличнее, например получить эти категории напрямую из параметров спецификации?

Спасибо
Название: Re: Получение всех категорий из Schedule
Отправлено: shss от 04-03-2017, 11:57:42
Пока оставил вот так, до нахождения лучшего решения:
Код - C# [Выбрать]
  1. CategorySet cs = new CategorySet();
  2. List<string> categoriesName = new List<string>();
  3. foreach (ElementId elementId in new FilteredElementCollector(viewSheet.Document, viewSheet.Id).WhereElementIsNotElementType().ToElementIds()) {
  4.     Category elementCategory = doc.GetElement(elementId).Category;
  5.     if (!categoriesName.Contains(elementCategory.Name)) {
  6.         categoriesName.Add(elementCategory.Name);
  7.         cs.Insert(elementCategory);
  8.     }
  9. }
  10.