Votre première macro VSTA avec Revit

Autodesk Revit propose une interface de programmation (Application Programming Interface ou API) qui permet d'automatiser certaines tâches. L'approche la plus simple pour développer un programme consiste à utiliser VSTA (Visual Studio Tools for Applications) qui est le successeur de VBA (Visual Basic for Application) et qui est disponible dans Revit depuis la version 2009.

Note : depuis la version 2013 de Revit, VSTA a été remplacé par SharpDevelop.

Pour accéder à l'Editeur de Développement Intégré (EDI ou IDE en anglais), cliquez sur le premier bouton du panneau Macros de l'onglet Gérer du ruban.

Accéder à VSTA dans Revit

Le gestionnaire de macros doit s'afficher :

Accéder à VSTA dans Revit

Cliquez sur le bouton Module dans le groupe Créer.

Entrez MyModule comme nom de module. Pour le langage, vous avez le choix entre VB.NET ou C#. VB.NET est une évolution du Visual Basic. Si vous avez déjà eu l'occasion de programmer avec ce dernier, vous retrouverez plus facilement vos marques avec VB.NET. Sinon, C# est le langage majeur de la plateforme .NET, il a une syntaxe proche du C et il y a ma préférence car je le trouve moins verbeux que VB.NET.

Une fois que le module a été créé, il doit apparaître dans la liste des macros. Sélectionnez le, puis cliquez sur le bouton Macro dans le groupe Créer pour créer une macro dans ce module. Nommez votre macro HelloWorld, puis cliquez sur OK. L'environnement de développement doit alors apparaître.

C# :

Juste après la ligne using System;, saisissez le code suivant :

using Autodesk.Revit.UI;

Ce code permet d'importer la classe TaskDialog qui va nous servir à afficher un message. Ajoutez alors le code suivant dans la méthode HelloWorld :

public void HelloWorld()
{
    TaskDialog td = new TaskDialog("Coucou");
    td.MainInstruction = "Coucou tout le monde !";
    td.Show();
}

On crée d'abord un objet de type TaskDialog en passant dans le constructeur la chaîne de caractère qui va être utilisée comme titre de la boite de dialogue, puis on définit la propriété MainInstruction qui correspond au contenu de la boite de dialogue. On affiche ensuite en appelant la méthode Show.

En programmation orientée objet, une méthode désigne une fonction propre à un objet, une propriété est un élément de description d'un objet et une classe déclare des propriétés communes à un ensemble d'objets.

VB.NET :

Ajoutez en haut du fichier :

Imports Autodesk.Revit.UI

Puis dans la méthode HelloWorld :

Public Sub HelloWorld()
    Dim td As New TaskDialog("Coucou")
    td.MainInstruction = "Coucou tout le monde !"
    td.Show()
End Sub

Cliquez ensuite sur Générer > Générer MyModule dans le menu déroulant. Visual Studio vous affichera alors peut-être des erreurs. Si c'est le cas, vérifiez attentivement le code que vous avez entré.

Repassez ensuite sur la fenêtre Revit, sélectionnez votre macro HelloWorld dans le Gestionnaire de macros et cliquez sur le bouton Exécuter. La fenêtre suivante doit s'afficher :

Hello World avec VSTA dans Revit

Félicitations, vous venez de créer votre 1ère macro Revit avec VSTA !

Etiquettes:

Ajouter un commentaire