IfcGeometryResource(几何资源)

IfcGeometryResource(几何资源) 定义用于几何表示的资源。此资源的主要应用是表示元素的形状或几何形式。这里定义的几何表示项还用于描述模式IfcGeometricModelResource中的几何模型。

以下是几何资源的范围:

①直接通过坐标值和曲线曲面上的参数值定义点

②方向、向量和轴位置的定义

③一致和非一致变换算子的定义

④参数曲线的定义

⑤圆锥曲线的定义

⑥参数曲面上定义的曲线的定义

⑦偏移曲线的定义

⑧初等曲面的定义

⑨扫描曲面的定义

⑩参数化样条曲线曲面的定义

⑪使用转换运算符定义映射源表示的映射项

注:该模式的许多定义都改编自ISO 10303-42中定义的定义。IfcGeometryResource引用标准的第4条“几何”。当引用ISO 10303-42时,几何和拓扑表示的定义明确排除在本规范的版权范围之外。

根据标准:ISO 10303-42

安置协调系统

与空间几何整体的位置相关的矩形卡特琳娜坐标系统,用于描述属性的解释并与曲线和表面整体相关联的唯一参数。”

根据标准:ISO 10303-42

空间尺寸

所有几何形状应在一个右手持矩形卡特琳娜坐标系统中确定,每一轴上的单位相同。一个共同的方案已经被用于两个尺寸和三个尺寸几何的定义。2.Points and directions exists in both a two-dimensional and a three-dimensional form,these forms are solely distincted by the presence,or disposition,of a third coordinate value.复合几何实体是用点和方向确定的,它们的空间尺寸可以被解调。

根据标准:ISO 10303-42

分析曲线和表面参数化

这里的表面特异曲线都有一个明确的参数化。In some instances the definitions are in parametric terms.在其他方面,圆锥曲线和基础表面的定义在几何术语中。在此处,以一种安置协调系统为例,用于确定参数化。几何定义含有一些,但并非所有,因为数据要求为这一目的。在与个体曲线和表面实体相关联的轴向2安置中,含有确定这种安置协调系统的相关数据。

根据标准:ISO 10303-42

曲线

The curve entities include lines,some elementary conics,and some referentially or procedurally defined curves.所有曲线都有一个很好的参数化参数化,使得可以通过参数值来选择曲线上的曲线或标识点。对于圆锥曲线,使用了一种表示方法,该方法将其几何形状与空间的定位和位置分开。在每一种情况下,位置和方位信息都是通过一个轴向2来传递的。一种复合曲线整体,包括在曲线向曲线转变点上用于通信连续信息的设施,提供了更多复合曲线的构建。偏移曲线类型是一种曲线定义,参照其他几何学。二维和三维应用分离胶版曲线实体的存在。

根据标准:ISO 10303-42

表面

简单的表面是平面、旋转表面和线性挤压表面。如曲线,所有表面都有相关的标准参数。In many cases the surfaces,as defined,are unbounded;it is assumed that they will be bounded either explicitly or implicitly.解释界限是用边界表面实现的;隐含界限要求附加拓扑信息的组合来确定一个面积。

Types
1 IfcArcIndex
2 IfcDimensionCount
3 IfcLineIndex
4 IfcBSplineCurveForm
5 IfcBSplineSurfaceForm
6 IfcKnotType
7 IfcTransitionCode
8 IfcTrimmingPreference
9 IfcAxis2Placement
10 IfcCurveOnSurface
11 IfcSegmentIndexSelect
12 IfcTrimmingSelect
13 IfcVectorOrDirection

