public DimensionEditingForm(Document doc, ExternalEvent exEvent, SaveDimensionEvent handler) { InitializeComponent(); _exEvent = exEvent; _handler = handler; _doc = doc; ModifNotSaved = false; }
protected override void OnFormClosed(FormClosedEventArgs e) { _exEvent.Dispose(); _exEvent = null; _handler = null; base.OnFormClosed(e); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { if (null == _hWndRevit) { Process[] processes = Process.GetProcessesByName("Revit"); if (0 < processes.Length && processes.Any(p => p == Process.GetCurrentProcess())) { IntPtr h = Process.GetCurrentProcess().MainWindowHandle; _hWndRevit = new WindowHandle(h); } } _uiapp = commandData.Application; _uidoc = _uiapp.ActiveUIDocument; _doc = _uidoc.Document; SaveDimensionEvent handler = new SaveDimensionEvent(); _exEvent = ExternalEvent.Create(handler); _def = new DimensionEditingForm(_doc, _exEvent, handler); _def.Show(_hWndRevit); AddModelLineInfosToDataTable(_def); _def.DataGridView.CellDoubleClick += new DataGridViewCellEventHandler(dataGrid_DoubleClick); _uiapp.Application.DocumentChanged += new EventHandler <DocumentChangedEventArgs>(CtrlApp_DocumentChanged); foreach (Autodesk.Windows.RibbonTab tab in Autodesk.Windows.ComponentManager.Ribbon.Tabs) { if (tab.Id == "Modify") { tab.PropertyChanged += PanelEvent; break; } } _def.FormClosed += new FormClosedEventHandler(formClosed); return(Result.Succeeded); }