/// <summary>
        /// Méthode interne.
        /// Initialiser l'objet eDessin.
        /// </summary>
        /// <param name="Modele"></param>
        /// <returns></returns>
        internal Boolean Init(eModele Modele)
        {
            Log.Methode(cNOMCLASSE);

            if ((Modele != null) && Modele.EstInitialise && (Modele.TypeDuModele == TypeFichier_e.cDessin))
            {
                Log.Message(Modele.FichierSw.Chemin);

                _Modele = Modele;
                _SwDessin = Modele.SwModele as DrawingDoc;
                _EstInitialise = true;
                _Modele.SwModele.Extension.UsePageSetup = (int)swPageSetupInUse_e.swPageSetupInUse_DrawingSheet;
            }
            else
            {
                Log.Message("\t !!!!! Erreur d'initialisation");
            }

            return _EstInitialise;
        }
        /// <summary>
        /// Méthode interne
        /// Initialise l'objet GestEquations
        /// </summary>
        /// <param name="SwGestionnaire"></param>
        /// <param name="Modele"></param>
        /// <returns></returns>
        internal Boolean Init(EquationMgr SwGestionnaire, eModele Modele)
        {
            Log.Methode(cNOMCLASSE);

            if ((SwGestionnaire != null) && (Modele != null) && Modele.EstInitialise)
            {
                _SwGestEquations = SwGestionnaire;
                _Modele = Modele;
                _EstInitialise = true;
            }
            else
            {
                Log.Message("!!!!! Erreur d'initialisation");
            }

            return _EstInitialise;
        }
        /// <summary>
        /// Méthode interne.
        /// Initialiser l'objet ExtFeuille.
        /// </summary>
        /// <param name="SwFeuille"></param>
        /// <param name="Modele"></param>
        /// <returns></returns>
        internal Boolean Init(Sheet SwFeuille, eModele Modele)
        {
            Log.Methode(cNOMCLASSE);

            if ((SwFeuille != null) && (Modele != null) && Modele.EstInitialise && (Modele.TypeDuModele == TypeFichier_e.cDessin))
            {
                _Dessin = Modele.Dessin;
                _SwFeuille = SwFeuille;

                Log.Message(this.Nom);
                _EstInitialise = true;
            }
            else
            {
                Log.Message("!!!!! Erreur d'initialisation");
            }
            return _EstInitialise;
        }
        /// <summary>
        /// Renvoi le modele en cours d'edition
        /// </summary>
        /// <returns></returns>
        public eModele ModeleEnCoursEdition()
        {
            Log.Methode(cNOMCLASSE);
            eModele pModeleActif = this.Modele();
            eModele pModeleEdite = new eModele();
            if (pModeleActif.EstInitialise && (pModeleActif.TypeDuModele == TypeFichier_e.cAssemblage))
            {
                if (pModeleEdite.Init(pModeleActif.Assemblage.SwAssemblage.GetEditTarget(), this))
                {
                    eComposant pComposant = new eComposant();
                    if (pComposant.Init(pModeleActif.Assemblage.SwAssemblage.GetEditTargetComponent(), pModeleEdite))
                    {
                        pModeleEdite.Composant = pComposant;
                        return pModeleEdite;
                    }

                }
            }

            return pModeleActif;
        }
        /// <summary>
        /// Méthode interne.
        /// Initialiser l'objet eObjet.
        /// </summary>
        /// <param name="Modele"></param>
        /// <param name="SwObjet"></param>
        /// <param name="TypeDeObjet"></param>
        /// <returns></returns>
        internal Boolean Init(eModele Modele, dynamic SwObjet, swSelectType_e TypeDeObjet)
        {
            Log.Methode(cNOMCLASSE);

            if ((SwObjet != null) && (Modele != null) && Modele.EstInitialise)
            {
                _Modele = Modele;
                _TypeObjet = TypeDeObjet;
                _SwObjet = SwObjet;
                _EstInitialise = true;
            }
            else
            {
                Log.Message("!!!!! Erreur d'initialisation");
            }
            return _EstInitialise;
        }
        /// <summary>
        /// Creer un document
        /// </summary>
        /// <param name="Dossier"></param>
        /// <param name="NomDuDocument"></param>
        /// <param name="TypeDeDocument"></param>
        /// <param name="Gabarit"></param>
        /// <returns></returns>
        public eModele CreerDocument(String Dossier, String NomDuDocument, TypeFichier_e TypeDeDocument, String Gabarit = "")
        {
            eModele pModele = new eModele();
            ModelDoc2 pSwModele;

            String pCheminGabarit = "";

            if (String.IsNullOrEmpty(Gabarit))
            {
                switch (TypeDeDocument)
                {
                    case TypeFichier_e.cAssemblage:
                        pCheminGabarit = _SwSW.GetUserPreferenceStringValue((int)swUserPreferenceStringValue_e.swDefaultTemplateAssembly);
                        break;
                    case TypeFichier_e.cPiece:
                        pCheminGabarit = _SwSW.GetUserPreferenceStringValue((int)swUserPreferenceStringValue_e.swDefaultTemplatePart);
                        break;
                    case TypeFichier_e.cDessin:
                        pCheminGabarit = _SwSW.GetUserPreferenceStringValue((int)swUserPreferenceStringValue_e.swDefaultTemplateDrawing);
                        break;
                }
            }
            else
            {
                String[] pTabCheminsGabarit = _SwSW.GetUserPreferenceStringValue((int)swUserPreferenceStringValue_e.swFileLocationsDocumentTemplates).Split(';');

                foreach (String Chemin in pTabCheminsGabarit)
                {
                    pCheminGabarit = Chemin + @"\" + Gabarit + CONSTANTES.InfoFichier(TypeDeDocument, InfoFichier_e.cGabarit);
                    if (File.Exists(pCheminGabarit))
                        break;
                }
            }

            int Format = 0;
            Double Lg = 0;
            Double Ht = 0;

            if (TypeDeDocument == TypeFichier_e.cDessin)
            {
                Double[] pTab = _SwSW.GetTemplateSizes(pCheminGabarit);
                Format = (int)pTab[0];
                Lg = pTab[1];
                Ht = pTab[2];
            }

            Log.Message(Format.ToString());
            Log.Message(Lg.ToString());
            Log.Message(Ht.ToString());

            pSwModele = _SwSW.NewDocument(pCheminGabarit, Format, Lg, Ht);
            pSwModele.Extension.SaveAs(Dossier + @"\" + NomDuDocument + CONSTANTES.InfoFichier(TypeDeDocument),
                                        (int)swSaveAsVersion_e.swSaveAsCurrentVersion,
                                        (int)swSaveAsOptions_e.swSaveAsOptions_Silent,
                                        null,
                                        ref Erreur,
                                        ref Warning);

            if (pModele.Init(pSwModele, this))
                return pModele;

            return null;
        }
        /// <summary>
        /// Renvoi le modele actif ou ouvre le fichier à partir du chemin passé en parametre.
        /// Le fichier est ouvert en mode silencieux, il ne devrait donc pas être visible.
        /// </summary>
        /// <param name="Chemin"></param>
        /// <returns></returns>
        public eModele Modele(String Chemin = "")
        {
            Log.Methode(cNOMCLASSE);

            eModele pModele = new eModele();
            if (String.IsNullOrEmpty(Chemin))
            {
                Log.Message("Document actif");
                ModelDoc2 pModeleActif = _SwSW.ActiveDoc;
                pModele.Init(pModeleActif, this);
                pModele.ReinitialiserComposant();
            }
            else
            {
                Log.Message("Ouvrir " + Chemin);
                pModele.Init(Ouvrir(Chemin), this);
            }

            if (pModele.EstInitialise)
                return pModele;
            else
                return null;
        }
        /// <summary>
        /// Méthode interne.
        /// Initialiser l'objet ExtVue.
        /// </summary>
        /// <param name="SwVue"></param>
        /// <param name="Modele"></param>
        /// <returns></returns>
        internal Boolean Init(View SwVue, eModele Modele)
        {
            Log.Methode(cNOMCLASSE);

            if ((SwVue != null) && (Modele != null) && Modele.EstInitialise && (Modele.TypeDuModele == TypeFichier_e.cDessin))
            {
                eFeuille Feuille = new eFeuille();
                if (Feuille.Init(SwVue.Sheet, Modele.Dessin))
                {
                    _Feuille = Feuille;
                    _SwVue = SwVue;

                    Log.Message(this.Nom);
                    _EstInitialise = true;
                }
                else
                {
                    Log.Message("!!!!! Erreur d'initialisation");
                }
            }
            return _EstInitialise;
        }
        /// <summary>
        /// Méthode interne.
        /// Initialiser l'objet pièce.
        /// </summary>
        /// <param name="Modele"></param>
        /// <returns></returns>
        internal Boolean Init(eModele Modele)
        {
            Log.Methode(cNOMCLASSE);

            if ((Modele != null) && Modele.EstInitialise && (Modele.TypeDuModele == TypeFichier_e.cPiece))
            {
                Log.Message(Modele.FichierSw.Chemin);

                _Modele = Modele;
                _SwPiece = Modele.SwModele as PartDoc;
                _EstInitialise = true;
            }
            else
            {
                Log.Message("!!!!! Erreur d'initialisation");
            }

            return _EstInitialise;
        }
        /// <summary>
        /// Méthode interne.
        /// Initialiser l'objet GestDeConfigurations.
        /// </summary>
        /// <param name="Modele"></param>
        /// <returns></returns>
        internal Boolean Init(eModele Modele)
        {
            Log.Methode(cNOMCLASSE);

            if ((Modele != null) && Modele.EstInitialise)
            {
                _Modele = Modele;
                _EstInitialise = true;
            }
            else
            {
                Log.Message("!!!!! Erreur d'initialisation");
            }

            return _EstInitialise;
        }
        /// <summary>
        /// Méthode interne
        /// Initialise l'objet GestDeProprietes
        /// </summary>
        /// <param name="SwGestionnaire"></param>
        /// <param name="Modele"></param>
        /// <returns></returns>
        internal Boolean Init(CustomPropertyManager SwGestionnaire, eConfiguration Configuration)
        {
            Log.Methode(cNOMCLASSE);

            if ((SwGestionnaire != null) && (Configuration != null) && Configuration.EstInitialise)
            {
                _SwGestDeProprietes = SwGestionnaire;
                _Configuration = Configuration;
                _Modele = Configuration.Modele;
                _EstInitialise = true;
            }
            else
            {
                Log.Message("!!!!! Erreur d'initialisation");
            }

            return _EstInitialise;
        }
        public Boolean Init(eModele Modele, String NomMacro = "")
        {
            if ((Modele != null) && (Modele.EstInitialise) && _ACTIF)
            {
                _Dossier = Modele.FichierSw.NomDuDossier;

                _Fichier = "Log" + " _Macro " + NomMacro + " _Fichier " + Modele.FichierSw.NomDuFichierSansExt + ".txt";

                _Chemin_Fichier = Path.Combine(_Dossier, _Fichier);

                File.Delete(_Chemin_Fichier);

                StreamWriter pFichierLog = new StreamWriter(_Chemin_Fichier, false, System.Text.Encoding.Unicode);

                pFichierLog.WriteLine(Date() + " -> Start Log");

                pFichierLog.Close();

                _INIT = true;
            }

            return _INIT;
        }