Entities
1 IfcAxis1Placement
2 IfcAxis2Placement2D
3 IfcAxis2Placement3D
4 IfcBoundaryCurve
5 IfcBoundedCurve
6 IfcBoundedSurface
7 IfcBSplineCurve
8 IfcBSplineCurveWithKnots
9 IfcBSplineSurface
10 IfcBSplineSurfaceWithKnots
11 IfcCartesianPoint
12 IfcCartesianTransformationOperator
13 IfcCartesianTransformationOperator2D
14 IfcCartesianTransformationOperator2DnonUniform
15 IfcCartesianTransformationOperator3D
16 IfcCartesianTransformationOperator3DnonUniform
17 IfcCircle
18 IfcCompositeCurve
19 IfcCompositeCurveOnSurface
20 IfcCompositeCurveSegment
21 IfcConic
22 IfcCurve
23 IfcCurveBoundedPlane
24 IfcCurveBoundedSurface
25 IfcCylindricalSurface
26 IfcDirection
27 IfcElementarySurface
28 IfcEllipse
29 IfcGeometricRepresentationItem
30 IfcIndexedPolyCurve
31 IfcLine
32 IfcMappedItem
33 IfcOffsetCurve2D
34 IfcOffsetCurve3D
35 IfcOuterBoundaryCurve
36 IfcPcurve
37 IfcPlacement
38 IfcPlane
39 IfcPoint
40 IfcPointOnCurve
41 IfcPointOnSurface
42 IfcPolyline
43 IfcRationalBSplineCurveWithKnots
44 IfcRationalBSplineSurfaceWithKnots
45 IfcRectangularTrimmedSurface
46 IfcReparametrisedCompositeCurveSegment
47 IfcRepresentationItem
48 IfcRepresentationMap
49 IfcSurface
50 IfcSurfaceOfLinearExtrusion
51 IfcSurfaceOfRevolution
52 IfcSweptSurface
53 IfcTrimmedCurve
54 IfcVector

Functions
1 IfcBaseAxis
2 IfcBuild2Axes
3 IfcBuildAxes
4 IfcConstraintsParamBSpline
5 IfcCrossProduct
6 IfcCurveDim
7 IfcCurveWeightsPositive
8 IfcDotProduct
9 IfcFirstProjAxis
10 IfcGetBasisSurface
11 IfcListToArray
12 IfcMakeArrayOfArray
13 IfcNormalise
14 IfcOrthogonalComplement
15 IfcSameAxis2Placement
16 IfcSameCartesianPoint
17 IfcSameDirection
18 IfcSameValue
19 IfcScalarTimesVector
20 IfcSecondProjAxis
21 IfcSurfaceWeightsPositive
22 IfcVectorDifference
23 IfcVectorSum
24 IfcConsecutiveSegments

