private static PickObjectsMouseHook InitMouseHook() { PickObjectsMouseHook mouseHook; try { mouseHook = new PickObjectsMouseHook(); mouseHook.InstallHook(PickObjectsMouseHook.OKModeENUM.Object); } catch { mouseHook = new PickObjectsMouseHook(); mouseHook.InstallHook(PickObjectsMouseHook.OKModeENUM.Object); } return(mouseHook); }
protected override bool DoUI() { Form = new ListForm(this.m_app.ActiveUIDocument); PickObjectsMouseHook mouseHook = new PickObjectsMouseHook(); DialogResult result = DialogResult.Retry; while ((result = Form.ShowDialog(new RevitHandle(Process.GetCurrentProcess().MainWindowHandle))) == DialogResult.Retry) { switch (Form.ShowDialogType) { case ShowDialogType.AddElements_ForDetail: case ShowDialogType.DeleleElements_ForDetail: switch (Form.SubFormType) { case SubFormType.Subsidence: try { mouseHook.InstallHook(); Form.SubFormForSubsidence.SelectedElementIds = m_uiDoc.Selection.PickObjects(ObjectType.Element, "选择要添加的构件") .Select(p => m_doc.GetElement(p.ElementId).Id).ToList(); mouseHook.UninstallHook(); } catch { mouseHook.UninstallHook(); } Form.SubFormForSubsidence.FinishElementSelection(); break; case SubFormType.SkewBack: try { mouseHook.InstallHook(); Form.SubFormForSkewBack.SelectedElementIds = m_uiDoc.Selection.PickObjects(ObjectType.Element, "选择要添加的构件") .Select(p => m_doc.GetElement(p.ElementId).Id).ToList(); mouseHook.UninstallHook(); } catch { mouseHook.UninstallHook(); } Form.SubFormForSkewBack.FinishElementSelection(); break; } break; case ShowDialogType.ViewElementsBySelectedNodes: case ShowDialogType.ViewElementsByAllNodes: case ShowDialogType.ViewCurrentMaxByRed: case ShowDialogType.ViewCurrentMaxByAll: case ShowDialogType.ViewTotalMaxByRed: case ShowDialogType.ViewTotalMaxByAll: case ShowDialogType.ViewCloseWarn: case ShowDialogType.ViewOverWarn: mouseHook.InstallHook(); m_uiDoc.Selection.PickObjects(ObjectType.Element, ""); mouseHook.UninstallHook(); break; } } return(true); }
protected override bool DoUI() { Form = new EarthworkBlockingForm(this.m_app); PickObjectsMouseHook mouseHook = new PickObjectsMouseHook(); DialogResult result = DialogResult.Retry; while ((result = Form.ShowDialog(new RevitHandle(Process.GetCurrentProcess().MainWindowHandle))) == DialogResult.Retry) { if (result == DialogResult.Cancel) { return(false); } if (result == DialogResult.OK) { return(true); } if (Form.ShowDialogType == ShowDialogType.AddElements || Form.ShowDialogType == ShowDialogType.DeleleElements) { try { mouseHook.InstallHook(); Form.SelectedElementIds = m_uiDoc.Selection.PickObjects(ObjectType.Element, "选择要添加的构件") .Select(p => m_doc.GetElement(p.ElementId).Id).ToList(); mouseHook.UninstallHook(); } catch { mouseHook.UninstallHook(); } Form.FinishElementSelection(); } if (Form.ShowDialogType == ShowDialogType.ViewGT6 || Form.ShowDialogType == ShowDialogType.ViewCompletion) { try { mouseHook.InstallHook(); m_uiDoc.Selection.PickObjects(ObjectType.Element, ""); mouseHook.UninstallHook(); } catch { mouseHook.UninstallHook(); } } } return(true); #region 非模态 //try //{ // if (ConfigPathManager.IniProjectDB(this.m_doc)) // { // Form = new EarthworkBlockingForm(this.m_app); // Form.ShowDialog(); // return true; // } // else // return false; //} //catch(Exception ex) //{ // TaskDialog.Show("错误", ex.Message); // return false; //} #endregion }