You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于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转换:
    1. 将System.Guid转换为字节数组
    2. 对字节数组进行Base64编码
    3. 替换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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:25:05