8.15.3.3 IfcArbitraryProfileDefWithVoids(带空隙任意轮廓定义)
8.15.3.3.1 语义定义(Semantic definition)
IfcArbitraryProfileDefWithVoids 定义了一个带孔的任意闭合二维轮廓。它由外部边界和内部边界组成。IfcArbitraryProfileDefWithVoids 的常见用途是作为创建扫描曲面或扫描实体的横截面。
非正式命题
- 外部曲线和所有内部曲线应为闭合曲线。
- 外部曲线应包围所有内部曲线。
- 任何内部曲线不得与外部曲线或其他内部曲线相交。即,考虑到几何表示上下文的几何精度因子,轮廓定义中的任意两条曲线不得有共同点或共同段。换句话说,曲线既不能交叉也不能相互接触。
- 任何内部曲线不得包围另一条内部曲线。
图 8.15.3.3.A 展示了带空隙的任意闭合轮廓定义。在超类型 IfcArbitraryClosedProfileDef 中定义的 OuterCurve 和内部曲线在同一基础坐标系中定义。共同的基础坐标系由使用该轮廓定义的扫描面积实体定义。它是以下项的 xy 平面:
- IfcSweptAreaSolid.Position
或在分段脊线的情况下,是 IfcSectionedSpine.CrossSectionPositions 每个列表成员的 xy 平面。OuterCurve 属性定义了一条二维闭合有界曲线,InnerCurves 定义了一组二维闭合有界曲线。

8.15.3.3.2 实体继承(Entity inheritance)
8.15.3.3.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcProfileDef (4) | |||
| 1 | ProfileType | IfcProfileTypeEnum |
定义此轮廓定义应解析的几何类型,是曲线还是曲面区域。如果是曲线,轮廓应由扫描曲面引用;如果是区域,轮廓应由扫描实体引用。 |
| 2 | ProfileName | OPTIONAL IfcLabel |
轮廓的人类可读名称,例如根据标准轮廓表。如上所述,机器可读的标准轮廓名称应在 IfcExternalReference.ItemReference 中提供。 |
| HasExternalReference | SET [0:?] OF IfcExternalReferenceRelationship FOR RelatedResourceObjects |
与轮廓关联的外部信息(例如库、分类或文档信息)的引用。 |
|
| HasProperties | SET [0:?] OF IfcProfileProperties FOR ProfileDefinition |
轮廓的附加属性,例如机械属性。 |
|
| IfcArbitraryClosedProfileDef (1) | |||
| 3 | OuterCurve | IfcCurve |
有界曲线,定义任意轮廓的外部边界。 |
| 点击显示 5 个隐藏的继承特性 点击隐藏 5 个继承特性 | |||
| IfcArbitraryProfileDefWithVoids (1) | |||
| 4 | InnerCurves | SET [1:?] OF IfcCurve |
有界曲线集合,定义任意轮廓的内部边界。 |
8.15.3.3.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| WR1 |
轮廓的类型应为 AREA,因为它只能参与扫描面积的定义。 |
|
|
| WR2 |
所有内部曲线应具有二维性。 |
|
|
| WR3 | |
|
|
8.15.3.3.5 属性集
-
Pset_ProfileArbitraryDoubleT
- OverallWidth
- LeftFlangeWidth
- RightFlangeWidth
- OverallDepth
- FlangeDepth
- FlangeDraft
- FlangeChamfer
- FlangeBaseFillet
- FlangeTopFillet
- StemBaseWidth
- StemTopWidth
- StemBaseChamfer
- StemTopChamfer
- StemBaseFillet
- StemTopFillet
-
Pset_ProfileArbitraryHollowCore
- OverallWidth
- OverallDepth
- EdgeDraft
- DraftBaseOffset
- DraftSideOffset
- BaseChamfer
- KeyDepth
- KeyHeight
- KeyOffset
- BottomCover
- CoreSpacing
- CoreBaseHeight
- CoreMiddleHeight
- CoreTopHeight
- CoreBaseWidth
- CoreTopWidth
- CenterCoreSpacing
- CenterCoreBaseHeight
- CenterCoreMiddleHeight
- CenterCoreTopHeight
- CenterCoreBaseWidth
- CenterCoreTopWidth
- NumberOfCores
-
Pset_ProfileMechanical
- MassPerLength
- CrossSectionArea
- Perimeter
- MinimumPlateThickness
- MaximumPlateThickness
- CentreOfGravityInX
- CentreOfGravityInY
- ShearCentreZ
- ShearCentreY
- MomentOfInertiaY
- MomentOfInertiaZ
- MomentOfInertiaYZ
- TorsionalConstantX
- WarpingConstant
- ShearDeformationAreaZ
- ShearDeformationAreaY
- MaximumSectionModulusY
- MinimumSectionModulusY
- MaximumSectionModulusZ
- MinimumSectionModulusZ
- TorsionalSectionModulus
- ShearAreaZ
- ShearAreaY
- PlasticShapeFactorY
- PlasticShapeFactorZ
8.15.3.3.6 概念用法(Concept usage)
8.15.3.3.7 形式化表示(Formal representation)
ENTITY IfcArbitraryProfileDefWithVoids
SUBTYPE OF (IfcArbitraryClosedProfileDef);
InnerCurves : SET [1:?] OF IfcCurve;
WHERE
WR1 : SELF\IfcProfileDef.ProfileType = AREA;
WR2 : SIZEOF(QUERY(temp <* InnerCurves | temp.Dim <> 2)) = 0;
WR3 : SIZEOF(QUERY(temp <* InnerCurves | 'IFC4X3_DEV_62887e3f.IFCLINE' IN TYPEOF(temp))) = 0;
END_ENTITY;