# IFC 4.3.x development

## 8.7.3.3 IfcAlignmentHorizontalSegment

### 8.7.3.3.1 Semantic definitions at the entity

Individual segment along the IfcAlignmentHorizontal, being defined in the x/y coordinate space. Each single horizontal alignment segment has an optional associated segment definition. The placement of IfcAlignmentHorizontalSegment and the IfcCurveSegment StartPlacement correspond to each other.

The following information can be calculated (and is therefore not exchanged explicitly to avoid redundancy and inconsistencies)

• the end point (from start point, direction, segment length and curve parameter)
• the start distance along (from the end distance along of the previous segment, or the start distance along of the horizontal alignment (if it is the first segment)
• the end distance along (from the start distance and the segment length)
• the end direction (from the curve parameter, the start direction and the segment length)
• the point of intersection (from the start direction and the end direction)

The following checks can be done to validate the correct exchange:

• continuity – does the calculated end point of the previous segment matches with the provided start point of this segment
• tangential continuity – does the calculated end direction of the previous segment matches with the provided start direction of this segment

### 8.7.3.3.1 Attributes

#Attribute Type Description
IfcAlignmentParameterSegment
1StartTag OPTIONAL IfcLabel Tag to annotate the start point of the alignment segment.
2EndTag OPTIONAL IfcLabel Tag to annotate the end point of the alignment segment.
IfcAlignmentHorizontalSegment
3StartPoint IfcCartesianPoint The start point of the segment defined by a Cartesian point.
4StartDirection IfcPlaneAngleMeasure The direction of the tangent at the start point. Direction value 0. indicates a curve with a start tangent along the positive x-axis. Values increases counter-clockwise, and decreases clockwise. Depending on the plane angle unit, either degree or radians, the sensible range is -360° ≤ n ≤ 360° (or -2π ≤ n ≤ 2π). Values larger then a full circle (>|360°| or >|2 π| shall not be used.
5StartRadiusOfCurvature IfcLengthMeasure For a NONLINEAR horizontal segment type the radius of the curve at the start point (Placement of the segment). For CIRCULAR type it is constant i.e. StartRadiusOfCurvature and EndRadiusOfCurvature are always the same. For LINE type, both StartRadiusOfCurvature and EndRadiusOfCurvature is 0. If the radius is 0 it shall be interpreted as INFINITE. Positive values imply a CCW direction whereas negative CW.
6EndRadiusOfCurvature IfcLengthMeasure For a NONLINEAR horizontal segment type the radius of the curve at the end point. If the radius is 0 it shall be interpreted as INFINITE. Positive values imply a CCW direction whereas negative CW.
7SegmentLength IfcNonNegativeLengthMeasure The length along the curve.
8GravityCenterLineHeightOPTIONAL IfcPositiveLengthMeasure Optional attribute require for the exchange of Vienna bend transition segment.
9PredefinedType IfcAlignmentHorizontalSegmentTypeEnumPredefined type of the horizontal alignmnent segment.

### 8.7.3.3.3 Formal representations

```ENTITY IfcAlignmentHorizontalSegment
SUBTYPE OF (IfcAlignmentParameterSegment);
StartPoint : IfcCartesianPoint;
StartDirection : IfcPlaneAngleMeasure;