Autodesk Forge Viewer - SVF2 格式的无效 OGT 标头
Posted
技术标签:
【中文标题】Autodesk Forge Viewer - SVF2 格式的无效 OGT 标头【英文标题】:Autodesk Forge Viewer - Invalid OGT header with SVF2 format 【发布时间】:2021-04-17 18:54:58 【问题描述】:当我将 Forge Viewer 从 SVF 迁移到 SVF2 时,某些几何图形未加载,并且每个元素都出现“无效的 OGT 标头”和“无法解析 OGT 几何图形”。
Console error
我直接从 BIM360 获取模型。 我正在使用带有 express 的 Nodejs 并执行发布请求以与客户端通信 Forge 访问令牌
app.get('/home', (req, res) =>
var options =
'method': 'POST',
'url': 'https://developer.api.autodesk.com/authentication/v1/authenticate',
'headers':
'Content-Type': 'application/x-www-form-urlencoded',
'Cookie': 'PF=boZ6jpDwlNEmVzAGFiFx8i',
form:
'grant_type': 'client_credentials',
'client_id': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'client_secret': 'XXXXXXXXXXXXXXXXXX',
'scope': 'data:read data:write';
我刚刚将 SVF 查看器选项替换为 Autodesk Post 中的选项
function launchViewer(urn)
//SVF
//var options =
//env: 'AutodeskProduction',
//getAccessToken: getToken,
//api: 'derivativeV2' + (atob(urn.replace('_', '/')).indexOf('emea') > -1 ? '_EU' : '');
//SVF2
var options =
env: 'MD20ProdUS',
getAccessToken: getToken,
api: 'D3S';
Autodesk.Viewing.Initializer(options, () =>
viewer = new Autodesk.Viewing.Viewer3D(document.getElementById('forgeViewer'));
viewer.start();
var documentId = 'urn:' + urn;
Autodesk.Viewing.Document.load(documentId, onDocumentLoadSuccess, onDocumentLoadFailure););
function onDocumentLoadSuccess(doc)
var viewables = doc.getRoot().getDefaultGeometry();
viewer.loadDocumentNode(doc, viewables).then((i) =>
// documented loaded, any action?
);
this.viewer.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, onSelectionChanged);
this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, onGeometryLoaded);
function onGeometryLoaded()
console.log(viewer);
function onDocumentLoadFailure(viewerErrorCode)
console.error('onDocumentLoadFailure() - errorCode:' + viewerErrorCode);
最终从服务器获取令牌
//Localhost
function getToken(_callback)
$.get("http://localhost:3000/home", function(data, status)
var response = JSON.parse(data);
_callback(response.access_token, response.expires_in);
);
有什么线索吗?
【问题讨论】:
【参考方案1】:我们使用 SVF2 已经 2 个月了,现在我们的一个模型遇到了这个问题,该模型以前没有问题。但是,大多数模型都可以正常工作。 SVF2 好像退步了。
但是,我们使用 EMEA 环境:
'env': 'MD20ProdEU', //svf2
'api': 'D3S', //svf2
...
编辑:
我研究了一点。我们托管在端口 1841 上的本地开发实例仅对一个模型有错误。我们在端口 80 上正确托管的查看器实例对于同一模型没有错误。 (针对查看器版本 7.34 和 7.33 测试)
编辑 2:
不幸的是,没有答案的相关 Stackeoverflow 问题:Forge Viewer - Failed to parse OTG
编辑 3:
我们的一些用户遇到了某些型号的 OGT 错误,而其他用户在使用相同的设置时没有任何问题。
【讨论】:
这里有一些奇怪的行为,我尝试了完全相同的配置,但我只使用 Revit 示例模型而不是其他模型遇到问题。好消息是我尝试了 EMEA 环境,现在所有模型都可以工作,我不知道可能有什么区别,但确实做到了。以上是关于Autodesk Forge Viewer - SVF2 格式的无效 OGT 标头的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Forge Viewer 中激活“Autodesk.MemoryLimited”扩展?
Autodesk Forge Viewer 适合查看纵向/横向