/// <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; }