dimanche 15 janvier 2017

Utiliser Visual Studio pour créer des API en C# pour Revit

La création d'application avec Dynamo a de grandes qualités mais aussi des limites assez vite atteintes (travaille sur les listes de plusieurs niveaux par exemple).
J'ai donc très vite utilisé le langage Python qui est naturellement supporté par les Nodes de Dynamo. Le langage Python permet de faire énormément d'applications sur Revit (même graphique), mais je me confronte au manque de littérature sur l'utilisation des librairies Revit en Python. J'ai donc trouvé très fastidieux de progressé avec le langage Python.
De plus, à ce stade d'avancement dans mes applications, je veux pouvoir interagir avec le modèle Revit et pour cela avoir a ma disposition de la littérature fournie (cours, Blog, Forums, librairies d'objets et méthodes,...). 
Le logiciel Revit étant créé sous c# (C Sharp), je me tourne naturellement vers ce langage pour aller plus loin dans la programmation d'application pour Revit.
Pour programmer en C#, je choisi d'utiliser Visual Studio Express 2015 (version gratuite).
Les difficultés apparaissent des la première application que je veux créer... Utiliser l’environnement de programmation est fastidieux et la fameuse littérature date un peu et demande donc beaucoup de travail de recherche pour déboguer les cours. 
Cet article à donc pour objectif de tracer les points de blocage que j'ai rencontré et leurs solutions (qui sont souvent très simples après avoir passé des heures à chercher).

Version logiciels utilisés lors de cet article :
 - Revit 2017
 - Dynamo 1.2.1
 - Visual studio expert 2015


Liens qui m'ont été utiles pour progresser :


1) Création d'un projet pour Revit de type librairie : Solution manuelle
Il faut être vigilant sur le type de projet choisi dans la fenêtre de création, la vérification se fait au niveau des références de la deuxième image.

Vérifier après la création du projet que les références soient conforme :

Il faut ensuite ajouter les références concernant Revit : RevitAPI et RevitAPIUI, avec le réglage copie locale sur False dans la fenêtre propriété.

Paramétrer le Déboguage pour les librairies :
Pour déboguer les librairies et créer le fichier .DLL, il faut utiliser 'Générer la solution" qui ne se trouve pas dans le menu déboguer.
Générer la solution par : Ctrl + Maj + B ou bouton droit de la souris sur le projet dans l'explorateur de solution.

Lancer le débogueur en même temps que Revit :
Pour lancer Revit lors du déboguage il faut modifier les réglages ci-dessous:
Visual Studio : Déboguer : Propriétés "projet en cours"

Fournir le lien du fichier Exe de Revit au système :

Créer avec le bloc note de windows le fichier "VotreProgramme.addin" (l'extension doit impérativement être .addin) contenant une copie du texte ci-dessous. Remplacer le texte surligné par le chemin vers le fichier .dll de votre programme (dans le répertoire débug). (Lien vers page anglaise)
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<RevitAddIns>
<AddIn Type="Command">
    <Name>HelloWorld</Name>
    <FullClassName>HelloWorld.HelloWorld</FullClassName>
    <Text>HelloWorld</Text>
    <Description>Show Hello World.</Description>
    <VisibilityMode>AlwaysVisible</VisibilityMode>
    <Assembly>C:\Samples\HelloWorld\HelloWorld\bin\Debug\HelloWorld.dll</Assembly>
    <AddInId>239BD853-36E4-461f-9171-C5ACEDA4E723</AddInId>
    <VendorId>ADSK</VendorId>
    <VendorDescription>Autodesk, Inc, www.autodesk.com</VendorDescription>
  </AddIn>
</RevitAddIns>
Enregistrer le fichier "VotreProgramme.addin" dans le répertoire Addins de Révit.
Modifier l'option de débogage pour éviter l'erreur "Le programme '[764] Revit.exe' s'est arrêté avec le code 0 (0x0)." dans la fenêtre de sortie, de la façon suivante :
 - Outils > options > Débogage > Général > Utiliser le mode de compatibilité managé (sur on).
Pour lancer le débogage, il suffit de taper F5. Revit se lance pendant le débogage...


2) Installation d'Add-in avec la méthode de thebuildingcoder (Lien vers la page en anglais) en automatique.

Le fichier .zip est à télécharger ici : revit2017addinwizardcs0 (1).zip (dernière version pour Revit 2017).
Copier le fichier zip à cet emplacement sur cotre pc (sans le déziper) :
"C:\Users\NomUtilisateur\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#"

Vérifier dans Menu > déboguer > Propriétés du projet en cours : que le fichier lien de la ligne "Démarrer le programme externe" pointe correctement Revit.exe.

Lors de la création d'un nouveau projet on obtient maintenant l'icone Revit 2017. Il faut l'utiliser pour créer un projet Revit :





Aucun commentaire:

Enregistrer un commentaire