ElementCategoryFilter Class


A filter used to match elements by their category.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 17.0.0.0 (17.0.484.0)
Since: 2011

Syntax

C#
public class ElementCategoryFilter : ElementQuickFilter
Visual Basic
Public Class ElementCategoryFilter _
	Inherits ElementQuickFilter
Visual C++
public ref class ElementCategoryFilter : public ElementQuickFilter

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.

Examples

Copy C#
// Find all Wall instances in the document by using category filter
ElementCategoryFilter filter = new ElementCategoryFilter(BuiltInCategory.OST_Walls);

// Apply the filter to the elements in the active document,
// Use shortcut WhereElementIsNotElementType() to find wall instances only
FilteredElementCollector collector = new FilteredElementCollector(document);
IList<Element> walls = collector.WherePasses(filter).WhereElementIsNotElementType().ToElements();
String prompt = "The walls in the current document are:\n";
foreach (Element e in walls)
{
    prompt += e.Name + "\n";
}
TaskDialog.Show("Revit", prompt);
Copy VB.NET
' Find all Wall instances in the document by using category filter
Dim filter As New ElementCategoryFilter(BuiltInCategory.OST_Walls)

' Apply the filter to the elements in the active document,
' Use shortcut WhereElementIsNotElementType() to find wall instances only
Dim collector As New FilteredElementCollector(document)
Dim walls As IList(Of Element) = collector.WherePasses(filter).WhereElementIsNotElementType().ToElements()
Dim prompt As [String] = "The walls in the current document are:" & vbLf
For Each e As Element In walls
   prompt += e.Name + vbLf
Next
TaskDialog.Show("Revit", prompt)

Inheritance Hierarchy

See Also