protected override bool DoUI() { var directory = System.Reflection.Assembly.GetExecutingAssembly().Location; //string directory = System.AppDomain.CurrentDomain.BaseDirectory; //MessageBox.Show(directory); System.IO.Directory.SetCurrentDirectory(directory.Substring(0, directory.LastIndexOf("\\"))); Form = new EarthworkBlockingForm(this.m_app); PickObjectsMouseHook mouseHook = new PickObjectsMouseHook(); DialogResult result = DialogResult.Retry; while ((result = Form.ShowDialog(new Hook.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) { Hooker.DelegateCompletingAction(() => { Form.SelectedElementIds = m_uiDoc.Selection.PickObjects(ObjectType.Element, "选择要添加的构件") .Select(p => m_doc.GetElement(p.ElementId).Id).ToList(); }); Form.FinishElementSelection(); //Hooker Hooker = new Hooker(); //try //{ // Hooker.MouseHookProcedure = new Hooker.HookProc(MouseHookProc); // Hooker.Start(); // Form.SelectedElementIds = m_uiDoc.Selection.PickObjects(ObjectType.Element, "选择要添加的构件") // .Select(p => m_doc.GetElement(p.ElementId).Id).ToList(); // Hooker.Stop(); //} //catch (Exception ex) //{ // Hooker.Stop(); //} //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(); //} } if (Form.ShowDialogType == ShowDialogType.ViewGT6 || Form.ShowDialogType == ShowDialogType.ViewCompletion) { Hooker.DelegateCompletingAction(() => { m_uiDoc.Selection.PickObjects(ObjectType.Element, ""); }); //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 }
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 }