You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
La classe Database représente une base de données de dessin AutoCAD. Elle est le dépôt central pour tous les objets graphiques et non-graphiques dans un dessin, incluant les entités, tables de symboles et dictionnaires.
Namespace
Autodesk.AutoCAD.DatabaseServices
Hiérarchie d'Héritage
System.Object
└─ RXObject
└─ DBObject
└─ Database
Propriétés Clés
Propriétés de Table de Symboles
Propriété
Type
Description
BlockTableId
ObjectId
Obtient l'ObjectId de la BlockTable
LayerTableId
ObjectId
Obtient l'ObjectId de la LayerTable
LinetypeTableId
ObjectId
Obtient l'ObjectId de la LinetypeTable
TextStyleTableId
ObjectId
Obtient l'ObjectId de la TextStyleTable
DimStyleTableId
ObjectId
Obtient l'ObjectId de la DimStyleTable
UcsTableId
ObjectId
Obtient l'ObjectId de la UcsTable
ViewTableId
ObjectId
Obtient l'ObjectId de la ViewTable
ViewportTableId
ObjectId
Obtient l'ObjectId de la ViewportTable
RegAppTableId
ObjectId
Obtient l'ObjectId de la RegAppTable
Propriétés de Dictionnaire
Propriété
Type
Description
NamedObjectsDictionaryId
ObjectId
Obtient le Dictionnaire des Objets Nommés (NOD)
GroupDictionaryId
ObjectId
Obtient le Dictionnaire de Groupes
MLStyleDictionaryId
ObjectId
Obtient le Dictionnaire de Styles Multilignes
LayoutDictionaryId
ObjectId
Obtient le Dictionnaire de Présentations
PlotSettingsDictionaryId
ObjectId
Obtient le Dictionnaire de Paramètres de Tracé
ColorDictionaryId
ObjectId
Obtient le Dictionnaire de Couleurs
MaterialDictionaryId
ObjectId
Obtient le Dictionnaire de Matériaux
VisualStyleDictionaryId
ObjectId
Obtient le Dictionnaire de Styles Visuels
Propriétés d'État Courant
Propriété
Type
Description
CurrentSpaceId
ObjectId
Obtient l'ObjectId de l'espace courant (Objet ou Papier)
Clayer
ObjectId
Obtient/définit le calque courant
Celtype
ObjectId
Obtient/définit le type de ligne courant
Dimstyle
ObjectId
Obtient/définit le style de cote courant
Textstyle
ObjectId
Obtient/définit le style de texte courant
Cmaterial
ObjectId
Obtient/définit le matériau courant
Propriétés de Dessin
Propriété
Type
Description
TileMode
bool
Obtient/définit si TileMode est actif (Espace Objet)
Filename
string
Obtient le chemin complet du fichier dessin
OriginalFileName
string
Obtient le nom de fichier original avant sauvegardes
DwgVersion
DwgVersion
Obtient la version du fichier DWG
LastSavedAsVersion
DwgVersion
Obtient la dernière version enregistrée
Propriétés Système
Propriété
Type
Description
TransactionManager
TransactionManager
Obtient le gestionnaire de transaction pour cette base de données
ObjectContextManager
ObjectContextManager
Obtient le gestionnaire de contexte d'objet
Dimscale
double
Obtient/définit l'échelle de cote
Ltscale
double
Obtient/définit l'échelle de type de ligne
Méthodes Clés
Méthode
Type de Retour
Description
ReadDwgFile(string, FileOpenMode, bool, string)
Database
Lit un fichier DWG dans un nouvel objet Database
SaveAs(string, DwgVersion)
void
Sauvegarde la base de données dans un fichier
Audit(bool, bool)
void
Audite la base de données pour les erreurs
Purge(ObjectIdCollection)
void
Purge les objets inutilisés
GetObjectId(bool, Handle, int)
ObjectId
Obtient un ObjectId depuis un descripteur (handle)
GetAcadDatabase()
IntPtr
Obtient un pointeur vers la AcDbDatabase sous-jacente
using(DatabaseextDb=newDatabase(false,true)){extDb.ReadDwgFile("C:\\Dessins\\Exemple.dwg",FileOpenMode.OpenForReadAndAllShare,true,"");using(Transactiontr=extDb.TransactionManager.StartTransaction()){BlockTablebt=tr.GetObject(extDb.BlockTableId,OpenMode.ForRead)asBlockTable;// Travailler avec base de données externetr.Commit();}}
Databasedb=Application.DocumentManager.MdiActiveDocument.Database;using(Transactiontr=db.TransactionManager.StartTransaction()){ObjectIdCollectionidsToPurge=newObjectIdCollection();// Obtenir objets purgeablesdb.Purge(idsToPurge);if(idsToPurge.Count>0){// Purger les objetsforeach(ObjectIdidinidsToPurge){DBObjectobj=tr.GetObject(id,OpenMode.ForWrite);obj.Erase();}}tr.Commit();}
Exemple 5: Accéder au Dictionnaire des Objets Nommés
using(Transactiontr=db.TransactionManager.StartTransaction()){// Obtenir le Dictionnaire des Objets Nommés (NOD)DBDictionarynod=tr.GetObject(db.NamedObjectsDictionaryId,OpenMode.ForRead)asDBDictionary;ed.WriteMessage("\nEntrées du Dictionnaire d'Objets Nommés :");foreach(DBDictionaryEntryentryinnod){ed.WriteMessage($"\n{entry.Key}");}tr.Commit();}
Exemple 6: Accéder au Dictionnaire de Groupes
using(Transactiontr=db.TransactionManager.StartTransaction()){DBDictionarygroupDict=tr.GetObject(db.GroupDictionaryId,OpenMode.ForRead)asDBDictionary;ed.WriteMessage($"\nNombre de groupes : {groupDict.Count}");foreach(DBDictionaryEntryentryingroupDict){Groupgroup=tr.GetObject(entry.Value,OpenMode.ForRead)asGroup;ed.WriteMessage($"\n Groupe : {entry.Key} - {group.Count} objets");}tr.Commit();}
Exemple 7: Accéder au Dictionnaire de Présentations
using(Transactiontr=db.TransactionManager.StartTransaction()){DBDictionarylayoutDict=tr.GetObject(db.LayoutDictionaryId,OpenMode.ForRead)asDBDictionary;ed.WriteMessage("\nPrésentations dans le dessin :");foreach(DBDictionaryEntryentryinlayoutDict){Layoutlayout=tr.GetObject(entry.Value,OpenMode.ForRead)asLayout;ed.WriteMessage($"\n{layout.LayoutName}");}tr.Commit();}
Exemple 8: Créer une Entrée dans le Dictionnaire d'Objets Nommés
using(Transactiontr=db.TransactionManager.StartTransaction()){DBDictionarynod=tr.GetObject(db.NamedObjectsDictionaryId,OpenMode.ForWrite)asDBDictionary;// Créer un dictionnaire personnaliséstringdictName="MonDictionnaireCustom";if(!nod.Contains(dictName)){DBDictionarycustomDict=newDBDictionary();nod.SetAt(dictName,customDict);tr.AddNewlyCreatedDBObject(customDict,true);ed.WriteMessage($"\nDictionnaire personnalisé créé : {dictName}");}tr.Commit();}
Travailler avec TileMode (Espace Objet/Papier)
Databasedb=Application.DocumentManager.MdiActiveDocument.Database;if(db.TileMode){// Actuellement en Espace Objet}else{// Actuellement en Espace Papier}