IFC 4.3.0.1 (IFC4X3) development

# 8.7.3.4 IfcAlignmentVerticalSegment

## 8.7.3.4.1 Semantic definition

Individual segment along the IfcAlignmentVertical, being defined in the distance-along/z coordinate space.

The vertical alignment is defined by segments that connects end-to-start. The vertical alignment curve geometry is defined in a plane with x = distance along horizontal, the y = height (or elevation). The transition at the segment connection is not enforced to be tangential, The IfcSegment Transition enumeration specifies the type of transition explicitly.

The following vertical segment types are defined:

For each vertical segment, the following non-redundant information is provided:

• the start point (in distance along/ height coordinates)
• the start gradient (as a ratio measure with horizontal being 0, uphill positive, and downhill negative) usually between 1 < n < -1 (equal to a percentage of 100% < n < -100%, or to a degree of 45° < n < -45° but higher values are possible)
• the length (as horizontal length along the distance along (not the curve segment length))
• the curve parameter needed for circular and parabolic arc segments

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

• the end distance along (from the distance along and segment length)
• the end height (from start distance along, gradient, length and curve parameter)
• the end direction (from start direction, segment length and curve parameter)
• the point of vertical intersection (from start direction and end direction)

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

• continuity – does the calculated end distance along of the previous segment matches with the provided start distance along of this segment
• tangential continuity – does the calculated end gradient of the previous segment matches with the provided start gradient of this segment

## 8.7.3.4.5 Formal representation

ENTITY IfcAlignmentVerticalSegment
SUBTYPE OF (IfcAlignmentParameterSegment);
StartDistAlong : IfcLengthMeasure;
HorizontalLength : IfcNonNegativeLengthMeasure;
StartHeight : IfcLengthMeasure;
END_ENTITY;