外部网页传入指定ID能否在Forge Viewer中实现元素高亮功能
功能实现相关问题解答
是否需要使用GLOBALID
优先推荐使用IFC原生的GLOBALID做外部元素和Viewer构件的映射,它是IFC标准定义的全局唯一标识符,不需要额外生成自定义唯一字段,匹配稳定性最高。
你也可以选择其他能唯一标识构件的字段(如自定义构件编号)实现映射,并不是必须强制使用GLOBALID,但GLOBALID是通用成本最低的方案。
Forge Viewer v7版本支持说明
该版本完全支持你需要的外部联动高亮功能,核心实现逻辑依赖的API均已提供,可按以下步骤实现:
- 监听Viewer的
Autodesk.Viewing.GEOMETRY_LOADED_EVENT事件,确保模型加载完成后再执行后续操作 - 调用
viewer.model.getBulkProperties()方法批量获取所有构件的IfcGuid属性(Forge平台会将IFC文件的GLOBALID存储在构件的IfcGuid属性字段中),构建「GLOBALID-构件dbId」的映射表 - 给外部网页的元素列表绑定点击事件,点击时获取对应元素的GLOBALID,从映射表中查到对应的构件dbId
- 调用
viewer.select(dbId)即可实现对应构件的高亮,也可搭配viewer.setSelectionColor()自定义高亮颜色、viewer.fitToView(dbId)自动视角定位到对应构件
内容的提问来源于stack exchange,提问作者DONG HYUK LEE
相关产品推荐
相关产品推荐

