ExclusionFilter Class


A filter used to exclude a set of elements automatically.

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

Syntax

C#
public class ExclusionFilter : ElementQuickFilter
Visual Basic
Public Class ExclusionFilter _
	Inherits ElementQuickFilter
Visual C++
public ref class ExclusionFilter : 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

CopyC#
// Use Exclusion filter to find exclude a set of elements in the document automatically 

// Find all walls that are not currently selected, 
// Get all element ids which are current selected by users, exclude these ids when filtering
ICollection<ElementId> selectedIds = uiDocument.Selection.GetElementIds();

// Use the selection to instantiate an exclusion filter
ExclusionFilter filter = new ExclusionFilter(selectedIds);
// For the sake of simplicity we do not test here whether the selection is empty or not,
// but in production code a proper validation would have to be done to avoid an argument
// exception from the filter's consructor.

// Apply the filter to the elements in the active document,
// Use shortcut method OfClass() to find Walls only
FilteredElementCollector collector = new FilteredElementCollector(uiDocument.Document);
IList<Element> walls = collector.WherePasses(filter).OfClass(typeof(Wall)).ToElements();
CopyVB.NET
' Use Exclusion filter to find exclude a set of elements in the document automatically 


' Find all walls that are not currently selected, 
' Get all element ids which are current selected by users, exclude these ids when filtering
Dim selectedIds As ICollection(Of ElementId) = uiDocument.Selection.GetElementIds()

' Use the selection to instantiate an exclusion filter
Dim filter As New ExclusionFilter(selectedIds)
' For the sake of simplicity we do not test here whether the selection is empty or not,
' but in production code a proper validation would have to be done to avoid an argument
' exception from the filter's consructor.


' Apply the filter to the elements in the active document,
' Use shortcut method OfClass() to find Walls only
Dim collector As New FilteredElementCollector(uiDocument.Document)
Dim walls As IList(Of Element) = collector.WherePasses(filter).OfClass(GetType(Wall)).ToElements()

Inheritance Hierarchy

SystemObject
  Autodesk.Revit.DBElementFilter
    Autodesk.Revit.DBElementQuickFilter
      Autodesk.Revit.DBExclusionFilter

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 →