Autodesk.Revit.UI.ExternalEventRequest是Revit API的一个类,用于处理Revit中的外部事件。
Autodesk.Revit.UI.ExternalEventRequest的构造函数如下:
public ExternalEventRequest(IExternalEventHandler handler);
其中,handler
是一个实现了IExternalEventHandler
接口的对象,用于处理外部事件。
Autodesk.Revit.UI.ExternalEventRequest类提供了以下方法:
public ExternalEvent Raise();
Raise()
方法用于创建一个新的ExternalEvent
对象,并将其与当前的外部事件请求关联。返回值是ExternalEvent
对象。
public ExternalEventRequestRaiseStatus GetRaiseStatus();
GetRaiseStatus()
方法用于获取与当前外部事件请求关联的ExternalEvent
对象的状态。返回值是ExternalEventRequestRaiseStatus
枚举类型:
ExternalEvent
对象没有被引发ExternalEvent
对象已被引发,但尚未被处理ExternalEvent
对象已被引发,并且已被处理下面是一个使用Autodesk.Revit.UI.ExternalEventRequest的示例代码:
public class MyExternalEventHandler : IExternalEventHandler
{
public void Execute(UIApplication app)
{
// 处理外部事件
}
public string GetName()
{
return "MyExternalEventHandler";
}
}
public class MyExternalEventRequest
{
private ExternalEventRequest _request;
public MyExternalEventRequest()
{
var handler = new MyExternalEventHandler();
_request = new ExternalEventRequest(handler);
}
public ExternalEvent Raise()
{
return _request.Raise();
}
public ExternalEventRequestRaiseStatus GetRaiseStatus()
{
return _request.GetRaiseStatus();
}
}
在此示例中,我们创建了一个实现了IExternalEventHandler
接口的类MyExternalEventHandler
来处理外部事件。然后,我们创建了一个名为MyExternalEventRequest
的类,该类包含一个ExternalEventRequest
对象,它与MyExternalEventHandler
对象关联。我们可以使用Raise()
方法来引发外部事件,并使用GetRaiseStatus()
方法来获取ExternalEvent
对象的状态。