为什么Revit模型有多个视图,丢到 Forge 转换后确只剩一个? (如何设定多个视图)

发布于 2022-09-04 21:26:14 字数 65 浏览 16 评论 0

在 Revit 里面有多个 2D 和 3D 的视图,但透过 Forge 转换以后确只有(看到)一个,请问是怎么回事?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清欢 2022-09-11 21:26:15

您好,这个问题的解决方法有两个,一个是从 Revit 文檔的设置下手,另一个则是从您的 JavaScript 代码着手修改,可尝试依照下列的步骤来解决:

一.Revit文檔设置:

A.找到设置按钮:

I. 如果使用的是 Revit 2016 以前(包含2016) 的朋友必需安装 A360 Collaboration for Revit
这个插件,可以从下列地址下载,安装完成后可在 Collaborate 页签下找到 Views For A360 这个按钮,如下两图图所示。

A360 Collaboration for Revit安装
Views For A360 按钮

II. 如使用 Revit 2017 以前版本(含2017) 的朋友可以在 Collaborate 页签下找到 Publish Settings 这个按钮,如下图所示。

Publish Settings 按钮

B. 设置 Forge 视图: 点击 Views For A360 或 Publish Settings

这个按钮后,会有一个窗口弹出来,如下图所示。在这个窗口选取想要的视图后,点击 Save Set & Close 按钮,最后将 Revit
文檔储存到硬盘上,这样就完成Revit文檔的视图设置。

Views for A360窗口

C. 上传 Forge 转换以及透过 Viewer 检视模型 完成 Revit 文檔的视图设置后,将此文档丢到 Forge 转换就可以在
Viewer 里看到多个视图,如下两图所示。

Forge Viewer1
Forge Viewer2

二.JavaScript代码修改: Autodesk 提供两种方式从 Model Derivative
服务上加载模型,在这两种方式里要各注意一个地方,如下所示:

A. 方式一:

var viewer = new Autodesk.Viewing.Private.GuiViewer3D ( viewerElement, {} );
Autodesk.Viewing.Initializer( options, function() {
    viewer.initialize();

    Autodesk.Viewing.Document.load(
        documentId,
        function( doc ) {
            var geometryItems = [];
            geometryItems = Autodesk.Viewing.Document.getSubItemsWithProperties( doc.getRootItem(), {
            'type' : 'geometry',
            'role' : '3d'
            }, true );

            if ( geometryItems.length <= 0 ) return;

            // 在这边变更数列 geometryItems的索引
            var view = doc.getViewablePath( geometryItems[0] );
            viewer.load( view );
        },
        function( errorMsg ) {
            alert( ‘Load Error: ‘ + errorMsg );
        });
});

B. 方式二:

var viewerApp;
Autodesk.Viewing.Initializer( options, function() {
    viewerApp = new Autodesk.Viewing.ViewingApplication( 'viewer' );
    viewerApp.registerViewer( viewerApp.k3D, Autodesk.Viewing.Private.GuiViewer3D, null );
    viewerApp.loadDocument( documentId, onDocumentLoadSuccess, onDocumentLoadFailure );
});
          
function onDocumentLoadSuccess( doc ) {
    var viewables = viewerApp.bubble.search({
        'type': 'geometry',
        'role' : '3d'
    });

    if ( viewables.length <= 0 ) return;

    // 在这边变更数列viewables的索引
    viewerApp.selectItem( viewables[0].data, onItemLoadSuccess, onItemLoadFail );
}

function onDocumentLoadFailure( viewerErrorCode ) {
    console.error( 'onDocumentLoadFailure() - errorCode:' + viewerErrorCode );
}

function onItemLoadSuccess( viewer, item ) {
    console.log( 'onItemLoadSuccess()!' );
}

function onItemLoadFail( errorCode ) {
    console.error( 'onItemLoadFail() - errorCode:' + errorCode );
}

参考自:http://adndevblog.typepad.com...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文