La classe ‘ExternalCommandData’, premier paramètre de la méthode Execute, défini dans l’interface IExternalCommand, nous donne accès à une multitude d’informations sur la session Revit en cours.
Cette classe permet d’accéder à deux classes qui nous fournissent des informations.
La classe Application (Autodesk.Revit.ApplicationServices.Application) nous donne (entre autre) accès aux propriétés suivantes :
- AllUsersAddinsLocation : le chemin du répertoire contenant les fichiers .addlin pour tous les utilisateurs.
- CurrentUserAddinsLocation : le chemin du répertoire contenant les fichiers .addlin pour l’utilisateur courant.
- FamilyTemplatePath : le chemin du répertoire par défaut contenant les gabarits de famille.
- Language : la langue de la session de Revit en cours.
- UserName : le nom de l’utilisateur de la session de Revit en cours.
- VersionName : le nom de la version de la session de Revit en cours.
- VersionNumber : le numéro de la version de la session de Revit en cours (string).
La classe Document (Autodesk.Revit.DB.Document) nous donne (entre autre) accès aux propriétés suivantes :
- ActiveView : la vue active.
- PathName : le chemin du document sur le disque.
- ProjectInformation : les données du projet.
- Title : le titre du document.
Un exemple d’affichage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // informations sur session en cours [Transaction(TransactionMode.ReadOnly)] public class CommandData : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { UIApplication UiApp = commandData.Application; UIApplication App = UiApp.Application; UIDocument UiDoc = UiApp.ActiveUIDocument; Document Doc = UiDoc.Document; string Langage = App.Language; string Version = App.VersionName; string Titre = Doc.Title; TaskDialog.Show("informations session", "Titre=" + Titre + "\nVersion : " + Version + "(" + Langage + ")"); return Autodesk.Revit.UI.Result.Succeeded; } } |