Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 20.0.0.0 (20.0.0.377)
Since:
2011
Syntax
C# |
---|
public class ElementClassFilter : ElementQuickFilter |
Visual Basic |
---|
Public Class ElementClassFilter _ Inherits ElementQuickFilter |
Visual C++ |
---|
public ref class ElementClassFilter : public ElementQuickFilter |
Remarks
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
Examples

// Use ElementClassFilter to find family instances whose name is 60" x 30" Student ElementClassFilter filter = new ElementClassFilter(typeof(FamilyInstance)); // Apply the filter to the elements in the active document FilteredElementCollector collector = new FilteredElementCollector(document); collector.WherePasses(filter); // Use Linq query to find family instances whose name is 60" x 30" Student var 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 used List<FamilyInstance> familyInstances = query.Cast<FamilyInstance>().ToList<FamilyInstance>();

' Use ElementClassFilter to find family instances whose name is 60" x 30" Student Dim filter As New ElementClassFilter(GetType(FamilyInstance)) ' Apply the filter to the elements in the active document Dim collector As New FilteredElementCollector(document) collector.WherePasses(filter) ' Use Linq query to find family instances whose name is 60" x 30" Student Dim query As System.Collections.Generic.IEnumerable(Of Autodesk.Revit.DB.Element) 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 used Dim familyInstances As List(Of FamilyInstance) = query.Cast(Of FamilyInstance)().ToList()
Inheritance Hierarchy
Autodesk.Revit.DB..::..ElementFilter
Autodesk.Revit.DB..::..ElementQuickFilter
Autodesk.Revit.DB..::..ElementClassFilter