Beispiel #1
0
        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);
        }
Beispiel #3
0
        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
        }