# 外部事件
介绍
扩展包提供了一个常规的外部事件服务的接口,您可以直接在 有效上下文 中进行初始化
# 初始化外部事件
如上所说,外部事件的初始化必须在 有效上下文 , 其中包括外部命令或者外部应用等 Revit 可执行过程的代码块中。
IExternalEventService service = new ExternalEventService();
# 发送命令
服务实现了最基本的回调函数,在外部事件被执行的时候,将会执行委托
service.PostCommand((uiapp)=>{
//todo
})
# 发送异步命令
当前服务支持发送异步的命令,满足程序在代码执行顺序和语义上的需求
await service.PostCommandAsync((uiapp)=>{
//todo
})
扩展包也支持具有返回值的异步
List<Wall> walls = await service.PostCommandAsync<List<Wall>>((uiapp)=>{
Document document = uiapp.UIDocument.Document;
return document.GetElement<Wall>();
})