ElementCategoryFilter Class


A filter used to match elements by their category.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.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

ArchiLabs

Stop fighting Revit automation.

Build repeatable BIM design and documentation workflows with scripts, data, and AI in one place, without wrestling brittle one-off automations.

Try ArchiLabs →