An individual axis, IfcGridAxis, is defined in the context of a design grid. The axis definition is based on a curve of dimensionality 2. The grid axis is positioned within the XY plane of the position coordinate system defined by the IfcGrid.
The standard geometric representation of IfcGridAxis is defined using a 2D curve entity. Grid axes are normally defined by an offset to another axis. The IfcOffsetCurve2D supports this concept. Each grid axis has a sense given by the parameterization of the curve. The attribute SameSense is an indicator of whether or not the sense of the grid axis agrees with, or opposes, that of the underlying curve.
As shown in Figure 220.127.116.11.A, the grid axis is defined as a 2D curve within the xy plane of the position coordinate system. Any curve can be used to define a grid axis, most common is the use of IfcLine for linear grids and IfcCircle for radial grids.
Most grids are defined by a pair of axis lists, each defined by a base grid axis and axes given by an offset to the base axis. The use of IfcOffsetCurve2D as underlying AxisCurve supports this concept.
The tag or name for this grid axis.
Underlying curve which provides the geometry for this grid axis.
Defines whether the original sense of curve is used or whether it is reversed in the context of the grid axis.
|PartOfW||SET [0:1] OF IfcGrid FOR WAxes|
|PartOfV||SET [0:1] OF IfcGrid FOR VAxes|
|PartOfU||SET [0:1] OF IfcGrid FOR UAxes|
|HasIntersections||SET [0:?] OF IfcVirtualGridIntersection FOR IntersectingAxes||
The reference to a set of <IfcVirtualGridIntersection's, that connect other grid axes to this grid axis.
The dimensionality of the grid axis is 2.
i.e. it can only refer to a single instance of IfcGrid in one of the three list of axes.
ENTITY IfcGridAxis; AxisTag : OPTIONAL IfcLabel; AxisCurve : IfcCurve; SameSense : IfcBoolean; INVERSE PartOfW : SET [0:1] OF IfcGrid FOR WAxes; PartOfV : SET [0:1] OF IfcGrid FOR VAxes; PartOfU : SET [0:1] OF IfcGrid FOR UAxes; HasIntersections : SET [0:?] OF IfcVirtualGridIntersection FOR IntersectingAxes; WHERE WR1 : AxisCurve.Dim = 2; WR2 : (SIZEOF(PartOfU) = 1) XOR (SIZEOF(PartOfV) = 1) XOR (SIZEOF(PartOfW) = 1); END_ENTITY;