如何检查我们是否在设计自动化云上?
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 之间的差异。
您的应用程序的启动方法不同:OnApplicationInitialized
与 OnDesignAutomationReadyEvent
。您可以在其中设置一个标志并从您的插件代码中检查它,cf。例如,Preparing a Revit Add-in for Design Automation.
我正在 运行在 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 之间的差异。
您的应用程序的启动方法不同:OnApplicationInitialized
与 OnDesignAutomationReadyEvent
。您可以在其中设置一个标志并从您的插件代码中检查它,cf。例如,Preparing a Revit Add-in for Design Automation.