Class Ifc4::IfcBlock

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4::IfcBlock : public Ifc4::IfcCsgPrimitive3D

The IfcBlock is a Construction Solid Geometry (CSG) 3D primitive. It is defined by a position and a positve distance along the three orthogonal axes. The inherited Position attribute has the IfcAxisPlacement3D type and provides:

SELF\IfcCsgPrimitive3D.Position: The location and orientation of the axis system for the primitive. SELF\IfcCsgPrimitive3D.Position.Location: The block has one vertex at location and the edges are aligned with the placement axes in the positive sense.

The XLength, YLength, and ZLength attributes define the size of the IfcBlock along the three axes. The following definitions from ISO 10303-42 apply:

A block is a solid rectangular parallelepiped, defined with a location and placement coordinate system. The block is specified by the positive lengths x, y, and z along the axes of the placement coordinate system, and has one vertex at the origin of the placement coordinate system.

Figure 250 illustrates geometric parameters of a block where the block positioned within its own placement coordinate system. The values for XLength, YLength, and ZLength are applied to the positive direction of the X, Y, and Z axis.

Figure 250 — Block geometry

NOTE Corresponding ISO 10303-42 entity: block, the position attribute has been promoted to the immediate supertype IfcCsgPrimitive3D. Please refer to ISO 10303-42:1994, p. 244 for the definition in the international standard.

HISTORY New entity in IFC2x3.

Texture use definition On each side face, textures are aligned facing upright. On the top and bottom faces, textures are aligned facing front-to-back. Textures are stretched or repeated to the extent of each face according to RepeatS and RepeatT.

Figure 251 illustrates default texture mapping with a clamped texture (RepeatS=False and RepeatT=False). The image on the left shows the texture where the S axis points to the right and the T axis points up. The image on the right shows the texture applied to the geometry where the X axis points back to the right, the Y axis points back to the left, and the Z axis points up.

Side Normal Origin X Origin Y Origin Z S Axis T Axis

Left -X 0 +YLength 0 -Y +Z

Right +X 0 +YLength 0 +Y +Z

Front +X 0 0 0 +X +Z

Back +Y +XLength +YLength 0 -X +Z

Bottom -Z +XLength 0 0 -X +Y

Top +Z 0 0 +ZLength +X +Y

Figure 251 — Block textures

Public Types

typedef IfcTemplatedEntityList<IfcBlock> list

Public Functions

double XLength() const

The size of the block along the placement X axis. It is provided by the inherited axis placement through SELF\IfcCsgPrimitive3D.Position.P[1].

void setXLength(double v)
double YLength() const

The size of the block along the placement Y axis. It is provided by the inherited axis placement through SELF\IfcCsgPrimitive3D.Position.P[2].

void setYLength(double v)
double ZLength() const

The size of the block along the placement Z axis. It is provided by the inherited axis placement through SELF\IfcCsgPrimitive3D.Position.P[3].

void setZLength(double v)
const IfcParse::entity &declaration() const
IfcBlock(IfcEntityInstanceData *e)
IfcBlock(::Ifc4::IfcAxis2Placement3D *v1_Position, double v2_XLength, double v3_YLength, double v4_ZLength)

Public Static Functions

const IfcParse::entity &Class()