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.
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.
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.
public class SpatialElementGeometryCalculator : IDisposable
// 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 |
|---|---|---|
| SpatialElementGeometryCalculator(Document) | None | Constructs a new calculator with default options for the geometry of spatial elements. |
| SpatialElementGeometryCalculator(Document, SpatialElementBoundaryOptions) | None | Constructs a new calculator for the geometry of spatial elements. |
| Name | Return Type | Description |
|---|---|---|
| CalculateSpatialElementGeometry(SpatialElement) | SpatialElementGeometryResults | Compute the spatial element geometry and returns the boundary face information. |
| CanCalculateGeometry(SpatialElement) | bool | This indicates whether the input spatial element is a valid one. |
| Dispose() | None | Releases all resources used by the |
| GetOptions() | The options. | The options that control the calculation. |
| IsRoomOrSpace(SpatialElement) | bool | This indicates whether the input spatial element is a room or a space. |
| Name | Return Type | Description |
|---|---|---|
| IsValidObject | bool | Specifies whether the .NET object represents a valid Revit entity. |