IfcCompositeCurve
Change log
Item | SPF | XML | Change | Description |
---|---|---|---|---|
IFC4 Addendum 1 | ||||
IfcCompositeCurve | ||||
SelfIntersect | MODIFIED | Type changed from LOGICAL to IfcLogical. |
IfcCompositeCurve是由曲线段组成的连续曲线。
下图显示了一个复合曲线的示例。
考虑一条具有线段和圆弧段的IfcCompositeCurve。该行应参数化:
如果cPolyline with start=0.,0。结束=0.,1.,SameSense=TRUE,参数长度=1。
拱门应参数化:
ifcTrimedCurve,起始值=180',结束时间=90',SameSense=FALSE,参数长度=90。
则复合曲线的参数化为:
IfcCompositeCurve与0。≤T≤1。(线段)和1。≤T≤91。(圆弧段),参数长度=91。
注:根据ISO 10303-42的定义:
复合曲线是端到端连接的曲线的集合。曲线的各个分段本身定义为复合曲线段。复合曲线的参数化是参考有界曲线参数范围的累积。第一段参数化从0到l1,对于i≤2,第i段参数化自:
式中,lk是第k段下曲线的参数长度(即最大和最小参数值之间的差值)。设T表示复合曲线的参数。那么,如果第i段不是重新参数化的复合曲线段,则T与参数ti相关;ti0≤ti≤ti1;对于第i段,通过以下公式:
if Segments[i].SameSense = TRUE;
or by the equation:
if Segments[i].SameSense = FALSE;
If the segments[i] is of type reparameterised composite curve segment,
where τ is defined at reparameterized composite curve segment (see IfcReparameterizedCompositeCurveSegment).
注:实体改编自ISO 10303-42中定义的复合曲线。
IFC1.0中的历史新实体
非正式提议:
每个线段的SameSense属性正确地指定了组件曲线的意义。当在SameSense指示的方向上横穿时,各节段应端对端连接。
Formal Propositions
Rule | Description |
---|---|
CurveContinuous | 除开放曲线的最后一个代码外,过渡代码不应是不连续的。 |
SameDim | 确保曲线中使用的所有线段具有相同的维数。 |
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
IfcRepresentationItem | |||||
LayerAssignment | IfcPresentationLayerAssignment @AssignedItems |
S[0:1] | Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items. | X | |
StyledByItem | IfcStyledItem @Item |
S[0:1] | Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. | X | |
IfcGeometricRepresentationItem | |||||
IfcCurve | |||||
Dim :=IfcCurveDim(SELF) |
IfcDimensionCount | [1:1] | The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve. | X | |
IfcBoundedCurve | |||||
IfcCompositeCurve | |||||
1 | Segments | IfcCompositeCurveSegment | L[1:?] | The component bounded curves, their transitions and senses. The transition attribute for the last segment defines the transition between the end of the last segment and the start of the first; this transition attribute may take the value discontinuous, which indicates an open curve. | X |
2 | SelfIntersect | IfcLogical | [1:1] | Indication of whether the curve intersects itself or not; this is for information only. | X |
NSegments :=SIZEOF(Segments) |
IfcInteger | [1:1] | The number of component curves. | X | |
ClosedCurve :=Segments[NSegments].Transition <> Discontinuous |
IfcLogical | [1:1] | Indication whether the curve is closed or not; this is derived from the transition code of the last segment. | X |
EXPRESS Specification
ENTITY IfcCompositeCurve SUPERTYPE OF(IfcCompositeCurveOnSurface) SUBTYPE OF (IfcBoundedCurve); Segments : LIST [1:?] OF IfcCompositeCurveSegment; SelfIntersect : IfcLogical; DERIVE NSegments : IfcInteger := SIZEOF(Segments); ClosedCurve : IfcLogical := Segments[NSegments].Transition <> Discontinuous; WHERE CurveContinuous : ((NOT ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 1)) OR ((ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 0)); SameDim : SIZEOF( QUERY( Temp <* Segments | Temp.Dim <> Segments[1].Dim)) = 0; END_ENTITY;
QQ 3087438119