8.18.3.17 IfcShapeRepresentation(形状表示)
8.18.3.17.1 语义定义(Semantic definition)
IfcShapeRepresentation 表示在特定几何表示上下文中,产品或其组件的特定几何表示概念。继承属性 RepresentationType 用于定义形状表示所使用的几何模型(例如“SweptSolid”或“Brep”),继承属性 RepresentationIdentifier 用于表示 IfcShapeRepresentation 所捕获的表示类型(例如“Axis”、“Body”等)。
形状表示的多个表示标识符已作为 RepresentationIdentifier 的预定义值包含在内。表1显示了 RepresentationIdentifier 的已定义值列表。
| 标识符 | 描述 |
|---|---|
| CoG | 用于标识构件重心的点。该值可用于验证目的。 |
| Box | 作为构件简化三维边界框的包围盒 |
| Annotation | 二维或三维注释 |
| Axis | 构件的二维或三维轴线,或单线表示 |
| FootPrint | 构件的二维足迹,或双线表示,投影到地面视图 |
| Profile | 平面的轮廓三维线表示,例如用于门窗轮廓 |
| Surface | 三维表面表示(构件平面的分析表面) |
| Reference | 不属于主体表示的三维表示。例如,如果要从隐式布尔操作中排除开口几何体,则使用此表示。 |
| Body | 构件的三维主体表示,例如线框、曲面或实体模型 |
| Body-FallBack | 构件的三维主体表示,例如细分曲面或其他曲面或边界表示,作为实体模型(可能涉及布尔操作)的补充添加 |
| Clearance | 构件的三维净空体积。此类净空区域表示不应与其他构件的“Body”表示相交的空间,但可以与其他构件的“Clearance”表示相交。 |
| Lighting | 在形状表示中将发射光表示为光源 |
形状表示的多个表示类型已作为 RepresentationType 的预定义值包含在内。表2显示了 RepresentationType 的已定义值列表。
| 类型 | 描述 |
|---|---|
| Point | 二维或三维点。点可以通过点列表表示 |
| PointCloud | 通过点列表表示的三维点。已弃用。请改用“Point”。 |
| Curve | 二维或三维曲线 |
| Curve2D | 二维曲线 |
| Curve3D | 三维曲线 |
| Surface | 二维或三维曲面 |
| Surface2D | 二维曲面(地面视图上的区域) |
| Surface3D | 三维曲面 |
| SectionedSurface | 通过沿准线扫描开放轮廓创建的扫描曲面 |
| FillArea | 表示为填充区域(填充图案)的二维区域 |
| Text | 定义为文本字面量的文本 |
| AdvancedSurface | 三维B样条曲面 |
| GeometricSet | 点、曲线、曲面(二维或三维) |
| GeometricCurveSet | 点、曲线(二维或三维) |
| Annotation2D | 点、曲线(二维或三维)、填充图案和文本(二维) |
| SurfaceModel | 基于面和基于壳的曲面模型,或细分曲面模型 |
| Tessellation | 仅细分曲面表示 |
| Segment | 不应与主曲线分开渲染的曲线部分几何体 |
| SolidModel | 包括扫描实体、布尔结果和Brep体;更具体的类型有: |
| SweptSolid | 扫描面积实体,通过拉伸和旋转创建,不包括锥形扫描 |
| AdvancedSweptSolid | 通过沿准线扫描轮廓创建的扫描面积实体,以及锥形扫描 |
| Brep | 带或不带空洞的分面Brep |
| AdvancedBrep | 基于高级面的Brep,具有B样条曲面几何,带或不带空洞 |
| CSG | 实体模型、半空间和布尔结果之间操作的布尔结果 |
| Clipping | 扫描面积实体、半空间和布尔结果之间的布尔差集 |
| BoundingBox | 通过边界框表示的简化三维表示 |
| SectionedSpine | 基于脊线和平面横截面的横截面表示。它可以表示曲面或实体,横截面之间的插值未定义 |
| LightSource | 光源,具有(取决于类型)位置、方向、光色、强度和衰减 |
| MappedRepresentation | 基于映射项的表示,引用表示映射。注意:可以将其视为插入的块引用。映射项的形状表示具有声明其表示项类型的表示类型。 |
8.18.3.17.2 实体继承(Entity inheritance)
8.18.3.17.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcRepresentation (7) | |||
| 1 | ContextOfItems | IfcRepresentationContext |
表示上下文的定义,不同子类型的表示在此上下文中有效。 |
| 2 | RepresentationIdentifier | OPTIONAL IfcLabel |
在项目内使用的表示的可选标识符。 |
| 3 | RepresentationType | OPTIONAL IfcLabel |
表示上下文类型的描述。表示类型定义了用于表示产品表示的几何或拓扑类型。更多信息在子类型 IfcShapeRepresentation 和 IfcTopologyRepresentation 中给出。 上下文类型支持的值应由实施者协议规定。 |
| 4 | Items | SET [1:?] OF IfcRepresentationItem |
为此表示定义的一组几何表示项。 |
| RepresentationMap | SET [0:1] OF IfcRepresentationMap FOR MappedRepresentation |
在 IfcRepresentationMap 中使用此表示。如果使用,此 IfcRepresentation 可以作为其 Items 之一,通过 IfcMappedItem 分配给多个表示。使用 IfcRepresentationMap 是多个产品共享一个表示(通常为 IfcShapeRepresentation 类型)的方式。 |
|
| LayerAssignments | SET [0:?] OF IfcPresentationLayerAssignment FOR AssignedItems |
将整个表示分配给单个或多个图层。LayerAssignments 可以被 Items 列表中的 IfcRepresentationItem 的 LayerAssigments 覆盖。 |
|
| OfProductRepresentation | SET [0:?] OF IfcProductRepresentation FOR Representations |
引用此单独表示所适用的产品表示。在大多数情况下,它引用一个或多个产品形状,此形状表示适用于这些产品形状。 |
|
| 点击显示 7 个隐藏的继承特性 点击隐藏 7 个继承特性 | |||
| IfcShapeModel (1) | |||
| OfShapeAspect | SET [0:1] OF IfcShapeAspect FOR ShapeRepresentations |
对形状特征的引用,该形状模型即为其形状表示。 |
|
8.18.3.17.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| CorrectContext |
分配 IfcShapeRepresentation 的上下文必须是 IfcGeometricRepresentationContext 类型。 |
|
|
| CorrectItemsForType |
根据 RepresentationType 检查 Items 的正确使用。 |
|
|
| HasRepresentationIdentifier |
应为形状表示提供表示标识符。 |
|
|
| HasRepresentationType |
应为形状表示提供表示类型。 |
|
|
| NoTopologicalItem |
除 IfcVertexPoint、IfcEdgeCurve、IfcFaceSurface 外,任何拓扑表示项不得直接用于形状表示。 |
|
|
8.18.3.17.5 形式化表示(Formal representation)
ENTITY IfcShapeRepresentation
SUBTYPE OF (IfcShapeModel);
WHERE
CorrectContext : 'IFC4X3_DEV_62887e3f.IFCGEOMETRICREPRESENTATIONCONTEXT'
IN TYPEOF(SELF\IfcRepresentation.ContextOfItems);
CorrectItemsForType : IfcShapeRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
HasRepresentationIdentifier : EXISTS(SELF\IfcRepresentation.RepresentationIdentifier);
HasRepresentationType : EXISTS(SELF\IfcRepresentation.RepresentationType);
NoTopologicalItem : SIZEOF(QUERY(temp <* Items |
('IFC4X3_DEV_62887e3f.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
AND (NOT(SIZEOF(
['IFC4X3_DEV_62887e3f.IFCVERTEXPOINT',
'IFC4X3_DEV_62887e3f.IFCEDGECURVE',
'IFC4X3_DEV_62887e3f.IFCFACESURFACE'] * TYPEOF(temp)) = 1))
)) = 0;
END_ENTITY;