过滤的使用:
FilteredElementCollector collector = new FilteredElementCollector(doc);
//ICollection<Element> collection = collector.OfClass(typeof(FamilyInstance)).ToElements();
ElementClassFilter filter1 = new ElementClassFilter(typeof(FamilyInstance));
ElementClassFilter filter2 = new ElementClassFilter(typeof(HostObject));
LogicalOrFilter filter = new LogicalOrFilter(filter1, filter2);
ICollection<Element> collection = collector.WherePasses(filter).ToElements();
根据自己的需要,可以添加不同的过滤条件。
HostObject可以过滤出系统族创建的实例。
过滤专用设备的实例。
ICollection<Element> collection = collector.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_SpecialityEquipment).ToElements();
多种过滤条件需要用什么就选择什么。如:ElementClassFilter、ElementClassFilter、ElementLevelFilter、ElementLogicalFilter、LogicalOrFilter、LogicalAndFilter等。