IfcCompositeCurve

Change log

 

ItemSPFXMLChangeDescription
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:

formula if Segments[i].SameSense = FALSE;

If the segments[i] is of type reparameterised composite curve segment,

formula where τ is defined at reparameterized composite curve segment (see IfcReparameterizedCompositeCurveSegment).

注:实体改编自ISO 10303-42中定义的复合曲线。

IFC1.0中的历史新实体

非正式提议:

每个线段的SameSense属性正确地指定了组件曲线的意义。当在SameSense指示的方向上横穿时,各节段应端对端连接。

 

Formal Propositions

RuleDescription
CurveContinuous 除开放曲线的最后一个代码外,过渡代码不应是不连续的。
SameDim 确保曲线中使用的所有线段具有相同的维数。
 

 

 

 

 

 

 

 

#AttributeTypeCardinalityDescriptionC
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;

 

posted @ 2020-07-02 06:32  西北逍遥  阅读(273)  评论(0编辑  收藏  举报