伪造查看器中的对象选择

问题描述

我已经为伪造查看器创建了示例应用程序。

我可以在 forge 查看器中查看 Revit 和 navisworks 文件

我想通过将输入传递给 viewer.bubble.search 方法来从查看器中选择一个项目。

我使用来自 url 的相同编码: https://forge.autodesk.com/en/docs/viewer/v7/reference/Viewing/BubbleNode/

我正在使用以下代码。请帮忙。

var viewer;
 var urn1;
 var accestoken1;
 var jsdata;

 function uploadfile(file) {
     document.getElementById('<%=UploadBtn.ClientID%>').click();
 }

 function showModel(urn) {
     var options = {
         env: 'AutodeskProduction',getAccesstoken: getForgetoken
     };

     Autodesk.Viewing.Initializer(options,() => {
         viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('forgeViewer'),{ extensions: ['Autodesk.Documentbrowser'] });
         viewer.start();
         var documentId = 'urn:' + urn;
         urn1 = urn;
         Autodesk.Viewing.Document.load(documentId,onDocumentLoadSuccess,onDocumentLoadFailure);
        // viewer.fitToView([270005],viewer.model);
        // viewer.select([270005]);
     });

 }

 function myFunction1() {
     setTimeout(function () {
         myFunction2();
     },500);
 }


 function onDocumentLoadSuccess(doc) {                 
     var viewables = viewer.bubble.search({ type: 'geometry',role: '3d',name: 'DOMW PIPE' });

     if (viewables.length === 0) {
         console.error('Document contains no viewables.');
         return;
     }
 }

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

 function getForgetoken(callback) {
     fetch('/api/forge/oauth/token').then(res => {
         res.json().then(data => {
             callback(data.access_token,data.expires_in);
             accestoken1 = data.access_token;
         });
     });
 }

感谢和问候。

卡斯特罗纳尔逊

解决方法

如果您希望选择将哪个 2D 或 3D 视图(模型衍生服务从您的原始设计中提取)加载到查看器中,请考虑使用名为 {{ 1}}。该扩展程序将为查看器添加一个新 UI,可用于在不同的 2D/3D 视图之间轻松切换。

您可以在 https://forge-extensions.autodesk.io 上试用扩展程序: enter image description here