如何使用 SFV2 在伪造查看器中仅加载特定对象?
Posted
技术标签:
【中文标题】如何使用 SFV2 在伪造查看器中仅加载特定对象?【英文标题】:How can I load only specifc objects in the forge viewer using SFV2? 【发布时间】:2021-03-27 23:11:59 【问题描述】:SVF2 的objectid
s/dbid
s 与 SVF1 不同。在这个SO-Answer 中,建议使用externalId
而不是objectid
。但是,viewer.loadModel(svfUrl,ids:[dbIds...])
使用 dbId
s 仅加载指定的对象。如何使用 SVF2 和 https://developer.api.autodesk.com/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
端点仅加载指定的对象?我可以在任何地方访问svf2 objectIds
吗?或者我可以在调用Viewer3d::loadModel
时使用externalIds
吗?
【问题讨论】:
【参考方案1】:你是对的,“SVF1 dbIDs”和“SVF2 dbIDs”之间是有区别的——SVF2格式的ID是“持久的”,这意味着在同一设计文件的不同版本中,单个ID将引用相同的设计元素(在 SVF1 中并非如此)。
不幸的是,平台的某些部分(如loadModel
查看器方法和/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
端点)尚未“赶上” SVF2。在这些更新可用之前,您必须手动映射“在新旧 dbID 之间”,这本身就是另一个重要的任务。
【讨论】:
SVF2 是否使用 IfcGuid 而不是 externaIds?我尝试按照您的 SO 答案 here 的建议使用viewer.model.getExternalIdMapping(onSuccessCallback, onErrorCallback)
。但是,映射的主要键是 IfcGuids 而不是 /modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
端点返回的 externalIds。 SVF2 是否也破坏了此功能?
是的,在 SVF2 中,IfcGUID
属性不再包含在属性中,因为它在 external_id
中使用。
那么有效地没有办法将 SVF1 属性映射到 SVF2 属性,或者是否存在? viewer.model.getExternalIdMapping
或 /modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
何时可以与 SVF2 一起使用?
支持 SVF1 ID 和 SVF2 ID 之间的清晰映射是一项正在进行的工作,但您也许可以开始尝试一些已在最新版本的 Forge Viewer 中添加的逻辑,例如例如,Model
类现在应该提供一个名为 remapDbId
的方法,该方法应该能够将“旧”dbID 映射到“新”dbID。
这将是我需要的功能。但是,根据源代码它只设置为2D模式而不是3D模式://F2D/PDF only -- mapping of F2D/PDF dbids to OTG property database v2 dbids
------------ this.setDbIdRemap = function (dbidOldToNew) if (this.is2d()) this.idRemap = dbidOldToNew; ;
以上是关于如何使用 SFV2 在伪造查看器中仅加载特定对象?的主要内容,如果未能解决你的问题,请参考以下文章