Forge DA for Revit 多个版本
Forge DA for Revit Multiple Versions
好的,我认为我们在 Forge 中有一个用于 Revit 应用程序 运行 的 DA,但下一个问题是如何支持多个 Revit 版本,我找不到大量关于它的文档。以下是我的理解(或者我认为无论如何)以及我的问题:
每个应用程序包和 activity 只能定义一个引擎,因此您似乎需要为每个受支持的 Revit 版本创建一个包,并为每个 Revit 版本创建一个相关的 activity。关于此的问题:
- 1:包捆绑系统允许支持多个 Revit 版本。 DA 是否要求每个包仅支持一个 Revit 版本,或者有没有办法支持我缺少的多个版本?
- 2:如果 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
。例如下面显示 DeleteWallsActivity2018
和 DeleteWallsActivity2019
.
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
。
另请在此处阅读有关 aliases
和 ids
的更多信息:
https://forge.autodesk.com/en/docs/design-automation/v3/developers_guide/aliases-and-ids/
好的,我认为我们在 Forge 中有一个用于 Revit 应用程序 运行 的 DA,但下一个问题是如何支持多个 Revit 版本,我找不到大量关于它的文档。以下是我的理解(或者我认为无论如何)以及我的问题:
每个应用程序包和 activity 只能定义一个引擎,因此您似乎需要为每个受支持的 Revit 版本创建一个包,并为每个 Revit 版本创建一个相关的 activity。关于此的问题:
- 1:包捆绑系统允许支持多个 Revit 版本。 DA 是否要求每个包仅支持一个 Revit 版本,或者有没有办法支持我缺少的多个版本?
- 2:如果 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
。例如下面显示 DeleteWallsActivity2018
和 DeleteWallsActivity2019
.
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
。
另请在此处阅读有关 aliases
和 ids
的更多信息:
https://forge.autodesk.com/en/docs/design-automation/v3/developers_guide/aliases-and-ids/