Autodesk.DocumentBrowser в программе просмотра Forge/APS с локальным svf-файлом

Я пытаюсь запустить локальную программу просмотра Forge/APS, где я могу просмотреть модель .rvt, переведенную в .svf.

Просмотр 3D-модели с помощью локального файла .svf работает отлично, например, с примером 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.info("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-файлами. Но это меня смущает, поскольку я видел в Интернете примеры, которые выглядят так, будто они делают именно это.

Буду рад, если кто-нибудь сможет помочь. :) Либо с пояснением, что можно, а что нельзя, и/или с предоставлением рабочего примера загрузки и просмотра DocumentBrowser с локальным .svf-файлом.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Расширение 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]);
}

Отлично, спасибо за разъяснения! Теперь все запущено. :)

gmad 17.05.2024 15:02

Другие вопросы по теме