【问题标题】:Model transformation with conversionMethod modern generates svf with different unit of measure compared to legacy method与传统方法相比,使用conversionMethod 现代的模型转换生成具有不同测量单位的svf
【发布时间】:2021-11-22 22:17:18
【问题描述】:

我有一个带有这种测量单位的 IFC Solidworks 3D 模型:

#16 = IFCSIUNIT ( *,.LENGTHUNIT.,.MILLI., .METER. ) ;
#17 = IFCSIUNIT ( *,.AREAUNIT.,$, .SQUARE_METER. ) ;
#18 = IFCSIUNIT ( *,.VOLUMEUNIT.,$, .CUBIC_METER. ) ;

使用传统方法,生成的 SVF 是正确的(第一幅图像),显示了毫米单位。 使用现代方法(第二张图片),度量单位的类型被强制为英尺,如您在属性面板中看到的那样。

所示尺寸的实际值为 510 毫米。 现代转换是否会引起一些问题?

【问题讨论】:

    标签: autodesk-forge autodesk-model-derivative


    【解决方案1】:

    modern IFC 转换方法使用基于 Revit 的 IFC 处理器,因此内部长度单位将按预期为英尺。要使对象属性以米为单位显示,您可以从查看器设置面板中更改它。

    如果你想通过代码来改变它,这里是代码sn -p:

    // Display units
    viewer.prefs.set(Autodesk.Viewing.Private.Prefs.DISPLAY_UNITS, 'mm');
    
    // Display Units Precision
    viewer.prefs.set(Autodesk.Viewing.Private.Prefs.DISPLAY_UNITS_PRECISION, 4);
    
    //Get human-readable unit names
    Autodesk.Viewing.Private.displayUnits
    
    //Get values for changing display units
    Autodesk.Viewing.Private.displayUnitsEnum
    
    //Get human-readable Display Units Precisions
    Autodesk.Viewing.Private.displayUnitsPrecision
    
    //Get values for changing Display Units Precisions
    Autodesk.Viewing.Private.displayUnitsPrecisionEnum
    

    您也可以考虑使用个人资料设置:https://forge.autodesk.com/en/docs/viewer/v7/developers_guide/advanced_options/profiles/

    const customIfcProfileSettings = {
        settings: {
           displayUnits: 'mm',
           displayUnitsPrecision: 4
        }
    };
    const customIfcProfile = new Autodesk.Viewing.Profile(customIfcProfileSettings);
    // Updates viewer settings encapsulated witihn a Profile.
    // This method will also load and unload extensions referenced by the Profile.
    viewer.setProfile(customIfcProfile);​
    

    【讨论】:

    • 我不明白为什么基于 Revit 的引擎会强制显示单位以英尺为单位,而忽略 IFC 的状态,并且不转换 IFC 显示单位的所有值(IFC 中定义的毫米)在第 16 行)到英尺。如果我手动或通过代码更改显示单位,当我使用测量扩展时,我会以错误的方式转换值:值 510mm 转换为 155448mm,因为测量扩展将初始值除以 0.0032808,这是之间的转换因子英尺和毫米。这不是我对 IFC 的转换所期望的。
    • Revit's internal length unit is feet。使用基于 Revit 的引擎时,它将按照当前设计强制所有单位为英尺。希望这很清楚。
    • 关于查看器中的错误单位转换,您能否考虑向 Forge Help forge (dot) help (at) autodesk (dot) com 提供一个非机密的可重现案例来展示该问题?非机密的可重现案例可能包含模型文件、重现步骤和最小可运行查看器代码 sn-p。
    猜你喜欢
    • 2021-03-25
    • 2013-07-03
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2022-09-28
    • 2017-11-02
    相关资源
    最近更新 更多