类型:
1 IfcArcIndex (建筑编号)
2 IfcDimensionCount  (维度计数)
3 IfcLineIndex  (线路索引)
4 IfcBSplineCurveForm  (样条曲线形类型
5 IfcBSplineSurfaceForm  (样条曲面类型)
6 IfcKnotType  (结类型)
7 IfcTransitionCode  (转换码)
8 IfcTrimmingPreference  (修剪首选项)
9 IfcAxis2Placement  (坐标放置)
10 IfcCurveOnSurface  (曲面上的曲线)
11 IfcSegmentIndexSelect  (段索引选择类型)
12 IfcTrimmingSelect  (修建选择类型)
13 IfcVectorOrDirection (矢量或方向)

实体:
1 IfcAxis1Placement (轴位置)
2 IfcAxis2Placement2D (轴二维布置)

IFCAXIS2PaltEn2D提供位置和方向来将项目放置在二维空间中。属性重定向定义X轴,导出y轴。如果没有给出属性重定向,则放置默认为p [ 1 ](x轴)为[1,0 ]和p[2 ](y轴)为[0,1。]。

3 IfcAxis2Placement3D (轴三维布置)

IFCAXIS2PaltEn3d提供将物品放置在三维空间中的位置和方向。属性轴定义Z方向,重定向X方向。得到Y方向。

如果没有给出轴和反方向的属性值,则放置默认为p [ 1 ](x轴)为[1,0,0,],p [ 2 ](y轴)为[0,1,0,]和p[3 ](z轴)为[0,0,1。]。

Attribute definitions

#AttributeTypeCardinalityDescriptionC
2 Axis IfcDirection [0:1] The exact direction of the local Z Axis. X
3 RefDirection IfcDirection [0:1] The direction used to determine the direction of the local X Axis. If necessary an adjustment is made to maintain orthogonality to the Axis direction. If Axis and/or RefDirection is omitted, these directions are taken from the geometric coordinate system. X
  P
:=IfcBuildAxes(Axis, RefDirection)
IfcDirection L[3:3] The normalized directions of the placement X Axis (P[1]) and the placement Y Axis (P[2]) and the placement Z Axis (P[3]). X

Formal Propositions

RuleDescription
LocationIs3D The dimensionality of the placement location shall be 3.
AxisIs3D The Axis when given should only reference a three-dimensional IfcDirection.
RefDirIs3D The RefDirection when given should only reference a three-dimensional IfcDirection.
AxisToRefDirPosition The Axis and RefDirection shall not be parallel or anti-parallel.
AxisAndRefDirProvision Either both, Axis and RefDirection are not given and therefore defaulted, or both shall be given.
 


4 IfcBoundaryCurve (边界曲线)
5 IfcBoundedCurve (有界曲线)
6 IfcBoundedSurface (有界曲面)
7 IfcBSplineCurve (样条曲线)
8 IfcBSplineCurveWithKnots (带节点的样条曲线)
9 IfcBSplineSurface (样条曲面)
10 IfcBSplineSurfaceWithKnots (带节点的样条曲面)
11 IfcCartesianPoint (笛卡尔点)
12 IfcCartesianTransformationOperator (笛卡尔变换算子)
13 IfcCartesianTransformationOperator2D (二维笛卡尔变换算子)
14 IfcCartesianTransformationOperator2DnonUniform (不一致的二维笛卡尔变换算子)
15 IfcCartesianTransformationOperator3D (三维笛卡尔变换算子)
16 IfcCartesianTransformationOperator3DnonUniform (不一致的三维笛卡尔变换算子)
17 IfcCircle (圆)

单圆是由一组与中心距离相等的点组成的曲线。

注:圆弧段通过使用ifctrimedcurve定义,其中BasisCurve是IfcCircle。

注释定义符合ISO/CD 10303-42:1992

圆由半径、圆的位置和方向定义。数据解释如下:

C = SELFIfcConic.Position.Location
x = SELFIfcConic.Position.P[1]
y = SELFIfcConic.Position.P[2]
z = SELFIfcConic.Position.P[3]
R = Radius

这个圆被参数化为:

参数化范围为0≤u≤2π(0≤u≤360度)。

在上面定义的放置坐标系中,圆是方程式C=0,其中

圆在任何点上的正方向是切线方向,T,到该点的曲线,其中

18 IfcCompositeCurve (复合曲线)

IfcCompositeCurve是由曲线段组成的连续曲线。


19 IfcCompositeCurveOnSurface (面上的复合曲线)
20 IfcCompositeCurveSegment (复合曲线段)
21 IfcConic (圆锥曲线)
22 IfcCurve (曲线)
23 IfcCurveBoundedPlane (曲线有界平面)
24 IfcCurveBoundedSurface (曲线有界曲面)
25 IfcCylindricalSurface (圆柱面)
26 IfcDirection (方向)
27 IfcElementarySurface (元素表面)
28 IfcEllipse (椭圆)
29 IfcGeometricRepresentationItem (几何表象)
30 IfcIndexedPolyCurve (指数曲线)
31 IfcLine (线)
32 IfcMappedItem (映射项)
33 IfcOffsetCurve2D (二维偏移曲线)
34 IfcOffsetCurve3D (三维偏移曲线)
35 IfcOuterBoundaryCurve (外边界曲线)
36 IfcPcurve (曲线)
37 IfcPlacement (位置)
38 IfcPlane (平面)
39 IfcPoint (点)
40 IfcPointOnCurve (曲线上的点)
41 IfcPointOnSurface (曲面上的点)
42 IfcPolyline (折线)

IfcPolyline是一条有界曲线,只有由笛卡尔点列表定义的直线段。如果列表中的第一个和最后一个笛卡尔点相同,则多段线为闭合曲线,否则为开放曲线。

下图是有界IfcPolyline,并显示了每条线段和整个多段线的参数长度。

多段线是由n-1条直线段组成的有界曲线,由n个点、P1、P2。。。请注意。曲线的第i段参数化如下:

式中,i-1≤u≤i,参数范围为0<u≤n-1。

43 IfcRationalBSplineCurveWithKnots (有节点的样条曲线)
44 IfcRationalBSplineSurfaceWithKnots (有节点的样条曲面)
45 IfcRectangularTrimmedSurface (矩形贴面)
46 IfcReparametrisedCompositeCurveSegment (复合曲线段)
47 IfcRepresentationItem (表示项)
48 IfcRepresentationMap (表示图)
49 IfcSurface (面)
50 IfcSurfaceOfLinearExtrusion (线性挤压表面)
51 IfcSurfaceOfRevolution (旋转面)
52 IfcSweptSurface (扫描面)
53 IfcTrimmedCurve (裁剪曲线)
54 IfcVector (集合)

函数:
1 IfcBaseAxis (基本轴)
2 IfcBuild2Axes (构件二维轴坐标)

此函数返回两个正交方向。u[1]在ref_方向,u[2]垂直于u[1]。如果输入数据不完整,则为ref_方向提供默认值(1.0,0.0,0.0)。

FUNCTION IfcBuild2Axes
  (RefDirection : IfcDirection)
    : LIST [2:2] OF IfcDirection;
LOCAL
  D : IfcDirection := NVL(IfcNormalise(RefDirection),
      IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.0,0.0]));
