【问题标题】:How to locale the level or floor of the object in autodesk forge viewer如何在 Autodesk Forge 查看器中设置对象的标高或楼层
【发布时间】:2021-03-15 05:56:57
【问题描述】:

我正在获取对象的 dbid 并使用 dbid 我认为我会从定义为 Layer 的属性中获取对象的级别,但不幸的是,我的对象中很少有没有定义图层,所以有没有其他方法可以解决我可以识别物体所在的楼层吗??

【问题讨论】:

    标签: autodesk-forge autodesk-viewer autodesk


    【解决方案1】:

    如果您的模型是由 Revit 2018 及更高版本生成的 RVT,您可以通过阅读AecModelData 获取关卡遮挡器(例如地板、天花板)的关卡数据和dbIds。加载 AecModelData 后,您可以利用 Autodesk.AEC.LevelsExtension 获取每个级别的 z 范围。

    const floorData viewer.getExtension('Autodesk.Aec.LevelsExtension').floorSelector.floorData;
    
    const currentLevel = floorData[0];
    const currentLevelZmin = currentLevel.zMin;
    const currentLevelZmax = currentLevel.zMax;
    

    然后,将您想要的对象的 z 值与关卡范围进行比较,以检查它是否在关卡内。

    const minZ = currentLevel.zMin;
    const maxZ = currentLevel.zMax;
    
    let nodeBox = new Float32Array(6);
    instanceTree.getNodeBox(dbId, nodeBox);
    
    const nodeBoxMinZ = nodeBox[2];
    const nodeBoxMaxZ = nodeBox[5];
    
    let insideLevel = false;
    
    if ((nodeBoxMinZ >= minZ && nodeBoxMinZ <= maxZ) ||
        (nodeBoxMaxZ >= minZ && nodeBoxMaxZ <= maxZ) ||
        (nodeBoxMinZ <= minZ && nodeBoxMaxZ >= maxZ)) {
    
        insideLevel = true;
    }
    
    if( insideLevel ) {
      // Do someting
    }
    

    顺便说一句,如果您使用ifcLevelsEnabled: true 加载Autodesk.AEC.LevelsExtension,那么此扩展也适用于 IFC 模型。它将即时为 IFC 模型重建楼层数据。

    viewer.loadExtension('Autodesk.AEC.LevelsExtension', {ifcLevelsEnabled: true});
    

    【讨论】:

    • 有了新的更新,我已经替换了 instanceTree.getNodeBox(dbId, nodeBox);到 viewer.model.getInstanceTree().getNodeBox(10130, nodeBox);获得界限,但它返回给我空值
    • 我这样做了 let nodeBox = new Float32Array(6); it.enumNodeChildren(it.getRootId(), function (dbId) { console.log("Node ID" + dbId); it.getNodeBox(dbId, nodeBox); }, true);
    • 您好,Eason Kang,如果模型不是 Revit 模型怎么办?我可以对建筑物进行关卡吗?
    • 嗨 Surya,请注意您的源模型格式是什么,但这里有两个博客可能对 forge.autodesk.com/blog/…forge.autodesk.com/blog/… 有所帮助
    猜你喜欢
    • 2018-03-16
    • 2021-11-12
    • 1970-01-01
    • 2023-03-06
    • 2021-03-03
    • 2021-09-19
    • 2020-08-06
    • 2019-06-10
    • 2021-02-24
    相关资源
    最近更新 更多