8.18.3.17 IfcShapeRepresentation(形状表示)
8.18.3.17.1 语义定义
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 实体继承
8.18.3.17.3 特性
| # | 特性 | 类型 | 描述 |
|---|---|---|---|
| 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 形式化命题
| 名称 | 描述 |
|---|---|
| CorrectContext |
分配 IfcShapeRepresentation 的上下文应为 IfcGeometricRepresentationContext 类型。 |
|
|
| CorrectItemsForType |
根据 RepresentationType 检查 Items 的正确使用。 |
|
|
| HasRepresentationIdentifier |
应为形状表示提供表示标识符。 |
|
|
| HasRepresentationType |
应为形状表示提供表示类型。 |
|
|
| NoTopologicalItem |
除 IfcVertexPoint、IfcEdgeCurve、IfcFaceSurface 外,任何拓扑表示项不应直接用于形状表示。 |
|
|
8.18.3.17.5 形式化表示
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;