Forge Viewer 加载具有共享坐标的多个 Revit 模型

Posted

技术标签:

【中文标题】Forge Viewer 加载具有共享坐标的多个 Revit 模型【英文标题】:Forge Viewer loading multiple Revit models with shared coordinates 【发布时间】:2019-11-24 20:03:33 【问题描述】:

加载通过共享坐标对齐的 Revit 模型时,模型不会在 Forge Viewer 中使用 globallOffset 设置对齐。

带有placementTransform 选项的loadModel 似乎是可行的,但共享坐标数据要等到通过viewer.model.getDocumentNode().getAecModelData().refPointTransformation 加载模型后才能使用

我最早的模型数据位于 onLoadModelSuccess 中,这为时已晚,无法输入加载选项,并且需要转换几何形状。

var modelOptions = 
  sharedPropertyDbPath: doc.getPropertyDbPath(),
  globalOffset: offset,
  placementTranform: ???,
  isAEC: true
;

viewer.loadModel(svfUrl, modelOptions, onLoadModelSuccess, onLoadModelError);

否则如何对齐模型?或者可能在不先渲染几何图形的情况下加载模型以获取数据,然后将变换矩阵输入另一个 loadModel 调用?

【问题讨论】:

【参考方案1】:

结合使用以下两个选项来应用 Revit 共享坐标:

globalOffset - 告诉 LMV 不要自动居中模型 applyRefPoint - 告诉 LMV 如何为 Revit 文件应用任何 svf 定位元数据

因此,请在您的加载选项中尝试以下操作:

var modelOptions = 
  sharedPropertyDbPath: doc.getPropertyDbPath(),
  globalOffset: offset,
  applyRefPoint: true,
  isAEC: true
;

查看此实时示例here 以获取有关placementTranform 选项的使用参考。

【讨论】:

以上是关于Forge Viewer 加载具有共享坐标的多个 Revit 模型的主要内容,如果未能解决你的问题,请参考以下文章

在 Forge Viewer 中使用 BIM360 模型坐标变换位置?

如何修复具有大共享坐标的模型上的抖动几何

如何获取 forge-viewer onClick 事件的 xyz 坐标?

在 Autodesk Forge Viewer 中对齐坐标系

Forge Viewer - 标记 - 我们可以获得当前选择的 xy 坐标吗?

Autodesk forge viewer api v7.* 对齐多个 2d dwg 模型