BoundingBoxIsInsideFilter Class


A filter used to match elements with a bounding box that is contained by 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 BoundingBoxIsInsideFilter : ElementQuickFilter
Visual Basic
Public Class BoundingBoxIsInsideFilter _
	Inherits ElementQuickFilter
Visual C++
public ref class BoundingBoxIsInsideFilter : 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 BoundingBoxIsInside filter to find elements with a bounding box that is contained(inside completely) 
// by the given Outline in the document.

// Create a Outline, use 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 BoundingBoxIsInside filter for Outline
BoundingBoxIsInsideFilter filter = new BoundingBoxIsInsideFilter(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 walls outside BoundingBox: use an inverted filter to match elements
// Use shortcut command OfClass() to find walls only
BoundingBoxIsInsideFilter outsideFilter = new BoundingBoxIsInsideFilter(myOutLn, true); // inverted filter
collector = new FilteredElementCollector(document);
IList<Element> outsideFounds = collector.OfClass(typeof(Wall)).WherePasses(outsideFilter).ToElements();
CopyVB.NET
' Use BoundingBoxIsInside filter to find elements with a bounding box that is contained(inside completely) 
' by the given Outline in the document.


' Create a Outline, use 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 BoundingBoxIsInside filter for Outline
Dim filter As New BoundingBoxIsInsideFilter(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 walls outside BoundingBox: use an inverted filter to match elements
' Use shortcut command OfClass() to find walls only
Dim outsideFilter As New BoundingBoxIsInsideFilter(myOutLn, True)
' inverted filter
collector = New FilteredElementCollector(document)
Dim outsideFounds As IList(Of Element) = collector.OfClass(GetType(Wall)).WherePasses(outsideFilter).ToElements()

Inheritance Hierarchy

SystemObject
  Autodesk.Revit.DBElementFilter
    Autodesk.Revit.DBElementQuickFilter
      Autodesk.Revit.DBBoundingBoxIsInsideFilter

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 →