2020 Class
Changes 0
C

SpatialElementGeometryCalculator

Description:
Use this class to calculate the geometry of a spatial element and obtain the relationships between the geometry and the element's boundary elements.
Remarks:
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.
Inheritance Hierarchy:
System.Object
  Autodesk.Revit.DB.SpatialElementGeometryCalculator
// 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
        }
    }
}
Name Return Type Description
C SpatialElementGeometryCalculator(Document) None Constructs a new calculator with default options for the geometry of spatial elements.
C SpatialElementGeometryCalculator(Document, SpatialElementBoundaryOptions) None Constructs a new calculator for the geometry of spatial elements.
Name Return Type Description
M CalculateSpatialElementGeometry(SpatialElement) SpatialElementGeometryResults Compute the spatial element geometry and returns the boundary face information.
M CanCalculateGeometry(SpatialElement) bool This indicates whether the input spatial element is a valid one.
M Dispose() None Releases all resources used by the
M GetOptions() The options. The options that control the calculation.
M IsRoomOrSpace(SpatialElement) bool This indicates whether the input spatial element is a room or a space.
Name Return Type Description
P IsValidObject bool Specifies whether the .NET object represents a valid Revit entity.