Namespace: Autodesk.AutoCAD.DatabaseServices
Assembly: AcDbMgd.dll
La classe Layout représente une présentation (espace papier ou espace modèle) dans un dessin AutoCAD. Les présentations définissent la taille du papier, les paramètres de traçage et les fenêtres pour organiser et tracer les dessins.
Concept Clé: Chaque dessin a au moins deux présentations : l'espace modèle et une ou plusieurs présentations d'espace papier. Chaque présentation peut avoir ses propres paramètres de traçage et fenêtres.
Object
└─ RXObject
└─ DBObject
└─ PlotSettings
└─ Layout
| Propriété | Type | Description |
|---|---|---|
LayoutName |
string |
Obtient/définit le nom de la présentation |
TabOrder |
int |
Obtient/définit l'ordre d'affichage des onglets |
TabSelected |
bool |
Obtient/définit si l'onglet de présentation est sélectionné |
BlockTableRecordId |
ObjectId |
Obtient l'enregistrement de table de blocs associé |
ModelType |
bool |
Vérifie s'il s'agit de la présentation Modèle |
using Autodesk.AutoCAD.DatabaseServices;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
DBDictionary layoutDict = tr.GetObject(db.LayoutDictionaryId,
OpenMode.ForRead) as DBDictionary;
ed.WriteMessage("\n=== Présentations ===");
foreach (DBDictionaryEntry entry in layoutDict)
{
Layout layout = tr.GetObject(entry.Value, OpenMode.ForRead) as Layout;
ed.WriteMessage($"\n{layout.LayoutName}");
ed.WriteMessage($"\n Ordre Onglet : {layout.TabOrder}");
ed.WriteMessage($"\n Type Modèle : {layout.ModelType}");
}
tr.Commit();
}using (Transaction tr = db.TransactionManager.StartTransaction())
{
DBDictionary layoutDict = tr.GetObject(db.LayoutDictionaryId,
OpenMode.ForWrite) as DBDictionary;
// Créer une nouvelle présentation
Layout layout = new Layout();
layout.LayoutName = "Nouvelle_Présentation";
layout.AddToLayoutDictionary(db, layoutDict.ObjectId);
tr.AddNewlyCreatedDBObject(layout, true);
ed.WriteMessage($"\nPrésentation '{layout.LayoutName}' créée");
tr.Commit();
}using (Transaction tr = db.TransactionManager.StartTransaction())
{
DBDictionary layoutDict = tr.GetObject(db.LayoutDictionaryId,
OpenMode.ForRead) as DBDictionary;
Layout layout = tr.GetObject(layoutDict.GetAt("Nom_Présentation"),
OpenMode.ForWrite) as Layout;
LayoutManager.Current.CurrentLayout = layout.LayoutName;
tr.Commit();
}- Ne Pas Supprimer Modèle: Ne jamais supprimer la présentation Modèle
- Noms Uniques: S'assurer que les noms de présentation sont uniques
- Utiliser LayoutManager: Préférer les méthodes LayoutManager pour les opérations
- Ordre des Onglets: Définir un ordre logique des onglets pour la navigation utilisateur
- Paramètres de Traçage: Configurer les paramètres de traçage par présentation
- PlotSettings - Classe de base pour la configuration de traçage
- LayoutManager - Gère les opérations de présentation
- Viewport - Entité de fenêtre de présentation
- BlockTableRecord - Contient les entités de présentation