资讯专栏INFORMATION COLUMN

forge里根据elid找dbid 和根据dbid找elid

tunny / 743人阅读

  利用instanceTree倒推退出dbId


/**
 * elid转换dbid
 * @param elIds {Array}
 * @returns dbIds {Array}
 */


elIdToDbId(elIds){
    let itNodeAccess = this.viewer.model.getData().instanceTree.nodeAccess;
    let dbIds=[];
    elIds.forEach(elId=>{
        let elIdIndex = itNodeAccess.nameSuffixes.indexOf(elId);
        let dbId = this.findKeyByValue(elIdIndex,itNodeAccess.dbIdToIndex);
        dbIds.push(dbId)
    })

    return dbIds;
}

/**
 *
 * @param value value 值
 * @param data  对象
 * @param compare
 * @returns {string} 对象的key
 */
findKeyByValue (value,data, compare = (a, b) => a === b) {
    return Object.keys(data).find(k => compare(data[k], value))
}



/**
 * dbid转换elid
 * @param dbIds  {Array}
 * @returns elIds {Array}
 */

 dbIdToElId(dbIds){
     const it = this.viewer.model.getData().instanceTree;
     let elIds=[];
     dbIds.forEach(dbId=>{
         let dbIdIndex = it.nodeAccess.dbIdToIndex[dbId];
         let elId = it.nodeAccess.nameSuffixes[dbIdIndex];
         elIds.push(elId)
     })
    return elIds;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106320.html

相关文章

  • 「翻译」在Forge Viewer上实作简易的模型版本比较

    摘要:现在让我们修改这个示例让他可以展示两个同项目但不同版号的模型及。示例执行结果如下这边是这个比较模型的括展代码英文原文 showImg(https://segmentfault.com/img/bVOmjp?w=1542&h=925); 熟悉 BIM360 Team 的朋友可能知道他有一个很牛的模型文档版本比较的功能,但如果模型是放在 Google 云盘或是百度云盘上有可能做到吗? Au...

    JowayYoung 评论0 收藏0
  • 自订义 Forge Viewer ModelStructurePanel 的交互行为

    摘要:在官方释出版的同时发布了新版本的,这个面版已被整个重新改写,这次更新也加入一些新的交互行为,下面我们将会稍作解释。 这礼拜的小技巧是关于如何以不加入太多的 JavaScript 的方式自订义 ModelStructurePanel 的交互行为,这个小技巧受到这篇问与答的启发:Prevent zoom in Forge viewer when clicking in Model Brow...

    xialong 评论0 收藏0
  • Forge Viewer上显示自订义属性

    摘要:最近有的小伙伴们都在询问要怎么在里显示自订义属性,要做到这个是挺容易的。在来我们透过继承来创建自个的属性面板使用的语法,部份代码来自的无法从服务器获取属性透过撰写括展让自定义属性窗取代自带的以上希望对各为小伙伴有帮助参考 最近有 Autodesk Forge 的小伙伴们都在询问要怎么在 Viewer 里显示自订义属性,要做到这个是挺容易的。目前有两种方式可以做到这个效果,一种是直接添加...

    seasonley 评论0 收藏0
  • 自定义 Forge Viewer 右键菜单(Context Menu)

    摘要:前阵子有些圈的朋友们都在询问同一个问题要怎么在的自带右键菜单上添加自定义项目或是只显示自订义项目以下将针对在自带右键菜单上添加自定义项目和只显示自订义项目的右键菜单进行说明。 前阵子有些 Autodesk Forge 圈的朋友们都在询问同一个问题『要怎么在 Viewer 的自带右键菜单上添加自定义项目或是只显示自订义项目』~ 以下将针对『在自带右键菜单上添加自定义项目』和『只显示自订义...

    Harriet666 评论0 收藏0
  • Forge Viewer 加入自订义线

    摘要:可能有许多原因你想在里加入自订义的线型,例如显示线框几何视觉化包围箱或者其他你想带给使用者的视觉回馈。下面是我传写的一个例子,他可以在选重构件后在场景里用自定义线型描绘它的包围箱,在线示例可以参考这里 showImg(https://segmentfault.com/img/bVVaUx?w=1794&h=930); 这篇文章的原著是 Autodesk AND 的 Philippe L...

    zilu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<