关于IFC64 GUID的技术咨询:C#中该类型定义于哪个库?
IFC64 GUID 在C#中的处理说明
首先明确:IFC64 GUID 并不是.NET标准库自带的原生类型,它是建筑行业的Industry Foundation Classes (IFC)标准定义的一种GUID压缩编码格式——本质是基于128位标准GUID的定制化编码,最终输出22个字符的紧凑字符串(你提到的132位是对编码后字符长度的误解)。
在C#中处理IFC64 GUID有两种可行方式:
- 自行实现编码/解码逻辑
IFC64的核心是对System.Guid的16字节数据做定制化Base64转换:- 将
System.Guid转换为字节数组 - 对字节数组进行Base64编码
- 替换Base64中的
+为-、/为_,并去掉末尾的填充字符=,最终得到22位的IFC64格式字符串
示例代码片段:
public static string GuidToIfc64(Guid guid) { byte[] guidBytes = guid.ToByteArray(); string base64 = Convert.ToBase64String(guidBytes); return base64.Replace('+', '-').Replace('/', '_').TrimEnd('='); } public static Guid Ifc64ToGuid(string ifc64) { string base64 = ifc64.Replace('-', '+').Replace('_', '/'); // 补回Base64要求的填充字符 switch (base64.Length % 4) { case 2: base64 += "=="; break; case 3: base64 += "="; break; } byte[] guidBytes = Convert.FromBase64String(base64); return new Guid(guidBytes); } - 将
- 使用第三方IFC专业库
如果需要完整兼容IFC标准的相关逻辑,可以使用开源的Xbim.Ifc库,其中的IfcGloballyUniqueId类已经封装好了IFC GUID的编码、解码及校验逻辑。
内容的提问来源于stack exchange,提问作者Dominique
相关产品推荐
相关产品推荐

