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

23/11/2015

Извлечение всех элементов модели

В очередной раз коснемся темы извлечения всех элементов модели.

Вопрос: Для ясности скажем, что под «всеми элементами модели» подразумеваются все объекты, которые существуют в реальном мире: стулья, двери, стены и т.д. Графические элементы, такие как Уровни, Виды, Размерности, Аннотации и т.д. не должны включаться. Я просматривал примеры The Building Coder много раз и во многих из них используется фильтрация элементов по определенным категориям. Ваш пример от 2009 года возможно лучший, но довольно старый. Я ищу более современный способ.  Извиняюсь если я пытаюсь найти что-то очевидное. Я думал, что управлюсь за пять минут, но так и не смог найти решение.

Ответ: Это подойдет?

Код - C#: [Выделить]
  1.   IEnumerable<Element> GetAllModelElements(
  2.     Document doc )
  3.   {
  4.     Options opt = new Options();
  5.  
  6.     return new FilteredElementCollector( doc )
  7.       .WhereElementIsNotElementType()
  8.       .WhereElementIsViewIndependent()
  9.       .Where<Element>( e
  10.         => null != e.Category
  11.         && null != e.get_Geometry( opt ) );
  12.   }

Добавил этот пример в The Building Coder версия 2016.0.120.4

Это должно быть то, что нужно.

Источник: http://thebuildingcoder.typepad.com/blog/2015/09/firerating-in-the-cloud-and-revitlookup-update.html#4

Автор перевода: Виктор Чекалин

Обсуждение: http://adn-cis.org/forum/index.php?topic=3231

Опубликовано 23.11.2015