Class Ifc4::IfcBoxedHalfSpace

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4::IfcBoxedHalfSpace : public Ifc4::IfcHalfSpaceSolid

Definition from ISO/CD 10303-42:1992: This entity is a subtype of the half space solid which is trimmed by a surrounding rectangular box. The box has its edges parallel to the coordinate axes of the geometric coordinate system.

NOTE The purpose of the box is to facilitate CSG computations by producing a solid of finite size.

The IfcBoxedHalfSpace is used (as its supertype IfcHalfSpaceSolid) only within Boolean operations. It divides the domain into exactly two subsets, where the domain in question is that of the attribute Enclosure. The purpose of the attribute Enclosure is to provide a search box for the other operand in the Boolean operation. It shall be sufficiently large to fully enclose the resulting solid after the Boolean operation with the half space. It however does not alter the final result. The result of the Boolean operation would be the same, as if executed by the supertype IfcHalfSpaceSolid. See Figure 253 below.

Figure 253 — Boxed half space operands

NOTE Corresponding ISO 10303-42 entity: boxed_half_space, please refer to ISO/IS 10303-42:1994, p. 185 for the final definition of the formal standard. The IFC class IfcBoundingBox is used for the definition of the enclosure, providing the same definition as box_domain.

HISTORY New entity in IFC Release 1.5.1, improved documentation available in IFC Release 2x.

IFC2x4 CHANGE Usage correct, position coordinate system for Enclosure is the object coordinate system.

The IfcBoundingBox (relating to ISO 10303-42:1994 box_domain) that provides the enclosure is given for the convenience of the receiving application to enable the use of size box comparison for efficiency (for example, to check first whether size boxes intersect, if not no calculations has to be done to check whether the solids of the entities intersect).

The Enclosure therefore helps to prevent dealing with infinite-size related issues. The enclosure box is positioned within the object coordinate system, established by the ObjectPlacement of the element represented (for example, by IfcLocalPlacement). Figure 254 shows the Enclosure box being sufficiently large to fully enclose the Boolean result.

Figure 254 — Boxed half space geometry

Public Types

typedef IfcTemplatedEntityList<IfcBoxedHalfSpace> list

Public Functions

::Ifc4::IfcBoundingBox *Enclosure() const

The box which bounds the resulting solid of the Boolean operation involving the half space solid for computational purposes only.

void setEnclosure(::Ifc4::IfcBoundingBox *v)
const IfcParse::entity &declaration() const
IfcBoxedHalfSpace(IfcEntityInstanceData *e)
IfcBoxedHalfSpace(::Ifc4::IfcSurface *v1_BaseSurface, bool v2_AgreementFlag, ::Ifc4::IfcBoundingBox *v3_Enclosure)

Public Static Functions

const IfcParse::entity &Class()