Я пытаюсь запустить локальную программу просмотра 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-файлом.
Расширение 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]);
}
Отлично, спасибо за разъяснения! Теперь все запущено. :)