类型错误:尝试在 Autodesk Forge Viewer 中显示 Navisworks 文件时无法读取 null 属性(读取“getNamedViews”)
2023-10-05
153
当我尝试显示
Navisworks 模型 (.nwd/.nwc 文件)
时,使用
viewer.start()
启动 Autodesk forge 查看器时,控制台中出现此错误。对于 .rvt、.fbx、.3ds 和 .max 文件,一切似乎都正常。
GuiViewer3D.js:244 未捕获(在承诺中)TypeError:无法读取 null 的属性(读取“getNamedViews”) 在 Object.addViews(GuiViewer3D.js:244:40) 在 SvfLoader.js:256:31
这是我的代码:
const lunchViewer = (urn) => {
var options = {
env: 'AutodeskProduction',
getAccessToken: getForgeToken,
};
var documentId = 'urn:' + urn;
window.Autodesk.Viewing.Initializer(options, () => {
window.Autodesk.Viewing.Document.load(
documentId,
onDocumentLoadSuccess,
onDocumentLoadFailure
);
});
};
const onDocumentLoadSuccess = (doc) => {
const geometries = doc.getRoot().search({ type: 'geometry' });
if (geometries.length === 0) {
console.error('Document contains no geometries.');
return;
}
const viewerDiv = document.getElementById('viewer');
const config = {
extensions: [
'Autodesk.DocumentBrowser',
'Autodesk.Viewing.MarkupsCore',
],
};
const viewer = new window.Autodesk.Viewing.Private.GuiViewer3D(
viewerDiv,
config
);
const initGeom = geometries[0];
const svfUrl = doc.getViewablePath(initGeom);
const modelOptions = {
sharedPropertyDbPath: doc.getFullPath(
doc.getRoot().findPropertyDbPath()
),
};
viewer.start(
svfUrl,
modelOptions,
onLoadModelSuccess,
onLoadModelError
);
};
我使用上述方法能够在同一个查看器中添加多个模型。 并且还可以在查看器中同一个加载模型的视图之间切换。
1个回答
这是一个已知问题,已在查看器 v7.93 中修复。请尝试将其升级到 v7.93 以查看是否有帮助。
对于旧版本,请考虑使用 GuiViewer3D#loadDocumentNode 。
这里有一个示例实用程序,演示如何使用 GuiViewer3D#loadDocumentNode 聚合多个模型:
Eason Kang
2023-10-12