Revit 工作项参数未解析的设计自动化
Design Automation for Revit Work Item Argument Not Parsing
我有一个应用程序可以将工作项提交到 Design Automation for Revit(Design Automation v3 beta)。大多数提交的工作项工作正常,但模型的某些版本似乎无法解析 "rvtFile" 参数。这会导致云 Revit 进程失败 运行,因为文件名参数错误。
ActivityPOST正文:
{
"id": "ExtractModelCategoriesActivity",
"commandLine": ["$(engine.path)\\revitcoreconsole.exe /i $(args[rvtFile].path) /al $(appbundles[ExtractModelCategories].path)"],
"parameters": {
"rvtFile": {
"zip": false,
"ondemand": false,
"verb": "get",
"description": "Input Revit model",
"required": true,
"localName": "$(rvtFile)"
},
"result": {
"zip": false,
"ondemand": false,
"verb": "put",
"description": "Model object categories by view",
"required": false,
"localName": "ModelCategories.json"
}
},
"engine": "Autodesk.Revit+2019",
"appbundles": ["alias_was_here.ExtractModelCategories+prod"],
"description": "Extract Model Categories to JSON Activity."
}
作品正文POST:
{
"activityId": "alias_was_here.ExtractModelCategoriesActivity+prod",
"arguments": {
"rvtFile": {
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/83b5eb1e-c9b7-4938-ad4e-8efc4789d0e2.rvt?scopes=b360project.22109894-5897-4aa9-96ab-2e3310bc4ae9,global,O2tenant.5952590",
"Headers": {
"Authorization": "Bearer token_was_here"
}
},
"result": {
"verb": "put",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/9dde6073-d490-4fd0-991e-4ff92af1957e.json",
"Headers": {
"Authorization": "Bearer token_was_here"
}
},
"onComplete": {
"verb": "post",
"url": "callback_url_was_here"
}
}
}
来自 report.txt 成功提交的文件:
[04/16/2019 12:03:50] Job information:
"CommandLine":[
"$(engine.path)\\revitcoreconsole.exe /i $(args[rvtFile].path) /al $(appbundles[ExtractModelCategories].path)"
]
"Settings":{
"dasreportfailedlimits": {
"value": "true",
"isEnvironmentVariable": true
}
}
"Id":"e23918d475a74145aade32ba8968e5c3"
"ActivityId":"alias_was_here.ExtractModelCategoriesActivity+prod"
"Engine.Id":"Autodesk.Revit!21"
"Apps": [
"App.Id":"alias_was_here.ExtractModelCategories!1"
]
"BoundArguments":{
"rvtFile": {
"localName": "$(rvtFile)",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/839a11d8-51e9-42de-8936-28687feda65f.rvt?scopes=b360project.1949ed9d-e7fd-42b9-98f4-544fff3df42f,global,O2tenant.2971682",
"headers": {
"Authorization": "Bearer token_was_here"
}
},
"result": {
"localName": "ModelCategories.json",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/dd19b8f6-ac51-45b9-8f42-51c7c6a9d257.json",
"headers": {
"Authorization": "Bearer token_was_here"
},
"verb": "put"
},
"onComplete": {
"ondemand": true,
"optional": true,
"url": "callback_was_here",
"verb": "post"
},
"onProgress": {
"ondemand": true,
"url": "https://wlnr5sjl3a.execute-api.us-east-1.amazonaws.com/Prod/v3/workitems/progress",
"headers": {
"Content-Type": "application/json",
"x-das-authorize": "awssigv4(us-east-1)",
"x-ads-token-data": "{\"access_token\":{\"client_id\":\"alias_was_here\"},\"scope\":\"bucket:create bucket:read data:read data:create data:write code:all\",\"expires_in\":3595,\"client_id\":\"alias_was_here\"}",
"x-ads-developer-email": "email_was_here"
},
"verb": "put"
}
}
- snip -
[04/16/2019 12:03:57] ### Command line arguments: /isolate HKEY_CURRENT_USER\SOFTWARE\AppDataLow\Software\Autodesk\CoreUser\WorkItem_e23918d475a74145aade32ba8968e5c3 "T:\Aces\Jobs\e23918d475a74145aade32ba8968e5c3\userdata" /exe "T:\Aces\AcesRoot.0\coreEngine\Exe\revitcoreconsole.exe" /i T:\Aces\Jobs\e23918d475a74145aade32ba8968e5c39a11d8-51e9-42de-8936-28687feda65f.rvt /al T:\Aces\Applications9cf68955e15ce6704c72a62c734afe.alias_was_here.ExtractModelCategories[1].package.
- snip -
[04/16/2019 12:03:57] Echoing command line args:
[04/16/2019 12:03:57] 0:/i
[04/16/2019 12:03:57] 1:T:\Aces\Jobs\e23918d475a74145aade32ba8968e5c39a11d8-51e9-42de-8936-28687feda65f.rvt
- snip -
[04/16/2019 12:03:57] Running user application....
- snip -
[04/16/2019 12:04:22] Job finished with result Succeeded
[04/16/2019 12:04:22] Job Status:
{
"status": "success",
...
来自失败提交的 report.txt 文件:
[04/16/2019 12:04:44] Job information:
"CommandLine":[
"$(engine.path)\\revitcoreconsole.exe /i $(args[rvtFile].path) /al $(appbundles[ExtractModelCategories].path)"
]
"Settings":{
"dasreportfailedlimits": {
"value": "true",
"isEnvironmentVariable": true
}
}
"Id":"4db3208a1c4e429c846c4da385f2219d"
"ActivityId":"alias_was_here.ExtractModelCategoriesActivity+prod"
"Engine.Id":"Autodesk.Revit!21"
"Apps": [
"App.Id":"alias_was_here.ExtractModelCategories!1"
]
"BoundArguments":{
"rvtFile": {
"localName": "$(rvtFile)",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/e597df42-07c7-41e1-aa0c-fa1abd179a4c.rvt?scopes=b360project.1949ed9d-e7fd-42b9-98f4-544fff3df42f,global,O2tenant.2971682",
"headers": {
"Authorization": "Bearer token was here"
}
},
"result": {
"localName": "ModelCategories.json",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/6b59f894-bbf0-421a-bf0b-e80d7584ee33.json",
"headers": {
"Authorization": "Bearer token_was_here"
},
"verb": "put"
},
"onComplete": {
"ondemand": true,
"optional": true,
"url": "callback_was_here",
"verb": "post"
},
"onProgress": {
"ondemand": true,
"url": "https://wlnr5sjl3a.execute-api.us-east-1.amazonaws.com/Prod/v3/workitems/progress",
"headers": {
"Content-Type": "application/json",
"x-das-authorize": "awssigv4(us-east-1)",
"x-ads-token-data": "{\"access_token\":{\"client_id\":\"alias_was_here\"},\"scope\":\"bucket:create bucket:read data:read data:create data:write code:all\",\"expires_in\":3596,\"client_id\":\"alias_was_here\"}",
"x-ads-developer-email": "email_was here"
},
"verb": "put"
}
}
- snip -
[04/16/2019 12:04:56] ### Command line arguments: /isolate HKEY_CURRENT_USER\SOFTWARE\AppDataLow\Software\Autodesk\CoreUser\WorkItem_4db3208a1c4e429c846c4da385f2219d "T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d\userdata" /exe "T:\Aces\AcesRoot.0\coreEngine\Exe\revitcoreconsole.exe" /i T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d$(rvtFile) /al T:\Aces\Applications9cf68955e15ce6704c72a62c734afe.alias_was_here.ExtractModelCategories[1].package.
- snip -
[04/16/2019 12:04:56] Echoing command line args:
[04/16/2019 12:04:56] 0:/i
[04/16/2019 12:04:56] 1:T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d$(rvtFile)
[04/16/2019 12:04:56] Running user application....
[04/16/2019 12:05:02] Exception: Revit input file not found: T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d$(rvtFile)
- snip -
[04/16/2019 12:05:03] Job finished with result FailedExecution
[04/16/2019 12:05:03] Job Status:
{
"status": "failedInstructions",
...
据我所知,两个提交的正文格式和结构是相同的(这些是同一模型的第 10 版和第 11 版)。但是,对于失败的工作项,Revit 文件名未解析,仍然是字符串 $(rvtFile) 而不是 DA 处理工作项时的实际文件名。
对问题有任何见解吗?提交的正文中是否有错误?我该如何纠正?
不使用 "localName": "$(rvtFile),你可以使用像 "localName": "input.rvt" 这样的静态文件名吗?
我在 Zhong Wu 和 Autodesk 的帮助下,根据我所学的知识回答我自己的问题:
目前这是 Design Automation for Revit API Beta 的一个问题。如果 Revit 模型包含指向其他模型的链接,则下载到 Design Automation 的文件将被压缩并包含主模型和链接文件。 Design Automation 随后失败,因为它需要一个 Revit 文件。这会自动发生在 API 一方。
一个work-around是利用数据管理API将Revit文件下载到另一个位置。如果数据管理 API 提供的文件是压缩文件而不是 Revit 模型,un-zip 它。然后,将未压缩的 Revit 文件放置在 Design Automation 和 post 引用未压缩文件位置的工作项可访问的位置。
据我了解,Autodesk 已在内部发出更改请求以改进对压缩文件的处理。我没有这方面的时间表。
如果我了解更多,我会更新这个答案。
** 更新**
这已由 Autodesk Forge 团队修复,现在可以运行带有链接的 Revit 文件。谢谢!
我有一个应用程序可以将工作项提交到 Design Automation for Revit(Design Automation v3 beta)。大多数提交的工作项工作正常,但模型的某些版本似乎无法解析 "rvtFile" 参数。这会导致云 Revit 进程失败 运行,因为文件名参数错误。
ActivityPOST正文:
{
"id": "ExtractModelCategoriesActivity",
"commandLine": ["$(engine.path)\\revitcoreconsole.exe /i $(args[rvtFile].path) /al $(appbundles[ExtractModelCategories].path)"],
"parameters": {
"rvtFile": {
"zip": false,
"ondemand": false,
"verb": "get",
"description": "Input Revit model",
"required": true,
"localName": "$(rvtFile)"
},
"result": {
"zip": false,
"ondemand": false,
"verb": "put",
"description": "Model object categories by view",
"required": false,
"localName": "ModelCategories.json"
}
},
"engine": "Autodesk.Revit+2019",
"appbundles": ["alias_was_here.ExtractModelCategories+prod"],
"description": "Extract Model Categories to JSON Activity."
}
作品正文POST:
{
"activityId": "alias_was_here.ExtractModelCategoriesActivity+prod",
"arguments": {
"rvtFile": {
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/83b5eb1e-c9b7-4938-ad4e-8efc4789d0e2.rvt?scopes=b360project.22109894-5897-4aa9-96ab-2e3310bc4ae9,global,O2tenant.5952590",
"Headers": {
"Authorization": "Bearer token_was_here"
}
},
"result": {
"verb": "put",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/9dde6073-d490-4fd0-991e-4ff92af1957e.json",
"Headers": {
"Authorization": "Bearer token_was_here"
}
},
"onComplete": {
"verb": "post",
"url": "callback_url_was_here"
}
}
}
来自 report.txt 成功提交的文件:
[04/16/2019 12:03:50] Job information:
"CommandLine":[
"$(engine.path)\\revitcoreconsole.exe /i $(args[rvtFile].path) /al $(appbundles[ExtractModelCategories].path)"
]
"Settings":{
"dasreportfailedlimits": {
"value": "true",
"isEnvironmentVariable": true
}
}
"Id":"e23918d475a74145aade32ba8968e5c3"
"ActivityId":"alias_was_here.ExtractModelCategoriesActivity+prod"
"Engine.Id":"Autodesk.Revit!21"
"Apps": [
"App.Id":"alias_was_here.ExtractModelCategories!1"
]
"BoundArguments":{
"rvtFile": {
"localName": "$(rvtFile)",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/839a11d8-51e9-42de-8936-28687feda65f.rvt?scopes=b360project.1949ed9d-e7fd-42b9-98f4-544fff3df42f,global,O2tenant.2971682",
"headers": {
"Authorization": "Bearer token_was_here"
}
},
"result": {
"localName": "ModelCategories.json",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/dd19b8f6-ac51-45b9-8f42-51c7c6a9d257.json",
"headers": {
"Authorization": "Bearer token_was_here"
},
"verb": "put"
},
"onComplete": {
"ondemand": true,
"optional": true,
"url": "callback_was_here",
"verb": "post"
},
"onProgress": {
"ondemand": true,
"url": "https://wlnr5sjl3a.execute-api.us-east-1.amazonaws.com/Prod/v3/workitems/progress",
"headers": {
"Content-Type": "application/json",
"x-das-authorize": "awssigv4(us-east-1)",
"x-ads-token-data": "{\"access_token\":{\"client_id\":\"alias_was_here\"},\"scope\":\"bucket:create bucket:read data:read data:create data:write code:all\",\"expires_in\":3595,\"client_id\":\"alias_was_here\"}",
"x-ads-developer-email": "email_was_here"
},
"verb": "put"
}
}
- snip -
[04/16/2019 12:03:57] ### Command line arguments: /isolate HKEY_CURRENT_USER\SOFTWARE\AppDataLow\Software\Autodesk\CoreUser\WorkItem_e23918d475a74145aade32ba8968e5c3 "T:\Aces\Jobs\e23918d475a74145aade32ba8968e5c3\userdata" /exe "T:\Aces\AcesRoot.0\coreEngine\Exe\revitcoreconsole.exe" /i T:\Aces\Jobs\e23918d475a74145aade32ba8968e5c39a11d8-51e9-42de-8936-28687feda65f.rvt /al T:\Aces\Applications9cf68955e15ce6704c72a62c734afe.alias_was_here.ExtractModelCategories[1].package.
- snip -
[04/16/2019 12:03:57] Echoing command line args:
[04/16/2019 12:03:57] 0:/i
[04/16/2019 12:03:57] 1:T:\Aces\Jobs\e23918d475a74145aade32ba8968e5c39a11d8-51e9-42de-8936-28687feda65f.rvt
- snip -
[04/16/2019 12:03:57] Running user application....
- snip -
[04/16/2019 12:04:22] Job finished with result Succeeded
[04/16/2019 12:04:22] Job Status:
{
"status": "success",
...
来自失败提交的 report.txt 文件:
[04/16/2019 12:04:44] Job information:
"CommandLine":[
"$(engine.path)\\revitcoreconsole.exe /i $(args[rvtFile].path) /al $(appbundles[ExtractModelCategories].path)"
]
"Settings":{
"dasreportfailedlimits": {
"value": "true",
"isEnvironmentVariable": true
}
}
"Id":"4db3208a1c4e429c846c4da385f2219d"
"ActivityId":"alias_was_here.ExtractModelCategoriesActivity+prod"
"Engine.Id":"Autodesk.Revit!21"
"Apps": [
"App.Id":"alias_was_here.ExtractModelCategories!1"
]
"BoundArguments":{
"rvtFile": {
"localName": "$(rvtFile)",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/e597df42-07c7-41e1-aa0c-fa1abd179a4c.rvt?scopes=b360project.1949ed9d-e7fd-42b9-98f4-544fff3df42f,global,O2tenant.2971682",
"headers": {
"Authorization": "Bearer token was here"
}
},
"result": {
"localName": "ModelCategories.json",
"url": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/6b59f894-bbf0-421a-bf0b-e80d7584ee33.json",
"headers": {
"Authorization": "Bearer token_was_here"
},
"verb": "put"
},
"onComplete": {
"ondemand": true,
"optional": true,
"url": "callback_was_here",
"verb": "post"
},
"onProgress": {
"ondemand": true,
"url": "https://wlnr5sjl3a.execute-api.us-east-1.amazonaws.com/Prod/v3/workitems/progress",
"headers": {
"Content-Type": "application/json",
"x-das-authorize": "awssigv4(us-east-1)",
"x-ads-token-data": "{\"access_token\":{\"client_id\":\"alias_was_here\"},\"scope\":\"bucket:create bucket:read data:read data:create data:write code:all\",\"expires_in\":3596,\"client_id\":\"alias_was_here\"}",
"x-ads-developer-email": "email_was here"
},
"verb": "put"
}
}
- snip -
[04/16/2019 12:04:56] ### Command line arguments: /isolate HKEY_CURRENT_USER\SOFTWARE\AppDataLow\Software\Autodesk\CoreUser\WorkItem_4db3208a1c4e429c846c4da385f2219d "T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d\userdata" /exe "T:\Aces\AcesRoot.0\coreEngine\Exe\revitcoreconsole.exe" /i T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d$(rvtFile) /al T:\Aces\Applications9cf68955e15ce6704c72a62c734afe.alias_was_here.ExtractModelCategories[1].package.
- snip -
[04/16/2019 12:04:56] Echoing command line args:
[04/16/2019 12:04:56] 0:/i
[04/16/2019 12:04:56] 1:T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d$(rvtFile)
[04/16/2019 12:04:56] Running user application....
[04/16/2019 12:05:02] Exception: Revit input file not found: T:\Aces\Jobsdb3208a1c4e429c846c4da385f2219d$(rvtFile)
- snip -
[04/16/2019 12:05:03] Job finished with result FailedExecution
[04/16/2019 12:05:03] Job Status:
{
"status": "failedInstructions",
...
据我所知,两个提交的正文格式和结构是相同的(这些是同一模型的第 10 版和第 11 版)。但是,对于失败的工作项,Revit 文件名未解析,仍然是字符串 $(rvtFile) 而不是 DA 处理工作项时的实际文件名。
对问题有任何见解吗?提交的正文中是否有错误?我该如何纠正?
不使用 "localName": "$(rvtFile),你可以使用像 "localName": "input.rvt" 这样的静态文件名吗?
我在 Zhong Wu 和 Autodesk 的帮助下,根据我所学的知识回答我自己的问题:
目前这是 Design Automation for Revit API Beta 的一个问题。如果 Revit 模型包含指向其他模型的链接,则下载到 Design Automation 的文件将被压缩并包含主模型和链接文件。 Design Automation 随后失败,因为它需要一个 Revit 文件。这会自动发生在 API 一方。
一个work-around是利用数据管理API将Revit文件下载到另一个位置。如果数据管理 API 提供的文件是压缩文件而不是 Revit 模型,un-zip 它。然后,将未压缩的 Revit 文件放置在 Design Automation 和 post 引用未压缩文件位置的工作项可访问的位置。
据我了解,Autodesk 已在内部发出更改请求以改进对压缩文件的处理。我没有这方面的时间表。
如果我了解更多,我会更新这个答案。
** 更新**
这已由 Autodesk Forge 团队修复,现在可以运行带有链接的 Revit 文件。谢谢!