Class Ifc4x1::IfcPolygonalBoundedHalfSpace

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcPolygonalBoundedHalfSpace : public Ifc4x1::IfcHalfSpaceSolid

The polygonal bounded half space is a special subtype of a half space solid, where the material of the half space used in Boolean expressions is bounded by a polygonal boundary. The base surface of the half space is positioned by its normal relativeto the object coordinate system (as defined at the supertype IfcHalfSpaceSolid),and its polygonal (with or without arc segments) boundary is defined in the XY plane of the position coordinate system established by the Position attribute, the subtraction body is extruded perpendicular to the XY plane of the position coordinate system, that is, into the direction of the positive Z axis defined by the Position attribute. The boundary is defined by a 2 dimensional polyline (or 2 dimensional composite curve, consisting of straight segments and circular arc segments) within the XY plane of the position coordinate system. The side of the surface which is in the half space is determined by the surface normal and the agreement flag. If the agreement flag is TRUE, then the subset is the one the normal points away from. If the agreement flag is FALSE, then the subset is the one the normal points into.

NOTE A polygonal bounded half space is not a subtype of IfcSolidModel, half space solids are only useful as operands in Boolean expressions.

HISTORY New class in IFC Release 2x.

Informal propositions:

The IfcPolyline or the IfcCompositeCurve providing the PolygonalBoundary shall be closed. If the PolygonalBoundary is given by an IfcCompositeCurve, it shall only haveIfcCompositeCurveSegment’s of type IfcPolyline, or IfcTrimmedCurve (having a BasisCurve of type IfcLine, or IfcCircle)

Figure 259 illustrates a polygonal bounded half space.

Black coordinates indicate the object coordinate system (usually provided by IfcLocalPlacement). Green coordinates indicate the position coordinate system; the PolygonalBoundary is given within this coordinate system. It is provided by IfcPolygonalBoundedHalfSpace.Position. This coordinate system is relative to the object coordinate system. The extrusion direction of the subtraction body is the positive Z axis. Red coordinates indicate the normal of the plane. It is provided by the BaseSurface (IfcSurface.Position). This normal is also relative to the object coordinate system.

Figure 259 — Polygonal half space geometry

Purpose The polygonal bounded half space is used to limit the volume of the half space in Boolean difference expressions. Only the part that is defined by a theoretical intersection between the half space solid and an extruded area solid, defined by extruding the polygonal boundary, is used for Boolean expressions. Parameter The PolygonalBoundary defines the 2D polyline which bounds the effectiveness of the half space in Boolean expressions. The BaseSurface is defined by a plane, and the normal of the plane together with the AgreementFlag defines the side of the material of the half space.

Public Functions

::Ifc4x1::IfcAxis2Placement3D *Position() const

Definition of the position coordinate system for the bounding polyline and the base surface.

void setPosition(::Ifc4x1::IfcAxis2Placement3D *v)
::Ifc4x1::IfcBoundedCurve *PolygonalBoundary() const

Two-dimensional polyline bounded curve, defined in the xy plane of the position coordinate system.

IFC2x Edition 3 CHANGE The attribute type has been changed from IfcPolyline to its supertype IfcBoundedCurve with upward compatibility for file based exchange.

void setPolygonalBoundary(::Ifc4x1::IfcBoundedCurve *v)
const IfcParse::entity &declaration() const
IfcPolygonalBoundedHalfSpace(IfcEntityInstanceData *e)
IfcPolygonalBoundedHalfSpace(::Ifc4x1::IfcSurface *v1_BaseSurface, bool v2_AgreementFlag, ::Ifc4x1::IfcAxis2Placement3D *v3_Position, ::Ifc4x1::IfcBoundedCurve *v4_PolygonalBoundary)

Public Static Functions

const IfcParse::entity &Class()