为什么我在使用 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 无事可做并因此可以自由与用户交互时调用该事件。
当我点击 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 无事可做并因此可以自由与用户交互时调用该事件。