【发布时间】:2020-05-06 12:56:01
【问题描述】:
我正在处理一个项目,我需要根据 Revit 设计自动化 API 中的输入 json 文件生成输出 Revit 文件。
由于我的输入 json 字符串很大,我创建了一个 json 文件示例“InputFile.json”并将其上传到云端并将签名的 url 作为输入参数传递给工作项和活动,生成的输出是一个 zip 文件示例“OutputFile.zip”再次使用签名的 url 上传到云端。
我的项目使用此过程正常工作。
但是由于用于输入和输出文件的名称是固定的,当我发送连续请求时,我遇到了问题,我得到不匹配的输出。
Activity request
..
"parameters": {
"Inputs": {
"zip": false,
"ondemand": false,
"verb": "get",
"description": "Element parameters",
"required": true,
"localName": "InputFile.json"
},
"Result": {
"zip": true,
"ondemand": false,
"verb": "put",
"description": "new created element",
"required": true,
"localName": "OutputFile"
}
},
...
和 WorkItem 请求
...
"arguments":{
"Inputs":{
"url":"https://storage.googleapis.com/XXXXXXX/InputFile.json?XXXXXXXXXXXXXXXsigned-url"
},
"Result":{
"verb":"put",
"url":"https://storage.googleapis.com/XXXXXXX/OutputFile.zip?XXXXXXXXXXXXXXXsigned-url",
...
如何传递动态生成的名称,例如“InputFile_[DATE].json”和“OutputFile_[DATE].zip”?
提前致谢
问候
【问题讨论】:
-
我能想到的第一个想法是使用所需名称指定活动的本地名称。但听起来你想保持 Activity 的相同定义,即 Output 的本地名称将始终是 OutputFile?其次,我可能误解了你的问题,但从你的代码看来,Google Signed URL 服务可以指定文件名。这在您的场景中没有用吗?我不熟悉 Google 的签名 URL,我可能是错的。
-
我被确认 Jeremy 的评论是正确的。 localName 适用于任何 url。定义为参数/工作项的本地名称优先于定义为参数/活动的本地名称
标签: autodesk-forge revit-api autodesk-designautomation