/// <summary> /// Metodo che chiude il documento attivo /// </summary> /// <remarks> /// </remarks> /// <param name="uiapp">L'oggetto Applicazione di Revit</param> private void CloseDocByCommand(UIApplication uiapp) { if (uiapp.ActiveUIDocument.Document != null) { Document doc = uiapp.ActiveUIDocument.Document; // Dà il comando di chiusura del documento aperto RevitCommandId closeDoc = RevitCommandId.LookupPostableCommandId( PostableCommand.Close); uiapp.PostCommand(closeDoc); // Assegno alla comboBox della View il valore predefinito modelessForm.AssignValueComboBoxDefault(); } }
/// <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.File: { // Cancella i file modificati DeleteFileModified(uiapp); // Recupera il percorso delle immagini _images_path = ModelessForm.thisModForm.ImagesPath; // Chiama la Form modelessForm = App.thisApp.RetriveForm(); // Assegno alla comboBox della View il valore predefinito modelessForm.AssignValueComboBoxDefault(); // Ottiene il Path del file da importare _path = modelessForm.GetPath(); // Definisce il nome del path _pathName = Path.GetFileNameWithoutExtension(_path); // Apre il file selezionato if (_path != "") { OpenFile(uiapp, _path); // Scrive nel TextBox l'ultima operazione effettuata modelessForm.LastFileOpened(); // Estrae il percorso della Directory del _path _pathDirectoryName = Path.GetDirectoryName(_path); // Assegna al valore booleano di controllo un valore true _newPathFamily = true; } _pathOld = _path; break; } case RequestId.View: { // Apro la vista selezionata OpenView(uiapp); break; } case RequestId.SingleView: { // Chiama la Form modelessForm = App.thisApp.RetriveForm(); // Assegno alla comboBox della View il valore predefinito _imageRequest = modelessForm.ViewStringRequest(); // Apro la vista selezionata SingleOpenView(uiapp, _imageRequest); break; } case RequestId.Export: { // Recupera la view attiva UIDocument uidoc = uiapp.ActiveUIDocument; Document doc = uidoc.Document; Autodesk.Revit.DB.View viewActive = doc.ActiveView; var name = viewActive.Name; // Cambia la lingua del name in Inglese if (name == "Exterior" || name == "Arrière" || name == "Extérieur" || name == "Esteriore") { name = "Exterior"; } else if (name == "Interior" || name == "Avant" || name == "Intérieur" || name == "Interiore") { name = "Interior"; } else if (name == "Left" || name == "Gauche" || name == "Sinistra") { name = "Left"; } else if (name == "Right" || name == "Droite" || name == "Destra") { name = "Right"; } // Esegue l'esportazione se la view attiva è una di queste if (name == "Exterior" || name == "Interior" || name == "Right" || name == "Left") { // Chiama la Form modelessForm = App.thisApp.RetriveForm(); // Richiama il valore della View Scale if (_scale != modelessForm.ScaleView) { int valueScale1 = modelessForm.ScaleView; if (valueScale1 != _scale && valueScale1 != 0) { _scale = valueScale1; } // Cambio la scala della vista attiva ChangeScale(uiapp, _path); } if (_detailLevelControl != modelessForm.DetailLevel) { // Cambio il livello di dettaglio della vista attiva ChangeDetailLevel(uiapp, _path); } if (_visualStyleControl != modelessForm.VisualStyle) { // Cambio il livello di dettaglio della vista attiva ChangeVisualStyle(uiapp, _path); } if (_toSave > 0) { // Salvo le modifiche effettuate sulla vista SaveChanges(uiapp); } // Esporta la View attiva ExportViewActive(uiapp, viewActive); // Mostra nel TextBox l'ultima view esportata modelessForm.LastViewExported(); } break; } case RequestId.ViewScaleId: // Chiama la Form modelessForm = App.thisApp.RetriveForm(); // Cattura il valore che viene dalla Form modelessForm.ViewScaleTextBox(); // Richiama il valore della View Scale int valueScale2 = modelessForm.ScaleView; if (valueScale2 != _scale && valueScale2 != 0) { _scale = valueScale2; } // Cambio la scala della vista attiva ChangeScale(uiapp, _path); // Salvo le modifiche effettuate sulla vista SaveChanges(uiapp); _toSave = -1; break; case RequestId.DetailLevelId: // Chiama la Form modelessForm = App.thisApp.RetriveForm(); // Cattura il valore che viene dalla Form _detailLevelControl = modelessForm.DetailLevelComboBox(); // Cambio il livello di dettaglio della vista attiva ChangeDetailLevel(uiapp, _path); // Salvo le modifiche effettuate sulla vista SaveChanges(uiapp); _toSave = -1; break; case RequestId.VisualStyleId: // Chiama la Form modelessForm = App.thisApp.RetriveForm(); // Cattura il valore che viene dalla Form _visualStyleControl = modelessForm.VisualStyleComboBox(); // Cambio il livello di dettaglio della vista attiva ChangeVisualStyle(uiapp, _path); // Salvo le modifiche effettuate sulla vista SaveChanges(uiapp); _toSave = -1; break; case RequestId.Delete: DeleteFileModified(uiapp); MessageBox.Show("Hai cancellato i file modificati."); break; case RequestId.Esc: { // Chiama la Form modelessForm = App.thisApp.RetriveForm(); // Chiude la Form modelessForm.CloseForm(); // Chiude il documento .rfa ancora aperto if (_path.Contains(".rfa")) { CloseDocByCommand(uiapp); } break; } default: { // Una sorta di avviso qui dovrebbe informarci di una richiesta imprevista break; } } } finally { App.thisApp.WakeFormUp(); App.thisApp.ShowFormTop(); } return; }