IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.21.2.2 IfcGloballyUniqueId(全局唯一标识符)

8.21.2.2.1 语义定义(Semantic definition)

IfcGloballyUniqueId 用于存储编码后的字符串标识符,该标识符用于唯一标识IFC对象。IfcGlallyUniqueId 是一个全局唯一标识符(GUID),它是自动生成的128位数字。由于所有IFC对象实例都需要此标识符,因此需要对其进行压缩以减少开销。base64字符集的编码如下所示:

      1     2     3     4     5     6
 0123456789012345678901234567890123456789012345678901234567890123
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$";

生成的字符串是一个固定22字符长度的字符串,将在IFC交换文件结构中传输。

该base64编码过程可能与常见的base64实现有所不同。具体步骤如下:

  1. 第一个字节编码在前两个字符中
  2. 剩余字节以3个为一组进行编码,占用4个字符

因此,第一个字符必须是0、1、2或3。

8.21.2.2.2 形式化表示(Formal representation)

TYPE IfcGloballyUniqueId = STRING(22) FIXED;
END_TYPE;

8.21.2.2.3 参考文献