IFC 4.3.0.1 (IFC4X3) development

# 8.8.3.42 IfcSweptDiskSolid

## 8.8.3.42.1 Semantic definition

An IfcSweptDiskSolid represents the 3D shape by a sweeping representation scheme allowing a two dimensional circularly bounded plane to sweep along a three dimensional Directrix through space.

The StartParam and EndParam parameter are optional, if not provided they default to the start and end of the Directrix. Only if the Directrix is given by a bounded or by a closed curve, it is permissible to omit the values of StartParam and EndParam.

If the transitions between consecutive segments of the Directrix are not tangent continuous, the resulting solid is created by a miter at half angle between the two segments. Informal proposition restricts the permissible angle between two non-tangent continuous segments.

Figure 8.8.3.42.A illustrates an example.

• Directrix given as IfcIndexedPolyCurve, having linear and circular arc segments, that are tangent continuous between each segments
• Directrix being a bounded and open curve
• No StartParam and EndParam are provided, start and end default to start and end of the bounded curve of the Directrix

Informal Propositions:

1. If the Directrix curve definition is not tangent continuous, the transition between the segments has to be within an acceptable limit of tangent discontinuity. Very sharp edges may result in nearly impossible miter. Implementer agreements may define acceptable limits for tangent discontinuity.
2. The segments of the Directrix shall be long enough to apply the Radius. In case of an arc segment forming part of the Directrix, its radius shall be greater then the disk Radius
3. The Directrix shall not be based on an intersecting curve.

## 8.8.3.42.5 Formal representation

ENTITY IfcSweptDiskSolid
SUPERTYPE OF (ONEOF
(IfcSweptDiskSolidPolygonal))
SUBTYPE OF (IfcSolidModel);
Directrix : IfcCurve;
StartParam : OPTIONAL IfcParameterValue;
EndParam : OPTIONAL IfcParameterValue;
WHERE
DirectrixBounded : (EXISTS(StartParam) AND EXISTS(EndParam)) OR
(SIZEOF(['IFC4X3_DEV_64d1fa4d.IFCCONIC', 'IFC4X3_DEV_64d1fa4d.IFCBOUNDEDCURVE'] * TYPEOF(Directrix)) = 1);
DirectrixDim : Directrix.Dim = 3;
END_ENTITY;