Revit 2025 API
Spatial |
Use this class to calculate the geometry of a spatial element and obtain the relationships between the geometry and
the element's boundary elements.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
The SpatialElementGeometryCalculator type exposes the following members.

Name | Description | |
---|---|---|
![]() | SpatialElementGeometryCalculator(Document) | Constructs a new calculator with default options for the geometry of spatial elements. |
![]() | SpatialElementGeometryCalculator(Document, SpatialElementBoundaryOptions) | Constructs a new calculator for the geometry of spatial elements. |

Name | Description | |
---|---|---|
![]() | IsValidObject | Specifies whether the .NET object represents a valid Revit entity. |

Name | Description | |
---|---|---|
![]() | CalculateSpatialElementGeometry | Compute the spatial element geometry and returns the boundary face information. |
![]() ![]() | CanCalculateGeometry | This indicates whether the input spatial element is a valid one. |
![]() | Dispose | Releases all resources used by the SpatialElementGeometryCalculator |
![]() | Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
![]() | GetHashCode | Serves as the default hash function. (Inherited from Object) |
![]() | GetOptions | The options that control the calculation. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object) |
![]() ![]() | IsRoomOrSpace | This indicates whether the input spatial element is a room or a space. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object) |

This class maintains an internal cache for geometry it has already processed. If you intend to calculate geometry
for several elements in the same project you should use a single instance of this class. Note that the cache will
be cleared when any change is made to the document.

// Calculate a room's geometry and find its boundary faces SpatialElementGeometryCalculator calculator = new SpatialElementGeometryCalculator(doc); SpatialElementGeometryResults results = calculator.CalculateSpatialElementGeometry(room); // compute the room geometry Solid roomSolid = results.GetGeometry(); // get the solid representing the room's geometry foreach (Face face in roomSolid.Faces) { double faceArea = face.Area; IList<SpatialElementBoundarySubface> subfaceList = results.GetBoundaryFaceInfo(face); // get the sub-faces for the face of the room foreach (SpatialElementBoundarySubface subface in subfaceList) { if (subfaceList.Count > 1) // there are multiple sub-faces that define the face { double subfaceArea = subface.GetSubface().Area; // get the area of each sub-face // sub-faces exist in situations such as when a room-bounding wall has been // horizontally split and the faces of each split wall combine to create the // entire face of the room } } }
' Calculate a room's geometry and find its boundary faces Dim calculator As New SpatialElementGeometryCalculator(doc) Dim results As SpatialElementGeometryResults = calculator.CalculateSpatialElementGeometry(room) ' compute the room geometry Dim roomSolid As Solid = results.GetGeometry() ' get the solid representing the room's geometry For Each face As Face In roomSolid.Faces Dim faceArea As Double = face.Area Dim subfaceList As IList(Of SpatialElementBoundarySubface) = results.GetBoundaryFaceInfo(face) ' get the sub-faces for the face of the room For Each subface As SpatialElementBoundarySubface In subfaceList If subfaceList.Count > 1 Then ' there are multiple sub-faces that define the face ' get the area of each sub-face ' sub-faces exist in situations such as when a room-bounding wall has been ' horizontally split and the faces of each split wall combine to create the ' entire face of the room Dim subfaceArea As Double = subface.GetSubface().Area End If Next Next
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also