Извлечение всех элементов модели
В очередной раз коснемся темы извлечения всех элементов модели.
Вопрос: Для ясности скажем, что под «всеми элементами модели» подразумеваются все объекты, которые существуют в реальном мире: стулья, двери, стены и т.д. Графические элементы, такие как Уровни, Виды, Размерности, Аннотации и т.д. не должны включаться. Я просматривал примеры The Building Coder много раз и во многих из них используется фильтрация элементов по определенным категориям. Ваш пример от 2009 года возможно лучший, но довольно старый. Я ищу более современный способ. Извиняюсь если я пытаюсь найти что-то очевидное. Я думал, что управлюсь за пять минут, но так и не смог найти решение.
Ответ: Это подойдет?
- IEnumerable<Element> GetAllModelElements(
- Document doc )
- {
- Options opt = new Options();
- return new FilteredElementCollector( doc )
- .WhereElementIsNotElementType()
- .WhereElementIsViewIndependent()
- .Where<Element>( e
- => null != e.Category
- && null != e.get_Geometry( opt ) );
- }
Добавил этот пример в The Building Coder версия 2016.0.120.4
Это должно быть то, что нужно.
Обсуждение: http://adn-cis.org/forum/index.php?topic=3231
Опубликовано 23.11.2015