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 文件。谢谢!