BoundingBoxIntersectsFilter Class


A filter used to match elements with a bounding box that intersects the given Outline.

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

Syntax

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

Remarks

This filter excludes all objects derived from View and objects derived from ElementType. 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 BoundingBoxIntersects filter to find elements with a bounding box that intersects the 
// given Outline in the document. 

// Create a Outline, uses a minimum and maximum XYZ point to initialize the outline. 
Outline myOutLn = new Outline(new XYZ(0, 0, 0), new XYZ(100, 100, 100));

// Create a BoundingBoxIntersects filter with this Outline
BoundingBoxIntersectsFilter filter = new BoundingBoxIntersectsFilter(myOutLn);

// Apply the filter to the elements in the active document
// This filter excludes all objects derived from View and objects derived from ElementType
FilteredElementCollector collector = new FilteredElementCollector(document);
IList<Element> elements = collector.WherePasses(filter).ToElements();


// Find all walls which don't intersect with BoundingBox: use an inverted filter to match elements
// Use shortcut command OfClass() to find walls only
BoundingBoxIntersectsFilter invertFilter = new BoundingBoxIntersectsFilter(myOutLn, true); // inverted filter
collector = new FilteredElementCollector(document);
IList<Element> notIntersectWalls =
    collector.OfClass(typeof(Wall)).WherePasses(invertFilter).ToElements();
CopyVB.NET
' Use BoundingBoxIntersects filter to find elements with a bounding box that intersects the 
' given Outline in the document. 


' Create a Outline, uses a minimum and maximum XYZ point to initialize the outline. 
Dim myOutLn As New Outline(New XYZ(0, 0, 0), New XYZ(100, 100, 100))

' Create a BoundingBoxIntersects filter with this Outline
Dim filter As New BoundingBoxIntersectsFilter(myOutLn)

' Apply the filter to the elements in the active document
' This filter excludes all objects derived from View and objects derived from ElementType
Dim collector As New FilteredElementCollector(document)
Dim elements As IList(Of Element) = collector.WherePasses(filter).ToElements()


' Find all walls which don't intersect with BoundingBox: use an inverted filter to match elements
' Use shortcut command OfClass() to find walls only
Dim invertFilter As New BoundingBoxIntersectsFilter(myOutLn, True)
' inverted filter
collector = New FilteredElementCollector(document)
Dim notIntersectWalls As IList(Of Element) = collector.OfClass(GetType(Wall)).WherePasses(invertFilter).ToElements()

Inheritance Hierarchy

SystemObject
  Autodesk.Revit.DBElementFilter
    Autodesk.Revit.DBElementQuickFilter
      Autodesk.Revit.DBBoundingBoxIntersectsFilter

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 →