伪造查看器中的对象选择

时间:2021-01-28 05:29:18

标签: autodesk-forge viewer forge

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

我可以在 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;
         });
     });
 }

感谢和问候。

卡斯特罗纳尔逊

1 个答案:

答案 0 :(得分:0)

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

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

相关问题