Как получить доступ ко всем типам семейства через revit API?
Можно ли получить доступ ко всем типам семейства определенной категории (например, Windows, Doors, ...) с помощью Revit API? В отличие от экземпляров. Насколько я знаю, использование FilteredElementCollector(doc).OfCategory(...).ToElements() или FilteredElementCollector(doc).OfClass(...).ToElements() указывают на экземпляры этого класса / типа, но я хочу проверить, загружен ли конкретный тип в Revit, даже если он еще не создан.
(Я использую pyRevit, Revit 2017)
Большое спасибо!
3 ответа
В вашем FilterElementCollector, перед тем как вы выполните ToElements(), вы должны добавить WhereElementIsElementType(), затем ToElements().
Для элементов на основе семейства, таких как двери, вы получите элементы FamilySymbol - оттуда вы можете проверить, активны ли они.
Я полагаю, что самый простой подход для определения всех семей, которые были созданы, - это извлечь все семейные экземпляры.
Из этих примеров вы можете определить символ семьи и саму семью и убедиться, что она была создана.
Если такого экземпляра нет, вы не получите ни фамилии, ни фамилии.
Ох, перечитывая, я вижу, что вы хотите наоборот, список всех семей, независимо от того, были ли они созданы или нет. О нет, список всех символов семьи определенной категории, независимо от того, были ли они созданы или нет.
Это на самом деле уже продемонстрировано одним из многочисленных фрагментов сборщика отфильтрованных элементов в примерах The Building Coder. CmdCollectorPerformance
модуль:
Чтобы быть точным, метод GetFamiliesOfCategory
реализовано там извлекает все семейства данной категории. Вы можете легко приспособить это, чтобы получить семейные символы вместо этого.
Ок извини Очевидно, я был неправ, он указывает на все элементы, включая те, которые не были созданы.