使用 Revit 链接模型的最佳方法是啥?
Posted
技术标签:
【中文标题】使用 Revit 链接模型的最佳方法是啥?【英文标题】:What is best way to use Revit linked model?使用 Revit 链接模型的最佳方法是什么? 【发布时间】:2019-01-29 13:16:44 【问题描述】:理想情况下,在查看器中时,目标是在查看器中加载/卸载链接模型。 这样,不同的工程层(结构/水/电/...)可以随意显示/隐藏。
为此,我尝试了几个选项,但没有一个是完全适合的(据我所知)。
我尝试从 zip 文件上传所有内容。 Upload linked Revit models for Forge Viewer https://forge.autodesk.com/cloud_and_mobile/2016/07/translate-referenced-files-by-derivative-api.html 这没关系,对于 [rst_advanced_sample_project.rvt+Technical_school-current_m.rvt] 或 Forge-Test-Harness-Node.js/Revit.zip 等模型。
这种方式给我留下了 2 个问题:
我无法加载/卸载链接 更新单个链接需要完整的 zip 上传我尝试手动创建引用 https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-references-POST/
正在进行中,目前,我看不到我的链接是否被考虑在内,但我希望与上述相同。聚合模型 https://forge.autodesk.com/blog/aggregate-multi-models-sequence-forge-viewer
元素是分开的,可能需要一些对齐,但都会显示出来。 缺点是元素信息,尤其是模型浏览器显示无关的东西。
无论解决方案如何,有没有办法在查看器中卸载模型/链接?
谢谢
【问题讨论】:
【参考方案1】:关于 Revit 模型中的模型聚合,您可能会采用错误的对齐设置。
通常,Forge 查看器默认将加载的模型放置在模型边界框中心的全局偏移处。所以,在第一个模型之后加载的所有模型都必须设置与第一个模型相同的 globalOffset,这是我回答 here 的全局偏移对齐代码 sn-p。
function _onGeometryLoaded( event )
if( urns.length <= 0 )
viewer.removeEventListener(
Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
_onGeometryLoaded
);
return;
viewer.loadModel( urns[0], globalOffset: event.model.getData().globalOffset );
urns.splice( 0, 1 );
viewer.addEventListener(
Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
_onGeometryLoaded
);
viewer.loadModel( urns[0] );
urns.splice( 0, 1 );
对于具有共享坐标的 Revit 模型,您可以通过这种方式加载模型,详情请参阅here。
var loadOptions =
applyRefPoint: true,
globalOffset: x:0, y:0, z:0
;
viewer.loadModel(
svfUrl,
loadOptions,
onLoadModelSuccess,
onLoadModelError
);
【讨论】:
感谢您的反馈。在深入了解之前这里是我发现的一些限制之后,你能告诉我它们是否是解决它们的方法:1-当从-a-zip/Post-references 加载 rvt 模型和链接时,在树中,我们只看到一个模型。是否可以将链接模型分开? 2-加载多个模型时,一切都很好,但是当卸载模型时,有时可以,有时,所有模型都从场景中卸载?它是已知的? 对于第一个,zip 中的所有模型都将转换为单个模型,这与您在 Navisworks 中看到的不同。 关于第二个,这取决于你调用的查看器api,但我没有看到任何信息。关于你问题中的这一部分,所以我不知道发生了什么。你能分享你上面的代码sn-ps吗? 2- NOP_VIEWER.impl.unloadModel(modelArray[0].modelObj) 是我用来卸载模型的。 第一,所有链接的Revit文件的InstanceTree在Forge翻译后都会合并到宿主RVT中,所以在Navisworks中看不到相同的模型结构层次。以上就是我的意思,很抱歉造成混淆。以上是关于使用 Revit 链接模型的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Revit API。从主模型元素所在的链接模型中获取一个房间
使用 Zend Framework 模型定义表关系方法的最佳代码位置是啥?
使用 JavaScript 或 jQuery 编写带有 GET 参数的链接的最佳方法是啥
是否可以通过 Revit API 或 FORGE API 在 Revit 模型中加载新的 Cloud (BIM 360) 链接?