Как проверить, находимся ли мы в облаке автоматизации проектирования или нет? - PullRequest
1 голос
/ 14 июля 2020

Я использую плагин для платформы Design Automation на forge, однако я запускаю его и локально для тестирования. Мне нужен способ проверить, работает ли код на кузнице или нет.

При поиске я наткнулся на этот пример: https://forge.autodesk.com/blog/how-generate-dynamic-number-output-design-automation-revit-v3

которые используют if (RuntimeValue.RunOnCloud) однако мне не удалось заставить его работать (и не найти никаких ссылок на него в документации по кузнице).

Как я могу проверить, запущен ли я на кузнице?

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Служба автоматизации проектирования устанавливает специальную переменную окружения DAS_WORKITEM_ID для вашего appbundle кода, чтобы использовать ее в случае необходимости. Учитывая это, вы должны иметь возможность проверить, установлена ​​ли эта переменная, чтобы определить, работает ли ваш код в DA.

    public static string GetWorkitemId()
    {
        return Environment.GetEnvironmentVariable("DAS_WORKITEM_ID");
    }

    public static bool IsRunningInDA()
    {
        return !String.IsNullOrEmpty(GetWorkitemId());
    }

Обратите внимание, что мы рекомендуем использовать один и тот же код для вашего приложения DA и надстройки Desktop Revit DB . Используйте такую ​​тактику с осторожностью и постарайтесь минимизировать различия между надстройкой БД и приложением DA.

0 голосов
/ 16 июля 2020

Способ запуска вашего приложения отличается: OnApplicationInitialized по сравнению с OnDesignAutomationReadyEvent. Вы можете установить в них флаг и проверить это с помощью кода плагина, см. например, Подготовка надстройки Revit для автоматизации проектирования .

...