Почему происходит сбой «ElementId (BuiltInCategory.OST_Walls)» в Revit API 2019? - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь отфильтровать стены.Для этого я использую

categories = List[ElementId]()
myId = ElementId(BuiltInCategory.OST_Walls)
categories.Add(myId)

.. но это, очевидно, не возвращает действительный ElementId, поскольку, когда я его печатаю, у него есть какое-то отрицательное значение (и если я печатаю «doc.GetElement (myId)», Я получаю «None»).

Тогда, действительно, при создании фильтра ...

filter = ParameterFilterElement.Create(doc, "Walls filter", categories)

... Я получаю ArgumentException.Я использую Revit 2019 (с pyRevit).Насколько я помню, раньше он работал с Revit 2018, но я не вижу причин, по которым он больше не должен.Чего мне не хватает?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Примените ElementCategoryFilter к коллектору, чтобы получить все стены проекта.Используя следующий код, вы можете отфильтровать любую категорию.Я пробовал это на Revit 2019.

FilteredElementCollector collector = new FilteredElementCollector(document);
ICollection<Element> walls = collector.OfCategory(BuiltInCategory.OST_Walls).ToElements();
0 голосов
/ 03 марта 2019

Вы можете просто использовать отфильтрованный элемент сборщика OfCategory Метод .

Например, посмотрите, как Building Coder намекает на оптимизация сборщика отфильтрованных элементов .

...