Example #1
0
        /// <summary>
        ///   Costruttore della finestra di dialogo
        /// </summary>
        ///
        public TypesSelectorForm(ExternalEvent exEvent, RequestHandler handler)
        {
            InitializeComponent();
            m_Handler = handler;
            m_ExEvent = exEvent;

            thisApp = this;
        }
Example #2
0
        /// <summary>
        ///   Questo metodo crea e mostra una finestra di dialogo non modale, a meno che non esista già.
        /// </summary>
        /// <remarks>
        ///   Il comando esterno lo richiama su richiesta dell'utente finale
        /// </remarks>
        ///
        public void ShowForm(UIApplication uiapp)
        {
            // If we do not have a dialog yet, create and show it
            if (m_MyForm == null || m_MyForm.IsDisposed)
            {
                // Un nuovo gestore per gestire l'invio delle richieste tramite la finestra di dialogo
                RequestHandler handler = new RequestHandler();

                // Evento esterno per la finestra di dialogo da utilizzare (per inviare richieste)
                ExternalEvent exEvent = ExternalEvent.Create(handler);

                // Diamo gli oggetti alla nuova finestra di dialogo.
                // La finestra di dialogo diventa il proprietario responsabile della loro disposizione, alla fine.
                m_MyForm = new TypesSelectorForm(exEvent, handler);
                m_MyForm.Show();
                m_MyForm.TopMost = true;
            }
        }
Example #3
0
        /// <summary>
        /// Implementa l'evento OnStartup
        /// </summary>
        /// <param name="application"></param>
        /// <returns></returns>
        public Result OnStartup(UIControlledApplication application)
        {
            m_MyForm = null; // nessun dialogo ancora necessario; il comando lo porterà

            thisApp = this;  // accesso statico a questa istanza dell'applicazione

            // Metodo per aggiungere un Tab e un RibbonPanel
            RibbonPanel ribbonPanel      = RibbonPanel(application);
            string      thisAssemblyPath = Assembly.GetExecutingAssembly().Location;

            // Creazione del Button da inserire nel Tab
            if (ribbonPanel.AddItem(
                    new PushButtonData("TypesSelector", "TypesSelector", thisAssemblyPath, "TypesSelector.Command"))
                is PushButton button)
            {
                // ToolTip mostrato
                button.ToolTip = "Visualizzatore di Tipologie";
                // Icona del Button
                button.Image      = GetEmbeddedImage("TypesSelector.Resources.BOLDsft_16.png");
                button.LargeImage = GetEmbeddedImage("TypesSelector.Resources.BOLDsft_32.png");
            }
            ;
            return(Result.Succeeded);
        }
