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

如何按Viewer配置的显示单位获取模型对象属性?

Forge Viewer 属性单位自动转换方案

核心实现思路

Viewer内置了单位转换机制,可结合模型原生单位与用户配置的显示单位,自动转换属性数值,步骤如下:

  • 获取选中对象的原生属性
    通过viewer.getProperties(dbId, (props) => { ... })获取选中对象的所有属性,其中带单位的数值属性(如长度、面积)会包含原始数值与单位信息。

  • 获取单位配置信息

    • 模型原生单位:调用viewer.model.getUnitInfo()获取模型存储时的单位(如英制英寸、英尺)。
    • Viewer显示单位:通过viewer.displayUnits获取当前用户设置的显示单位(如Autodesk.Viewing.Private.DisplayUnits.MILLIMETERS)。
  • 执行单位转换
    利用Viewer内置的Autodesk.UnitConversion工具完成转换,示例代码:

    // 假设原生值为1英寸,转换为毫米
    const fromUnit = Autodesk.Unit.INCH;
    const toUnit = Autodesk.Unit.MILLIMETER;
    const convertedValue = Autodesk.UnitConversion.convert(1, fromUnit, toUnit);
    // 输出结果:25.4
    

关于autodesk.unit.unit枚举

你提到的autodesk.unit.unit对应Viewer内置的Autodesk.Unit枚举,常用单位包括:

  • Autodesk.Unit.INCH(英寸)
  • Autodesk.Unit.FOOT(英尺)
  • Autodesk.Unit.MILLIMETER(毫米)
  • Autodesk.Unit.METER(米)
    这些枚举值可直接传入转换函数使用。

注意事项

  • 仅对数值型且带单位的属性执行转换,文本类属性直接显示即可。
  • 若模型未明确标注单位,以viewer.model.getUnitInfo()返回的默认单位作为转换基准。

内容的提问来源于stack exchange,提问作者Gabriele Cossu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:45:25