如何检查我们是否在设计自动化云上?

How to check if we are on Design Automation cloud or not?

我正在 运行在 Forge 上的设计自动化平台中安装一个插件,但是我也在本地 运行 它进行测试。我想要一种检查代码是否 运行ning on forge 的方法。

搜索我遇到了这个例子: https://forge.autodesk.com/blog/how-generate-dynamic-number-output-design-automation-revit-v3

它使用 if (RuntimeValue.RunOnCloud) 但是我没有设法让它工作(也没有在伪造文档中找到它的任何参考)。

如何检查我是否 运行 在锻造上?

设计自动化服务为您的 appbundle 代码设置了一个特殊的环境变量 DAS_WORKITEM_ID,以便您在需要时使用它。鉴于此,您应该能够检查是否设置了此变量以确定您的代码是否为 运行 in DA.

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

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

请注意,我们建议您对 DA appbundle 和 Desktop Revit DB 插件使用相同的代码。请谨慎使用此类策略,并尽量减少您的 DB 插件和 DA appbundle 之间的差异。

您的应用程序的启动方法不同:OnApplicationInitializedOnDesignAutomationReadyEvent。您可以在其中设置一个标志并从您的插件代码中检查它,cf。例如,Preparing a Revit Add-in for Design Automation.