Exemplo n.º 1
0
        /// <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();
            }
        }
Exemplo n.º 2
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.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;
        }