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.
System
Object
Autodesk.Revit.DB SpatialElementGeometryCalculator
Autodesk.Revit.DB SpatialElementGeometryCalculator
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 27.0.4.0 (27.0.4.0)
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.
C#
// 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
}
}
}