ElementFilter
A filter used to match elements by their class.
Inheritance Hierarchy
System.Object
Autodesk.Revit.DB.ElementFilter
Autodesk.Revit.DB.ElementQuickFilter
Autodesk.Revit.DB.ElementClassFilter
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public class ElementClassFilter : ElementQuickFilter
The ElementClassFilter type exposes the following members.
Constructors
Name
Description
Public Method
ElementClassFilter(Type)
Constructs a new instance of a filter to match elements by class.
Public Method
ElementClassFilter(Type, Boolean)
Constructs a new instance of a filter to match elements by class, with the option to match all elements which are not of the given class.
Properties
Name
Description
Public Property
Inverted
True if the results of the filter are inverted; elements that would normally be accepted by this filter will be rejected, and elements that would normally be rejected will be accepted.
(Inherited from ElementFilter)
Public Property
IsValidObject
Specifies whether the .NET object represents a valid Revit entity.
(Inherited from ElementFilter)
Methods
Name
Description
Public Method
Dispose
(Inherited from ElementFilter)
Public Method
Equals
Determines whether the specified object is equal to the current object.
(Inherited from Object)
Public Method
GetElementClass
The class for the filter.
Public Method
GetHashCode
Serves as the default hash function.
(Inherited from Object)
Public Method
GetType
Gets the Type of the current instance.
(Inherited from Object)
Public Method
PassesFilter(Element)
Applies the filter to a given element.
(Inherited from ElementFilter)
Public Method
PassesFilter(Document, ElementId)
Applies the filter to a given element.
(Inherited from ElementFilter)
Public Method
ToString
Returns a string that represents the current object.
(Inherited from Object)
Remarks
This filter is a quick filter. Quick filters operate only on the ElementRecord, a low-memory class which has a limited interface to read element properties. Elements which are rejected by a quick filter will not be expanded in memory.
This filter will match elements whose class is an exact match to the input class, or elements whose class is derived from the input class.
There is a small subset of Element subclasses in the API which are not supported by this filter. These types exist in the API, but not in Revit’s native object model, which means that this filter doesn’t support them. In order to use a class filter to find elements of these types, it is necessary to use a higher level class and then process the results further to find elements matching only the subtype. The following types are affected by this restriction:
- Subclasses of Autodesk.Revit.DB.Material
- Subclasses of Autodesk.Revit.DB.CurveElement
- Subclasses of Autodesk.Revit.DB.ConnectorElement
- Subclasses of Autodesk.Revit.DB.HostedSweep
- Autodesk.Revit.DB.Architecture.Room
- Autodesk.Revit.DB.Mechanical.Space
- Autodesk.Revit.DB.Area
- Autodesk.Revit.DB.Architecture.RoomTag
- Autodesk.Revit.DB.Mechanical.SpaceTag
- Autodesk.Revit.DB.AreaTag
- Autodesk.Revit.DB.CombinableElement
- Autodesk.Revit.DB.Mullion
- Autodesk.Revit.DB.Panel
- Autodesk.Revit.DB.AnnotationSymbol
- Autodesk.Revit.DB.Structure.AreaReinforcementType
- Autodesk.Revit.DB.Structure.PathReinforcementType
- Autodesk.Revit.DB.AnnotationSymbolType
- Autodesk.Revit.DB.Architecture.RoomTagType
- Autodesk.Revit.DB.Mechanical.SpaceTagType
- Autodesk.Revit.DB.AreaTagType
- Autodesk.Revit.DB.Structure.TrussType
Example
// Use ElementClassFilter to find family instances whose name is 60" x 30" StudentElementClassFilter filter = new ElementClassFilter(typeof(FamilyInstance));
// Apply the filter to the elements in the active documentFilteredElementCollector collector = new FilteredElementCollector(document);collector.WherePasses(filter);
// Use Linq query to find family instances whose name is 60" x 30" Studentvar query = from element in collector where element.Name == "60\" x 30\" Student" select element;
// Cast found elements to family instances,// this cast to FamilyInstance is safe because ElementClassFilter for FamilyInstance was usedList<FamilyInstance> familyInstances = query.Cast<FamilyInstance>().ToList<FamilyInstance>();