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

如何通过AutoDesk Forge API修改IFC模型默认单位,使属性库返回毫米值?

解决IFC属性库单位统一为毫米的方案
  • 核心思路:绕过直接修改IFC源数据的限制,在属性库读取值后自动做单位转换,同时提前获取模型的原始单位信息来判断是否需要转换。
  • 具体操作步骤:
    1. 获取模型原始单位:通过Viewer的API拿到加载后的模型实例,读取其units属性(如model.units),判断是否为英寸("in")。
    2. 封装属性读取逻辑:写一个包装函数替代直接调用属性库,自动处理单位转换:
      async function getPropInMm(model, dbId, propName) {
        const rawValue = await userfunction(model, dbId, propName); // 原属性库调用
        const originalUnit = model.units;
        if (originalUnit === 'in') {
          // 1英寸=25.4毫米,转换后保留两位精度
          return (parseFloat(rawValue) * 25.4).toFixed(2);
        }
        return rawValue;
      }
      
    3. 替换原有调用:所有需要获取属性值的场景,都用这个包装函数代替直接调用userfunction。
  • 进阶优化:如果不想逐个属性处理,可监听属性加载的全局事件,批量识别长度类属性并统一转换单位。

注意:若属性值带单位字符串(如"5 in"),需先解析提取纯数值后再做转换。

内容的提问来源于stack exchange,提问作者Desmond Robers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:40:57