END_LOCAL;
  RETURN([D, IfcOrthogonalComplement(D)]); 
END_FUNCTION;

3 IfcBuildAxes (构件轴坐标)
4 IfcConstraintsParamBSpline (约束参数样条曲线)
5 IfcCrossProduct (交叉积)
6 IfcCurveDim (曲线尺寸)
7 IfcCurveWeightsPositive (曲线权重)
8 IfcDotProduct (点积)
9 IfcFirstProjAxis (正向轴)
10 IfcGetBasisSurface (获取基面)

此函数将曲线的基曲面作为一组曲面返回。对于不是面上曲线的曲线,将返回空集。

FUNCTION IfcGetBasisSurface
(C : IfcCurveOnSurface) : SET[0:2] OF IfcSurface;

  LOCAL
    Surfs : SET[0:2] OF IfcSurface;
    N : INTEGER;
  END_LOCAL;

  Surfs := [];
  IF 'IFCGEOMETRYRESOURCE.IFCPCURVE' IN TYPEOF (C) THEN
    Surfs := [CIfcPCurve.BasisSurface];
  ELSE
    IF 'IFCGEOMETRYRESOURCE.IFCCOMPOSITECURVEONSURFACE' IN TYPEOF (C) THEN

    (* For an IfcCompositeCurveOnSurface the BasisSurface is the intersection
       of the BasisSurface of all the segments. *)

    N := SIZEOF(CIfcCompositeCurve.Segments);
    Surfs := IfcGetBasisSurface(CIfcCompositeCurve.Segments[1].ParentCurve);
    
      IF N > 1 THEN
        REPEAT i := 2 TO N;
          Surfs := Surfs * IfcGetBasisSurface(CIfcCompositeCurve.Segments[1].ParentCurve);
        END_REPEAT;
      END_IF;
    END_IF;
  END_IF;
  RETURN(Surfs); 
END_FUNCTION;

11 IfcListToArray (list转array)
12 IfcMakeArrayOfArray (创建数组)
13 IfcNormalise (正常化)
14 IfcOrthogonalComplement ()
15 IfcSameAxis2Placement ()
16 IfcSameCartesianPoint ()
17 IfcSameDirection ()
18 IfcSameValue ()
19 IfcScalarTimesVector ()
20 IfcSecondProjAxis ()
21 IfcSurfaceWeightsPositive (表面权重)
22 IfcVectorDifference (矢量差分)
23 IfcVectorSum (向量和)
24 IfcConsecutiveSegments (连续线段)

原文地址:https://www.cnblogs.com/herd/p/12166567.html