Solid Class


Solid Class

A 3d solid.
Inheritance Hierarchy

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public class Solid : GeometryObject

The Solid type exposes the following members.

Properties
Name Description
Public property Edges The edges that belong to the solid.
Public property Code example Faces The faces that belong to the solid.
Public property Code example GraphicsStyleId The ElementId of the GeometryObject's GraphicsStyle
(Inherited from GeometryObject )
Public property Id A unique integer identifying the GeometryObject in its associated non view-specific GeometryElement.
(Inherited from GeometryObject )
Public property IsElementGeometry Indicates whether this geometry is obtained directly from an Element.
(Inherited from GeometryObject )
Public property Code example IsReadOnly Identifies if the object is read-only or modifiable.
(Inherited from APIObject )
Public property SurfaceArea Returns the total surface area of this solid.
Public property Visibility The visibility.
(Inherited from GeometryObject )
Public property Volume Returns the signed volume of this solid.
Top
Methods
Name Description
Public method ComputeCentroid Returns the Centroid of this solid.
Public method Dispose Causes the object to release immediately any resources it may be utilizing.
(Inherited from APIObject )
Public method Equals Determines whether the specified Object is equal to the current Object .
(Inherited from GeometryObject )
Public method GetBoundingBox Retrieves a box that circumscribes the solid geometry.
Public method GetHashCode Gets the integer value of the geometry object as hash code
(Inherited from GeometryObject )
Public method GetType Gets the Type of the current instance.
(Inherited from Object )
Public method Code example IntersectWithCurve Calculates and returns the intersection between a curve and this solid.
Public method ToString Returns a string that represents the current object.
(Inherited from Object )
Top
Remarks
A solid is defined by the faces and edges that form its boundary.
Example
private void GetAndTransformSolidInfo(Application application, Element element, Options geoOptions)
{
    // Get geometry element of the selected element
    Autodesk.Revit.DB.GeometryElement geoElement = element.get_Geometry(geoOptions);

    // Get geometry object
    foreach (GeometryObject geoObject in geoElement)
    {
        // Get the geometry instance which contains the geometry information
        Autodesk.Revit.DB.GeometryInstance instance = geoObject as Autodesk.Revit.DB.GeometryInstance;
        if (null != instance)
        {
            foreach (GeometryObject instObj in instance.SymbolGeometry)
            {
                Solid solid = instObj as Solid;
                if (null == solid || 0 == solid.Faces.Size || 0 == solid.Edges.Size)
                {
                    continue;
                }

                Transform instTransform = instance.Transform;
                // Get the faces and edges from solid, and transform the formed points
                foreach (Face face in solid.Faces)
                {
                    Mesh mesh = face.Triangulate();
                    foreach (XYZ ii in mesh.Vertices)
                    {
                       XYZ point = ii;
                        XYZ transformedPoint = instTransform.OfPoint(point);
                    }
                }
                foreach (Edge edge in solid.Edges)
                {
                   foreach (XYZ ii in edge.Tessellate())
                    {
                       XYZ point = ii;
                        XYZ transformedPoint = instTransform.OfPoint(point);
                    }
                }
            }
        }
    }

}
See Also