为什么我在使用 IExternalEventHandler 时不能在 DockablePane 中添加 Select 元素

Why I cant Select element in DockablePane when i use IExternalEventHandler

当我点击 button.i 使用 IExternalEventHandler 时我想要 select 元素,但我不能使用

方法:pickobject/pickobjects,我把方法改成pickPoint处理程序运行成功。

活动

public class ExecuteEvent : IExternalEventHandler
    {
        public string  ElementId { get; set; }
        public void Execute(UIApplication app)
        {
            UIDocument uidoc = app.ActiveUIDocument;
            Autodesk.Revit.DB.Document doc = uidoc.Document;
            Autodesk.Revit.UI.Selection.Selection sel = uidoc.Selection;
            Autodesk.Revit.DB.Reference re = sel.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element);
            Autodesk.Revit.DB.XYZ point = sel.PickPoint("select");
            ElementId = re.GetType().Name;




        }

        public string GetName()
        {
            return "ExecuteEvent";
        }
    }


处理者

 Exc = new ExecuteEvent();
            ExternalHander = ExternalEvent.Create(Exc);

按钮点击

private void Button_Click(object sender, RoutedEventArgs e)
        {
            ExternalHander.Raise();
            SetLabelText(Exc.ElementId);
        }

显然,外部事件处理程序没有为您提供有效的用户界面上下文。要获得这样的上下文,您可能需要订阅 Idling 事件。当 Revit 无事可做并因此可以自由与用户交互时调用该事件。