多边形有界半空间是半空间实体的一种特殊子类型,其中布尔表达式中使用的半空间的材质由多边形边界进行边界。半空间的底面通过其相对于对象坐标系的法线定位(如在超类型IfcHalfSpaceSolid中定义的),其多边形(带或不带弧段)边界在由位置属性建立的位置坐标系的XY平面中定义,减法体将垂直于位置坐标系的XY平面拉伸,即,拉伸到由“位置”属性定义的正Z轴的方向。
边界由位置坐标系XY平面内的二维多段线(或由直线段和圆弧段组成的二维复合曲线)定义。半空间中曲面的边由曲面法线和一致标志确定。如果agreement标志为TRUE,则子集是法线指向的子集。如果agreement标志为FALSE,则该子集就是法线指向的子集。
注:多边形有界半空间不是IfcSolidModel的子类型,半空间实体仅用作布尔表达式中的操作数。
下图说明了多边形有界半空间。
●黑色坐标表示对象坐标系(通常由IfcLocalPlacement提供)。
●绿色坐标表示位置坐标系;多边形边界在该坐标系内给出。它由IfcPolyg提供有边界的半空间。位置. 此坐标系相对于对象坐标系。减法体的挤出方向为正Z轴。
●红色坐标表示平面的法线。由基面提供(IFC表面位置). 此法线也是相对于对象坐标系的。
在布尔差分表达式中,用多边形有界半空间来限制半空间的体积。只有由半空间实体和拉伸区域实体(通过拉伸多边形边界定义)之间的理论交点定义的零件用于布尔表达式。
多边形边界定义了二维多段线,它限制了布尔表达式中半空间的有效性。基面由一个平面定义,平面的法线与AgreementFlag一起定义了半空间材质的边。
IFC2x中增加的新实体。
非正式提议:
①提供多边形边界的ifc多边形或ifc复合曲线应关闭。
②如果多边形边界由IfcCompositeCurve给出,则它只能具有IfcPolyline类型的IfcCompositeCurveSegment,或ifcTimmedCurve(具有IfcLine或IfcCircle类型的基本曲线)
③超类型IfcHalfSpaceSolid中定义的基面应为IfcPlane类型
④作为基面的平面法线不得垂直于位置坐标系的z轴
Formal Propositions
Rule | Description |
---|---|
BoundaryDim | The bounding polyline should have the dimensionality of 2. |
BoundaryType | Only bounded curves of type IfcCompositeCurve, or IfcPolyline are valid boundaries. |
# | 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 | |||||
IfcHalfSpaceSolid | |||||
1 | BaseSurface | IfcSurface | [1:1] | Surface defining side of half space. | X |
2 | AgreementFlag | IfcBoolean | [1:1] | The agreement flag is TRUE if the normal to the BaseSurface points away from the material of the IfcHalfSpaceSolid. Otherwise it is FALSE. | X |
Dim :=3 |
IfcDimensionCount | [1:1] | The space dimensionality of this class, it is always 3 | X | |
IfcPolygonalBoundedHalfSpace | |||||
3 | Position | IfcAxis2Placement3D | [1:1] |
Definition of the position coordinate system for the bounding polyline and the base surface. |
X |
4 | PolygonalBoundary | IfcBoundedCurve | [1:1] | Two-dimensional polyline bounded curve, defined in the xy plane of the position coordinate system. | X |
EXPRESS Specification
ENTITY IfcPolygonalBoundedHalfSpace
SUBTYPE OF (IfcHalfSpaceSolid);
Position : IfcAxis2Placement3D;
PolygonalBoundary : IfcBoundedCurve;
WHERE
BoundaryDim : PolygonalBoundary.Dim = 2;
BoundaryType : SIZEOF(TYPEOF(PolygonalBoundary) * [ 'IFCGEOMETRYRESOURCE.IFCPOLYLINE', 'IFCGEOMETRYRESOURCE.IFCCOMPOSITECURVE'] ) = 1;
END_ENTITY;