Le coeur du code est identique à la version ‘commande’, mais je présente ici la manière d’exécuter un code au démarrage (ou à la fermeture) de Revit.
On appel cela une application (‘External application’) en opposition avec une commande (‘External command’).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // Hello World - au demarrage [Transaction(TransactionMode.Manual)] public class HelloWorld : IExternalApplication { public Autodesk.Revit.UI.Result OnShutdown( Autodesk.Revit.UI.UIControlledApplication application) { return Result.Succeeded; } public Autodesk.Revit.UI.Result OnStartup( Autodesk.Revit.UI.UIControlledApplication application) { using (Transaction trans = new Transaction(doc)) { trans.Start("HelloWorld"); Autodesk.Revit.UI.TaskDialog.Show("un titre","Hello World!" ); trans.Commit(); } return Result.Succeeded; } } |
Explication ligne par ligne
lignes 3,16 : on crée une classe qui à une interface IExternalApplication.
lignes 4,6 : on crée une méthode ‘OnShutdown’ qui sera appelée à la fermeture de Revit.
ligne 5 : on retourne la valeur Succeeded (il ne peut pas y avoir d’erreur, on a rien codé !).
lignes 7,14 : on crée une méthode ‘OnStartup’ qui sera appelée au démarrage de Revit.