1.问题场景
如何监控到Revit中选中构件的变化呢?Revit中是否有相应的事件钩子呢?
有:SelectionChanged事件
当Revit选择集发生改变时该事件出发,只需要挂接相应的事件处理器即可。
2.代码实现
订阅事件
public Autodesk.Revit.UI.Result OnStartup(UIControlledApplication application)
{
// subscribe event
application.SelectionChanged += new EventHandler<SelectionChangedEventArgs>(SelectionChangedHandler);
return Autodesk.Revit.UI.Result.Succeeded;
}
选择集改变事件处理器
private void SelectionChangedHandler(Object sender, SelectionChangedEventArgs args)
{
// The document associated with the event.
Document doc = args.GetDocument();
// ... your code
}