8.18.3.11 IfcProjectedCRS(投影坐标参考系统)
8.18.3.11.1 语义定义(Semantic definition)
IfcProjectedCRS 是一种坐标参考系统(CRS),用于关联建筑或设施工程项目中局部工程坐标系与地图投影的转换关系。该投影坐标参考系统被假定为二维或三维右手笛卡尔坐标系,可选的 MapUnit 属性可用于确定地图所使用的长度单位。
尽管其名称暗示:
-
若引用的 IfcGeometricRepresentationContext 为三维,则 IfcProjectedCRS 应为复合坐标参考系统,即由多个CRS组合而成,从中始终可明确识别出 GeodeticDatum(大地基准面)和 VerticalDatum(垂直基准面)。
-
若引用的 IfcGeometricRepresentationContext 为二维,则 IfcProjectedCRS 可以是投影坐标参考系统或复合坐标参考系统。
坐标参考系统的明确标识符存储于继承的 Name 属性中。完善定义的标识符包含地图投影、地图区域信息及所有必需的基准面。在此情况下,可省略 VerticalDatum、MapProjection、MapZone 属性以及继承的 GeodeticDatum 属性。
8.18.3.11.2 实体继承(Entity inheritance)
8.18.3.11.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcCoordinateReferenceSystem (5) | |||
| 1 | Name | OPTIONAL IfcLabel |
用于标识坐标参考系统的名称。 |
| 2 | Description | OPTIONAL IfcText |
此坐标参考系统的非正式描述。 |
| 3 | GeodeticDatum | OPTIONAL IfcIdentifier |
用于标识此基准面的名称。大地测量基准与坐标参考系统相关联,表示旋转椭球体的形状和大小,以及该椭球体与实际地球的连接和方向。如果 Name 标识符没有明确定义大地测量基准,则需要提供此属性。
|
| HasCoordinateOperation | SET [0:1] OF IfcCoordinateOperation FOR SourceCRS |
表示坐标参考系统之间的转换。特别是指此坐标参考系统与另一个坐标参考系统之间的 IfcCoordinateOperation。 |
|
| WellKnownText | SET [0:1] OF IfcWellKnownText FOR CoordinateReferenceSystem |
此坐标参考系统的已知文本(WKT)定义,以 IfcWellKnownText 实体形式反向关联。 |
|
| 点击显示 5 个隐藏的继承特性 点击隐藏 5 个继承特性 | |||
| IfcProjectedCRS (4) | |||
| 4 | VerticalDatum | OPTIONAL IfcIdentifier |
用于标识垂直基准面的名称。垂直基准面与坐标参考系统的高程轴相关联,用于定义高程系统原点的参考平面和基准点。当 Name 标识符未明确界定垂直基准面且坐标参考系统为三维参考系统时,需提供此属性。 |
| 5 | MapProjection | OPTIONAL IfcIdentifier |
用于标识地图投影的名称。 |
| 6 | MapZone | OPTIONAL IfcIdentifier |
用于标识与 MapProjection 相关的地图区域的名称。 |
| 7 | MapUnit | OPTIONAL IfcNamedUnit |
构成地图坐标系的坐标轴单位。 |
8.18.3.11.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| MapUnitIsLength |
无可用描述 |
|
|
8.18.3.11.5 形式化表示(Formal representation)
ENTITY IfcProjectedCRS
SUBTYPE OF (IfcCoordinateReferenceSystem);
VerticalDatum : OPTIONAL IfcIdentifier;
MapProjection : OPTIONAL IfcIdentifier;
MapZone : OPTIONAL IfcIdentifier;
MapUnit : OPTIONAL IfcNamedUnit;
WHERE
MapUnitIsLength : NOT(EXISTS(SELF.MapUnit)) OR (SELF.MapUnit.UnitType = IfcUnitEnum.LENGTHUNIT);
END_ENTITY;