繁体   English   中英

在 Autodesk Forge 上合并 model

[英]combine model on Autodesk Forge

我有几个关于在 forge 查看器上组合 model 的问题(将列表 urn 加载到 1 个查看器):

  1. 当我合并 model 时。我只能从该合并中的 1 个主要 model 获取数据。 例如, var instanceTree = GlobalViewer.model.getData().instanceTree; var allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex); var list = allDbIdsStr.map(function (id) { return parseInt(id) }); 列表将返回主要 model 的所有 dbid,当我合并时如何访问所有 model 的所有数据?
  2. 结合 model 中 object 的唯一 ID 是什么。我用 dbid 做了一些 function,我意识到它也可以出现在其他 model 中。
  3. 当我将 3d 模型 (revit) 与 2d 模型 (autocad) 结合时。 它有 2 种情况:如果 3d model 首先加载我可以正常旋转,如果 2d model 首先加载我不能再旋转 model。 我怎么能强制它总是可以旋转?
  4. Autocad 单位在查看器中似乎与 model 不同。 与 model 相比,它总是缩小。我该如何解决?

感谢任何评论,

关于 #1: viewer.model显然只引用了其中一个模型(我相信这是您加载的最后一个模型),但您也可以使用viewer.getVisibleModels()viewer.getHiddenModels()来获取其他加载的模型。

关于 #2: dbIDs仅在单个 model 中是唯一的; 许多查看器方法接受一个附加参数,指定要在其上操作的 model,例如,您可以说viewer.select([123, 456], oneOfMyModels)

关于#3:这是个好问题; 加载 2D model 首先将查看器置于 2D 查看模式(仅允许缩放和平移); 如果您知道您将使用 3D 模型,我建议始终先加载这些模型

关于#4:是的,每个加载的 model 可以有不同的单位; 使用loadDocumentNode方法加载 model 时,您可以指定其他选项(例如,加载几何图形的放置变换),其中之一是 object ,称为applyScaling ,例如,如下所示:

viewer.loadDocumentNode(doc, viewable, {
    applyScaling: { to: 'mm' }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM