Вам следует пройтись по коду в отладчике и посмотреть, что происходит, строка за строкой. Тогда вы увидите, что происходит не так: ваш сборщик отфильтрованных элементов не обнаружил никаких стен.
Прежде чем что-либо программировать, вы должны использовать RevitLookup и другие инструменты исследования баз данных, чтобы убедиться, что вы ищете нужную вещь.
Если вы взглянете на стену, вы увидите, что она не является элементом FamilyInstance
.
Существует специальный класс Wall
для стен.
Если вы просто отфильтруете по OfClass(typeof(Wall))
, вы получите их.
Кроме того, вызов ToElements
является пустой тратой времени и памяти. Просто удалите его.
Я очень часто это обсуждал на Кодер здания .
Нет необходимости использовать ToElements
, если вы просто хотите перебрать результаты сборщика отфильтрованных элементов.
Вы можете выполнять итерацию непосредственно над самим коллектором.
Использование ToElements
создает копию информации и использует время и пространство без причины, ср., FindElement и оптимизация коллектора .