我正在尝试运行本地 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 的工作示例。
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]);
}