我已经通过pyRevit使用Revit API了一段时间(因此,使用Python),现在我还需要在代码的某些部分使用C#。
我正在尝试访问由Application类提供的VersionNumber属性。就像我所做的那样,使用pyRevit做到这一点非常简单
app = __revit__.Application
就是这样。我可以在任何地方都可以使用,效果很好。
现在,我看一下说明这一点的C#示例(顺便说一下,我是一名C#初学者),所有示例似乎都表明了相同的处理方式:
UIApplication uiApp = commandData.Application;
Application app = uiApp.Application;
,其中 commandData 是作为 ExternalCommandData 对象作为类的 Execute 方法中的参数传递。
我的问题是:如果我不是在Execute方法中,如何访问commandData?也就是说,如果未将commandData作为参数传递。是否可以像使用Python一样实例化Application对象?怎么样?
非常感谢
Arnaud。
答案 0 :(得分:0)
您是否处于Revit的ExternalCommand
上下文中,是否需要访问UIApplication
。您是正确的,ExternalCommand
是通过commandData
提供的。您也可以从空闲事件中获取它,如下所示:
private static void OnIdling(object sender, IdlingEventArgs e)
{
var app = (UIApplication)sender;
}
也可以从ExternalEventHandler
`Execute方法访问它,如下所示:
public void Execute(UIApplication app)
{
}