首页 > 解决方案 > Forge DA for Revit 多个版本

问题描述

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

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

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

捆绑包和活动也由它们的别名引用。如果我理解它们是用于测试与生产代码等的开发/登台/生产别名。如果是这样,那么是否建议为每个捆绑包使用这些别名?

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

标签: autodesk-forgeautodesk-designautomation

解决方案


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

您还可以灵活地使用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

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

aliases还可以在此处阅读更多信息idshttps ://forge.autodesk.com/en/docs/design-automation/v3/developers_guide/aliases-and-ids/


推荐阅读