Autodesk Forge 设计自动化

Posted

技术标签:

【中文标题】Autodesk Forge 设计自动化【英文标题】:Autodesk Forge design automation 【发布时间】:2021-01-06 11:28:01 【问题描述】:

我正在尝试重新创建 forge-customproperty-revit。

我正在访问 A360 上的模型,查看器加载了所选模型,然后一分钟后出现此错误:

Exception has occurred: CLR/Autodesk.Forge.Client.ApiException
An exception of type 'Autodesk.Forge.Client.ApiException' occurred in System.Private.CoreLib.dll but was not handled in user code: 'Error calling CreateSignedResource: "reason":"Object not found"'
   at Autodesk.Forge.ObjectsApi.<CreateSignedResourceAsyncWithHttpInfo>d__21.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at forgeSample.Controllers.DesignAutomationController.<>c__DisplayClass4_0.<<OnReadyExtractStyles>b__0>d.MoveNext() in /home/luka/Documents/Coding/NetCore/forge-customproperty-revit/webapp/Controllers/DesignAutomationController.cs:line 79

DesignAutomationController.cs 第 79 行发生异常:

dynamic signedUrl = await bjects.CreateSignedResourceAsyncWithHttpInfo(Utils.BucketName, fileName, new PostBucketsSigned(10), "read");

总的来说,我对 Forge 和 Web API 还是很陌生,所以我什至无法猜测问题出在哪里。

谢谢,

卢卡

【问题讨论】:

【参考方案1】:

除了 Petr Broz 提到的内容之外,DesignAutomationController#79 在未创建输出文件时失败,在这种情况下,这意味着设计自动化工作项没有生成 result.json。请分享 reportUrl 输出,以便我们了解 Revit 失败的原因。

【讨论】:

【参考方案2】:

失败的那一行基本上是尝试生成一个临时的只读 URL,指向 Forge 数据管理中的一个文件(以便以后可以从该 URL 下载该文件)。该方法调用的底层网络请求返回非标准(非200)错误码,可能有多种原因,例如:

Utils.BucketName 不包含有效的存储桶名称,或者存储桶不存在 fileName 不包含有效的文件名,或者该文件不存在 您的访问令牌无权访问特定存储桶

我建议将方法调用包装到它自己的try-catch 块中,并输出它可能抛出的任何异常。错误消息应提供更多详细信息。

【讨论】:

以上是关于Autodesk Forge 设计自动化的主要内容,如果未能解决你的问题,请参考以下文章

Autodesk Forge 设计自动化/模型衍生 API - 查看器缓存 svf 文件

Autodesk Forge 数据管理参考 API 未列出 Revit 参考

Autodesk Forge 自动化

Autodesk Forge BIM 360 API - 激活服务类型

下载版本名称为 Autodesk Forge 的文件

Autodesk forge 查看其他 3d 视图和选项