Un plug-in, ou add-on, est un petit programme capable de s’intégrer dans un navigateur pour en étendre les capacités.

Il existe deux types de plug-in sur REVIT

  • un relatif à un document/projet REVIT seulement présent lorsqu’on travaille sur ce même projet
  • un autre directement intégré à l’application REVIT.

Cet article va détailler une méthode pour créer un plug-in tout simple relatif à un projet. Ce plug-in ouvrira une boîte de dialogue avec écrit à l’intérieur le message “Hello World”.

Étapes de création du plug-in

Pour créer votre plug-in, il va falloir avant tout créer un module relatif à votre document, puis dans ce module, vous écrirez le code qui permettra d’afficher le message. Ce texte va correspondre à la macro.

Création du module HelloWorld

Après avoir lancé l’application REVIT, veuillez créer un document REVIT dans Projets/gabarit architectural. Dans l’onglet Gérer, il se trouve une colonne  nommée Macros. Ouvrez le gestionnaire de macros puis créer un module. Vous le nommerez par exemple “HelloWorld”. Cependant, vous devez savoir que ce nom sera affiché en petit comme titre de votre boîte de dialogue quand elle apparaitra à l’écran.

Choisissez ensuite le langage voulu. Ici, nous avons choisit de coder en C#.

Note: Si vous ne connaissez pas du tout ce langage, nous vous conseillons de lire cet article Introduction au langage de programmation C#

Fenêtre de la création du module HelloWorld

Vous obtenez donc un module avec ce code.

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
namespace HelloWorld
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.DB.Macros.AddInId("B5E4B4C5-C767-4086-A486-BA48A8D64B32")]
public partial class ThisDocument
{
private void Module_Startup(object sender, EventArgs e)
{
}
private void Module_Shutdown(object sender, EventArgs e)
{
}
#region Revit Macros generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(Module_Startup);
this.Shutdown += new System.EventHandler(Module_Shutdown);
}
#endregion
}
}

Note: Les using permettent d’appeler les bibliothèques. C’est grâce à ces bibliothèques qu’on peut utiliser certaines fonctions et procédures. La partie qui commence par #region ne s’affiche que si vous effectuez un double-clique sur le petit bandeau blanc Revit Macros generated code. Vous n’êtes pas obligés de l’afficher.

Création de la macro HelloWorld

    A la fin du module, vous allez rentrer ce code. Vous devez l’écrire juste après le bandeau blanc ou le deuxième #endregion.

public void HelloWorld()
{
TaskDialog td = new TaskDialog("HelloWorld");
td.MainInstruction = "Hello World";
td.Show();
}

Note: Public void permet de créer une fonction qui retourne aucune valeur. Elle doit être suivi d’un nom. Taskdialog td permet d’affecter à la variable td le type  » boîte de dialogue ». Et new TaskDialog(«  ») va permettre de créer cette boîte de dialogue. Vous pouvez mettre n’importe quel nom entre les guillemets. Ce nom sera aussi affiché sur la boîte de dialogue. td.MainInstruction va permettre d’écrire dans cette boîte de dialogue. Vous pouvez bien sûr mettre n’importe quelle phrase. Et enfin, td.Show() va permettre d’afficher la boîte de dialogue lorsque la macro sera exécutée.

Puis compilez le projet. Il faut cliquer sur le bouton avec les flèches vertes en haut dans le bandeau des onglets.

Maintenant, retourner dans le gestionnaire de macros et exécuter la macro que vous venez de créer.

Gestionnaire de macros avec votre module/macro HelloWorld

La boîte de dialogue s’affiche avec votre message.

Message affiché

Pour aller un peu plus loin et vous entrainer à coder en C#, vous pouvez par exemple essayer de personnaliser la couleur de texte ou de la boîte de dialogue, faire superposer des messages…


Annexes

Articles connexes

Catégories : CodeTutoriel

0 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *