Example #1
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 ModelessForm(exEvent, handler);
                m_MyForm.Show();
                if (ModelessForm.thisModForm.NotSaveFolder)
                {
                    m_MyForm.TopMost = false;
                }
                else
                {
                    m_MyForm.TopMost = true;
                }
            }
        }
Example #2
0
        /// <summary>
        /// Metodo per l'apertura della VIEW SCELTA
        /// </summary>
        public void SingleOpenView(UIApplication uiapp, string viewName)
        {
            UIDocument uidoc = uiapp.ActiveUIDocument;
            Document   doc   = uidoc.Document;

            FilteredElementCollector viewCollector = new FilteredElementCollector(doc);

            viewCollector.OfClass(typeof(Autodesk.Revit.DB.View));

            //string[] elevations = new string[] { "Exterior", "Interior", "Left", "Right" };

            // Cambia il valore booleano per attestare che la richiesta della view è singola
            _single = true;

            foreach (Autodesk.Revit.DB.View viewElement in viewCollector)
            {
                if (viewElement.Name == viewName)
                {
                    uidoc.RequestViewChange(viewElement);
                    _imageViewed = viewElement.Name;
                    // Chiama la Form
                    modelessForm = App.thisApp.RetriveForm();
                    // Mostra nella combobox la vista attiva
                    modelessForm.AssignValueComboBox();
                    // Salvo ed esco
                    uidoc.SaveAndClose();
                }
            }
        }
Example #3
0
 private void saveForm_FormClosing(Object sender, FormClosingEventArgs e)
 {
     // Inizializza ModelessForm e la attiva
     _modelessForm = App.thisApp.RetriveForm();
     _modelessForm.WakeUp();
     _modelessForm.BringToFront();
 }
Example #4
0
        /// <summary>
        /// Metodo che definisce cosa accade al Salvataggio del nuovo percorso
        /// </summary>
        private void changeSavebutton_Click(object sender, EventArgs e)
        {
            try
            {
                // Mostra la FolderBrowserDialog.
                DialogResult dialogResult = folderBrowserDialog1.ShowDialog();
                if (dialogResult == DialogResult.OK)
                {
                    // Ottiene il nuovo Path della cartellaI mages
                    _newPathImagesFolder = folderBrowserDialog1.SelectedPath;

                    // Scrive il nuovo Path nel Path di default
                    _pathImagesFolder = _newPathImagesFolder;

                    // Chiama il metodo in ModelessForm che imposta il nuovo Path delle immagini
                    ModelessForm.thisModForm.SetNewImagesPath();

                    // Scrive il nuovo Path nel File .json di configurazione
                    Json fileJson = new Json();
                    fileJson.UpdateJson(2, 1, "ImagesFolderPath", _pathImagesFolder);

                    // Chiude questa Form e attiva la Form ModelessForm
                    this.Close();
                    _modelessForm = App.thisApp.RetriveForm();
                    _modelessForm.WakeUp();
                    _modelessForm.BringToFront();
                }
            }
            catch (SecurityException ex)
            {
                MessageBox.Show($"Security error.\n\nError message: {ex.Message}\n\n" +
                                $"Details:\n\n{ex.StackTrace}");
            }
        }
Example #5
0
        private void exitButton_Click(object sender, EventArgs e)
        {
            this.TopMost = false;
            this.Close();

            // Inizializza ModelessForm e la attiva
            _modelessForm = App.thisApp.RetriveForm();
            _modelessForm.WakeUp();
            _modelessForm.BringToFront();
        }
Example #6
0
        /// <summary>
        ///   Costruttore della finestra di dialogo
        /// </summary>
        ///
        public ModelessForm(ExternalEvent exEvent, RequestHandler handler)
        {
            InitializeComponent();
            m_Handler = handler;
            m_ExEvent = exEvent;

            // Riempie l'istanza di questa classe con la Form ModelessForm
            thisModForm = this;

            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) +
                                               @"\OneDrive - BOLD\BOLD Software\Repository for Plugin\GetImages\Files da caricare";

            // Verifica se il Path delle Immagini esista e lo importa
            GetFileTxt();
            if (_imagesPath == "")
            {
                MessageBox.Show("La cartella Images non è stato caricata."
                                + "\nSegui questa procedura per caricarla dal percorso che preferisci.");

                // Apre la Form SaveForm
                OpenSaveForm();
                _notSaveFolder = true;
            }

            // Imposta il TextBox della View Scale
            viewScaleTextBox.Text = Convert.ToString(m_Handler.Scale);

            // Imposta la ComboBox del Detail Level
            foreach (var item in _detailLevels)
            {
                detailLevelComboBox.Items.Add(item);
            }
            _detailLevelEdit         = _detailLevels[0];
            detailLevelComboBox.Text = _detailLevelEdit;

            // Imposta la ComboBox del Visual style
            foreach (var item in _visualStyles)
            {
                visualStyleComboBox.Items.Add(item);
            }
            _visualStyleEdit         = _visualStyles[1];
            visualStyleComboBox.Text = _visualStyleEdit;
        }
Example #7
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("GetImages", "GetImages", thisAssemblyPath, "GetImages_2.Command"))
                is PushButton button)
            {
                // ToolTip mostrato
                button.ToolTip = "Plug-in di esportazione delle View in formato .png";
                // Icona del Button
                button.Image      = GetEmbeddedImage("GetImages_2.Resources.BOLDsft_16.png");
                button.LargeImage = GetEmbeddedImage("GetImages_2.Resources.BOLDsft_32.png");
            }
            ;
            return(Result.Succeeded);
        }
Example #8
0
        /// <summary>
        /// Metodo per l'apertura della view
        /// </summary>
        private void OpenView(UIApplication uiapp)
        {
            UIDocument uidoc = uiapp.ActiveUIDocument;
            Document   doc   = uidoc.Document;

            Autodesk.Revit.DB.View viewActive = doc.ActiveView;

            FilteredElementCollector viewCollector = new FilteredElementCollector(doc);

            viewCollector.OfClass(typeof(Autodesk.Revit.DB.View));

            //string[] elevations = new string[] { "Exterior", "Interior", "Left", "Right" };

            // Cambia il valore booleano per attestare che la richiesta della view è multipla
            _single = false;

            // Cambia la lingua del name in Inglese
            string nameViewActive = viewActive.Name;

            if (nameViewActive == "Exterior" || nameViewActive == "Arrière" || nameViewActive == "Extérieur" || nameViewActive == "Esteriore")
            {
                nameViewActive = "Exterior";
            }
            else if (nameViewActive == "Interior" || nameViewActive == "Avant" || nameViewActive == "Intérieur" || nameViewActive == "Interiore")
            {
                nameViewActive = "Interior";
            }
            else if (nameViewActive == "Left" || nameViewActive == "Gauche" || nameViewActive == "Sinistra")
            {
                nameViewActive = "Left";
            }
            else if (nameViewActive == "Right" || nameViewActive == "Droite" || nameViewActive == "Destra")
            {
                nameViewActive = "Right";
            }

            // Verifica se il file si apre su Exterior e nel caso salta direttamente all'esportazione dell'immagine
            if (nameViewActive == "Exterior" && _imageViewed == "")
            {
                _imageViewed = nameViewActive;
                // Chiama la Form
                modelessForm = App.thisApp.RetriveForm();
                // Mostra nella combobox la vista attiva
                modelessForm.AssignValueComboBox();
                // Salvo ed esco
                uidoc.SaveAndClose();
            }

            foreach (Autodesk.Revit.DB.View viewElement in viewCollector)
            {
                var name = viewElement.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";
                }

                switch (name)
                {
                case "Exterior":
                    if (nameViewActive != "Exterior" && nameViewActive != "Interior" && nameViewActive != "Left" && nameViewActive != "Right")
                    {
                        uidoc.RequestViewChange(viewElement);
                        _imageViewed = name;
                        // Chiama la Form
                        modelessForm = App.thisApp.RetriveForm();
                        // Mostra nella combobox la vista attiva
                        modelessForm.AssignValueComboBox();
                        // Salvo ed esco
                        uidoc.SaveAndClose();
                    }
                    break;

                case "Interior":
                    if (nameViewActive != "Interior" && nameViewActive != "Left" && nameViewActive != "Right")
                    {
                        uidoc.RequestViewChange(viewElement);
                        _imageViewed = name;
                        // Chiama la Form
                        modelessForm = App.thisApp.RetriveForm();
                        // Mostra nella combobox la vista attiva
                        modelessForm.AssignValueComboBox();
                        // Salvo ed esco
                        uidoc.SaveAndClose();
                    }
                    break;

                case "Left":
                    if (nameViewActive != "Left" && nameViewActive != "Right")
                    {
                        uidoc.RequestViewChange(viewElement);
                        _imageViewed = name;
                        // Chiama la Form
                        modelessForm = App.thisApp.RetriveForm();
                        // Mostra nella combobox la vista attiva
                        modelessForm.AssignValueComboBox();
                        // Salvo ed esco
                        uidoc.SaveAndClose();
                    }
                    break;

                case "Right":
                    if (nameViewActive != "Right")
                    {
                        uidoc.RequestViewChange(viewElement);
                        _imageViewed = name;
                        // Chiama la Form
                        modelessForm = App.thisApp.RetriveForm();
                        // Mostra nella combobox la vista attiva
                        modelessForm.AssignValueComboBox();
                        // Salvo ed esco
                        uidoc.SaveAndClose();
                    }
                    break;
                }
            }
        }
Example #9
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;
        }