Forge DA for Revit 多个版本

Forge DA for Revit Multiple Versions

好的,我认为我们在 Forge 中有一个用于 Revit 应用程序 运行 的 DA,但下一个问题是如何支持多个 Revit 版本,我找不到大量关于它的文档。以下是我的理解(或者我认为无论如何)以及我的问题:

每个应用程序包和 activity 只能定义一个引擎,因此您似乎需要为每个受支持的 Revit 版本创建一个包,并为每个 Revit 版本创建一个相关的 activity。关于此的问题:

应用程序包由其 ID 引用。大多数示例将 ID 显示为 'DeleteWallsApp' 之类的东西。但是,如果您确实需要多个 Revit 版本的多个应用程序包,那么您真的想要使用像 'DeleteWallsApp2018' 和 'DeleteWallsApp2020' 等 ID 吗?您不能拥有多个相同的 ID,因此这似乎是最合适的方法。这是正确的吗?

捆绑包和活动也由它们的别名引用。如果我理解它们意味着 dev/staging/production 用于测试与生产代码等的别名。如果是这样,是否建议为每个包使用这些别名?

这似乎有很多东西要上传到很多不同的地方,但我想如果您使系统自动化,那还不错。我只是想确保我没有遗漏结构的某些部分。

activity可以覆盖appbundle指定的引擎版本。与您的桌面插件一样,在 Revit 2018 上构建的 appbundle 可以在 Revit 2019 及更高版本上运行,只要引用的所有 API 都兼容(我们很少淘汰某些 API)。因此,您可以在 Revit 2018 上构建一个 appbundle,并有多个 activities 引用相同的 appbundle 和比 appbundle 引用更高的 engine 版本。

您还可以灵活地使用一个 activity unqualified id 通过别名为多个引擎提供服务。例如,下面显示了如何使用 DeleteWallsActivity.

YourNickname.DeleteWallsActivity+dev_2018
YourNickname.DeleteWallsActivity+stg_2018
YourNickname.DeleteWallsActivity+prod_2018
YourNickname.DeleteWallsActivity+dev_2019
YourNickname.DeleteWallsActivity+stg_2019
YourNickname.DeleteWallsActivity+prod_2019

或者为每个引擎创建一个 unqualified id。例如下面显示 DeleteWallsActivity2018DeleteWallsActivity2019.

YourNickname.DeleteWallsActivity2018+dev
YourNickname.DeleteWallsActivity2018+stg
YourNickname.DeleteWallsActivity2018+prod
YourNickname.DeleteWallsActivity2019+dev
YourNickname.DeleteWallsActivity2019+stg
YourNickname.DeleteWallsActivity2019+prod

因为每个完全限定的 id YourNickname.YourActivity+alias 都有一个与之关联的 activity 版本,并且每个版本又用它们的完全限定的 id 引用它们各自的 appbundles,你可以有任何上述方案之一,无论您是为每个引擎创建单个还是多个 appbundles

另请在此处阅读有关 aliasesids 的更多信息: https://forge.autodesk.com/en/docs/design-automation/v3/developers_guide/aliases-and-ids/