8.8.3.12 IfcCsgSolid
8.8.3.12.1 Semantic definition
An IfcCsgSolid is the representation of a 3D shape using constructive solid geometry model. It is represented by a single 3D CSG primitive, or as a result of a Boolean operation. The operants of a Boolean operation can be Boolean operations themselves forming a CSG tree. The following volumes can be parts of the CSG tree:
- Boundary representation models, such as IfcFacetedBrep, IfcFacetedBrepWithVoids,
- Closed tessellated representation models, such as IfcPolygonalFaceSet, IfcTriangulatedFaceSet,
- Swept area solids, such as IfcExtrudedAreaSolid, IfcRevolvedAreaSolid, and their subtypes for tapering,
- Advanced swept area solids, such as IfcSurfaceCurveSweptAreaSolid), IfcFixedReferenceSweptAreaSolid, IfcSweptDiskSolid
- Half space solids, such as IfcHalfSpaceSolid and its subtypes), and
- CSG primitives, the subtypes of IfcCsgPrimitive3D.
A CSG solid requires two kinds of information for its complete definition: geometric and structural. > * The geometric information is conveyed by solid models. These typically primitive volumes such as cylinders, wedges and extrusions, but can include general B-Rep models. Solid models can also be half space solids. * The structural information is in a tree (strictly an acyclic directed graph) of Boolean result and CSG solids, which represent a ‘recipe’ for building the solid. The terminal nodes are the geometric primitives and other solids. Every CSG solid has precisely one Boolean result associated with it which is the root of the tree that defines the solid. (There may be further Boolean results within the tree as operands). The significance of a CSG solid entity is that the solid defined by the associated tree is thus identified as a significant object itself, and in this way it is distinguished from other Boolean result entities representing intermediate results during the construction process.
8.8.3.12.2 Entity inheritance
-
- IfcSolidModel
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcCurve
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSectionedSpine
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSurface
- IfcTessellatedItem
- IfcTextLiteral
- IfcVector
8.8.3.12.3 Attributes
# | Attribute | Type | Description |
---|---|---|---|
IfcRepresentationItem (2) | |||
IfcSolidModel (1) | |||
Click to show 3 hidden inherited attributes Click to hide 3 inherited attributes | |||
IfcCsgSolid (1) | |||
1 | TreeRootExpression | IfcCsgSelect |
Boolean expression of primitives and regularized operators describing the solid. The root of the tree of Boolean expressions is given explicitly as an IfcBooleanResult entity or as a primitive (subtypes of IfcCsgPrimitive3D). |
8.8.3.12.4 Examples
8.8.3.12.5 Formal representation
ENTITY IfcCsgSolid SUBTYPE OF (IfcSolidModel); TreeRootExpression : IfcCsgSelect; END_ENTITY;