Forge/APS 查看器中的 Autodesk.DocumentBrowser 以及本地 svf 文件

问题描述 投票:0回答:1

我正在尝试运行本地 Forge/APS 查看器,在其中我可以查看转换为 .svf 的 .rvt 模型。

使用本地 .svf 文件查看 3D 模型效果很好,ootb 使用下面提供的 Autodesk 示例。我唯一的问题是让 Autodesk.DocumentBrowser 扩展正常工作。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Very Basic 3D Viewer</title>
    <link rel="icon" href="/images/favicon.ico" type="image/x-icon" />
    <!-- The Viewer JS & CSS-->
    <link
      rel="stylesheet"
      href="https://developer.api.autodesk.com/modelderivative/v2/viewers/style.min.css?v=v7.*"
      type="text/css"
    />
    <script
      language="JavaScript"
      src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js?v=v7.*"
    ></script>
  </head>

  <body>
    <img
      src="/images/forge-logo.png"
      style="
        height: auto;
        width: 20%;
        position: absolute;
        left: 10px;
        top: 10px;
        z-index: 233;
      "
    />
    <div id="MyViewerDiv"></div>

    <!-- Developer JS -->
    <script>
      var myViewerDiv = document.getElementById("MyViewerDiv");
      var viewer = new Autodesk.Viewing.Private.GuiViewer3D(myViewerDiv);
      var options = {
        env: "Local",
        document: "./shaver/0.svf",
      };
      Autodesk.Viewing.Initializer(options, function () {
        viewer.start(options.document, options);
        viewer
          .loadExtension("Autodesk.DocumentBrowser", {})
          .then(function (extension) {
            console.log("Document Browser extension loaded:", extension);
          })
          .catch(function (error) {
            console.error("Failed to load Document Browser extension:", error);
          });
      });
    </script>
  </body>
</html>

我尝试了几种方法。这样控制台就会显示 DocumentBrowser 已加载,但我在栏中没有看到它的按钮,并且 div 中没有填充任何内容。

我还尝试了 svfs,其中在线查看器显示 2D 视图。

另一种方法是以这种方式加载扩展:

viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById("MyViewerDiv"), { extensions: ['Autodesk.DocumentBrowser', 'Autodesk.VisualClusters'] });
viewer.start();

仍然没有成功。 VisualCluster 扩展显示在栏中,但不显示 DocumentBrowser。

我感觉 DocumentBrowser 无法处理本地 .svf 文件。但这让我很困惑,因为我在网上看到过例子,看起来他们就是这么做的。

如果有人能提供帮助,我会很高兴。 :) 要么澄清什么是可能的,什么是不可能的和/或提供一个使用本地 .svf 文件加载和查看 DocumentBrowser 的工作示例。

javascript html autodesk-forge autodesk revit-api
1个回答
0
投票

Autodesk.DocumentBrowser
扩展用于显示文档内可用的视图

*.svf
文件只是一个视图,而不是文档

bubble.json
文件充当文档或可用视图的容器。如果您加载它,那么文档浏览器将正常工作。

var viewer;
var options = {
    env: "Local",
};

var viewerDiv = document.getElementById("MyViewerDiv");
viewer = new Autodesk.Viewing.GuiViewer3D(viewerDiv, {
    extensions: ["Autodesk.DocumentBrowser"],
});
viewer.start();

Autodesk.Viewing.Initializer(options, function onInitialized() {
    Autodesk.Viewing.Document.load(
        "/svf_orbit_2023_invisible/bubble.json",
        onDocumentLoadSuccess
    );
});

function onDocumentLoadSuccess(doc) {
    var viewables = doc.getRoot().search(
        {
            type: "geometry",
            role: "3d",
        },
        true
    );
    if (viewables.length === 0) {
        console.error("Document contains no viewables.");
        return;
    }

    viewer.loadDocumentNode(doc, viewables[0]);
}

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.