Example #4
0
        /// <summary>
        ///   Il metodo principale del gestore di eventi.
        /// </summary>
        /// <remarks>
        ///   Viene chiamato da Revit dopo che è stato generato l'evento esterno corrispondente
        ///   (dal modulo non modale) e Revit ha raggiunto il momento in cui potrebbe
        ///   chiamare il gestore dell'evento (cioè questo oggetto)
        /// </remarks>
        ///
        public void Execute(UIApplication uiapp)
        {
            try
            {
                switch (Request.Take())
                {
                case RequestId.None:
                {
                    return;          // no request at this time -> we can leave immediately
                }

                case RequestId.Initial:
                {
                    //// Assegnazione del nome del View Template
                    //_nameViewTemplate = "3D - Curtain Wall LOD200(Blank)";
                    // Chiama il metodo che cattura tutti i Curtain Panels
                    _elements = GetElementsfromDb(uiapp);
                    // Chiama i metodi per il riempimento delle liste del UTI e del PTI
                    GetListUTI(uiapp, _elements);
                    GetListPTI(uiapp, _elements);
                    // Chiama i metodi di riempimento dei DataGridView
                    _typesSelectorForm = App.thisApp.RetriveForm();
                    _typesSelectorForm.SetDataGridViewUTI();
                    _typesSelectorForm.SetDataGridViewPTI();
                    // Chiama i metodi che cancellano le selezioni automatiche nei DataGridView
                    _typesSelectorForm.clearSelection_dataGridView1();
                    _typesSelectorForm.clearSelection_dataGridView2();
                    // Chiama il metodo che imposta il View Template
                    ApplyNewViewtemplate(uiapp, 0);
                    break;
                }

                case RequestId.UTI:
                {
                    // Chiama la lista degli elementi selezionati nel DataGridView1
                    _typesSelectorForm = App.thisApp.RetriveForm();
                    _elementListUTI    = _typesSelectorForm.ElementList;
                    _elementsListUTI   = _typesSelectorForm.ElementsList;
                    if (_elementListUTI.Count != 0)
                    {
                        ChoiceOfParameterAndChangeColor(uiapp, _elementListUTI);
                    }
                    else if (_elementsListUTI.Count != 0)
                    {
                        ChangeColorOfAllPanels(uiapp, _elementsListUTI);
                    }
                    // Cancella il contenuto delle liste
                    _elementListUTI.Clear();
                    _elementsListUTI.Clear();
                    break;
                }

                case RequestId.PTI:
                {
                    // Chiama la lista degli elementi selezionati nel DataGridView2
                    _typesSelectorForm = App.thisApp.RetriveForm();
                    _elementListPTI    = _typesSelectorForm.ElementList;
                    _elementsListPTI   = _typesSelectorForm.ElementsList;
                    if (_elementListPTI.Count != 0)
                    {
                        ChoiceOfParameterAndChangeColor(uiapp, _elementListPTI);
                    }
                    else if (_elementsListPTI.Count != 0)
                    {
                        ChangeColorOfAllPanels(uiapp, _elementsListPTI);
                    }
                    // Cancella il contenuto delle liste
                    _elementListPTI.Clear();
                    _elementsListPTI.Clear();
                    break;
                }

                case RequestId.AllUTI:
                {
                    // Chiama la lista di tutti gli unit Type Identifier
                    _typesSelectorForm = App.thisApp.RetriveForm();
                    _elementListAllUTI = _typesSelectorForm.ElementsList;
                    // Chiama il metodo che cambia il colore di tutti i pannelli
                    ChangeColorOfAllPanels(uiapp, _elementListAllUTI);
                    // RipuChangeColorOfAllPanelslisce la lista
                    _elementListAllUTI.Clear();
                    break;
                }

                case RequestId.AllPTI:
                {
                    // Chiama la lista di tutti gli unit Type Identifier
                    _typesSelectorForm = App.thisApp.RetriveForm();
                    _elementListAllPTI = _typesSelectorForm.ElementsList;
                    // Chiama il metodo che cambia il colore di tutti i pannelli
                    ChangeColorOfAllPanels(uiapp, _elementListAllPTI);
                    // Ripulisce la lista
                    _elementListAllPTI.Clear();
                    break;
                }

                case RequestId.Cancel:
                {
                    // Riporta i colori al Bianco
                    ChangeColorToBlank(uiapp);
                    // Chiama i metodi che cancellano le selezioni automatiche nei DataGridView
                    _typesSelectorForm = App.thisApp.RetriveForm();
                    _typesSelectorForm.clearSelection_dataGridView1();
                    _typesSelectorForm.clearSelection_dataGridView2();
                    break;
                }

                case RequestId.Esc:
                {
                    // Cancella tutte le selezioni fatte finora
                    CancelAllChanges(uiapp);
                    //// Assegnazione del nome del View Template
                    //_nameViewTemplate = "3D - Curtain Wall LOD300(AbacoGlass)";
                    // Chiama il metodo che imposta il View Template
                    ApplyNewViewtemplate(uiapp, -1);
                    //// Cambia lo stile di visualizzazione
                    //ChangeVisualStyle(uiapp);
                    // Chiude la finestra di dialogo
                    _typesSelectorForm = App.thisApp.RetriveForm();
                    _typesSelectorForm.FormClose();
                    break;
                }

                default:
                {
                    // Una sorta di avviso qui dovrebbe informarci di una richiesta imprevista
                    break;
                }
                }
            }
            finally
            {
                App.thisApp.WakeFormUp();
                App.thisApp.ShowFormTop();
            }

            return;
        }