Forge DA для нескольких версий Revit - PullRequest
1 голос
/ 05 мая 2020

Хорошо, я думаю, что у нас есть приложение DA для Revit, работающее в Forge, но следующий вопрос - как поддерживать несколько версий Revit, и я не могу найти по нему тонну документации. Вот что я понимаю (или думаю, что все равно понимаю) и вопросы, которые у меня есть:

Каждый пакет приложения и действие могут определять только один движок, поэтому кажется, что вам нужно создать пакет для каждой поддерживаемой версии Revit. а также соответствующее действие для каждой версии Revit. Вопросы по этому поводу:

  • 1: Система объединения пакетов позволяет поддерживать несколько версий Revit. Требует ли DA, чтобы каждый пакет поддерживал только одну версию Revit, или есть способ поддерживать несколько версий, которые мне не хватает?
  • 2: Что произойдет, если движок для действия отличается от пакета? Это просто не поддерживается, и если да, то почему в обоих есть аргумент движка?

На пакеты приложений ссылаются по их идентификатору. В большинстве примеров идентификатор показан как что-то вроде «DeleteWallsApp» или что-то еще. Однако, если вам действительно нужно несколько пакетов приложений для нескольких версий Revit, то действительно ли вы хотите использовать такие идентификаторы, как «DeleteWallsApp2018» и «DeleteWallsApp2020» и т. Д. c.? У вас не может быть нескольких одинаковых идентификаторов, поэтому это кажется наиболее подходящим способом сделать это. Это правильно?

Связки и действия также упоминаются по их псевдонимам. Если я понимаю, они предназначены для псевдонимов dev / staging / production для тестирования по сравнению с производственным кодом и т. Д. c. Если да, то рекомендуется ли иметь эти псевдонимы для каждого пакета?

Похоже, что много материала для загрузки в множество разных мест, но я думаю, это не так уж плохо, если вы автоматизируете систему. Я просто хочу убедиться, что не упускаю какую-то часть структуры.

1 Ответ

2 голосов
/ 05 мая 2020

Действие может переопределить версию движка, указанную в appbundle. Как и ваши настольные надстройки, appbundle, созданный на Revit 2018, будет работать в Revit 2019 и более поздних версиях, если все API, на которые есть ссылки, совместимы (мы редко устареваем некоторые). Таким образом, у вас может быть один appbundle, созданный на Revit 2018, и несколько activities, ссылающихся на ту же appbundle и более позднюю engine версию, чем ссылки appbundle.

У вас также есть гибкость использования одно действие 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

Поскольку каждый полный идентификатор YourNickname.YourActivity+alias имеет связанную с ним версию действия, и каждый из них, в свою очередь, ссылается на свой соответствующий appbundles с их полный идентификатор, вы можете использовать любую из вышеперечисленных схем, независимо от того, создали ли вы один или несколько appbundles для каждого движка.

Также прочтите больше о aliases и ids здесь: https://forge.autodesk.com/en/docs/design-automation/v3/developers_guide/aliases-and-ids/

...