Revit C# : informations sur session en cours

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;
  } 
}
Fermer le menu