La majorité des logiciels Autodesk ont cet avantage de vous permettre, si vous le souhaitez, de développer vos propres fonctionnalités par dessus l’outil grâce aux API disponibles. Mais mettre en place votre premier projet .NET nécessite quelques étapes à ne pas rater et nous allons aujourd’hui vous aider à franchir le pas.
Je profite également de ce préambule pour préciser que je ne suis moi-même pas développeur mais que j’ai souvent utilisé le développement sous AutoCAD et AutoCAD Map 3D pour me simplifier la vie et automatiser bon nombre de tâches. Cela implique deux choses :
- Si j’ai réussi, vous le pouvez aussi, même si vous n’êtes pas développeur.
- Les explications dans cet article seront peut-être simplifiées ou certains termes techniques utilisés de manière inexacte pour certains puristes, mais je suis sûr que vous me le pardonnerez.
Programmer sous AutoCAD et Civil 3D
Il existe plusieurs manières d’accéder à AutoCAD et Civil 3D via la programmation pour automatiser des tâches ou bien rajouter des fonctionnalités spécifiques qui n’existent pas de base dans le logiciel.
- LISP : cette méthode est la plus « ancestrale » de toutes mais elle fonctionne toujours. Elle a l’avantage de ne pas nécessiter de nouvelles compilations suivant les versions du logiciel.
- VBA : le développement VBA, en langage Visual Basic, est encore supporté mais plus du tout conseillé depuis l’arrivée du .NET, surtout si vous démarrez de zéro.
- Dynamo : s’il fonctionne depuis Civil 3D, Dynamo permet aussi d’accéder aux outils et objets d’AutoCAD. C’est un outil de programmation visuelle (comprendre : qui ne nécessite pas d’écrire du code) qui est plutôt recommandé pour des petites routines que du développement d’outils plus lourds. On notera qu’il existe également Dynamo pour Revit.
- .NET : c’est ce que nous allons aborder aujourd’hui. Le .NET (à lire « Dot Net ») est la technologie la plus récente de Microsoft qui vous permettra ainsi de voir sur le long terme. C’est le moyen le plus robuste pour créer vos propres outils, et qui offre le plus de possibilités.
Nous n’allons aborder dans cet article que le développement .NET (en langage C#), mais Dynamo est également une bonne option, rapide et performante pour vous faciliter la vie sur AutoCAD ou Civil 3D (on vous conseille fortement le site Primer si vous souhaitez démarrer avec Dynamo).
1 – Installez votre environnement de travail

Pour développer sur AutoCAD et Civil 3D, vous devez en premier lieu installer un environnement de développement appelé IDE. Si vous travaillez sur des versions récentes de logiciels, nous vous conseillons d’utiliser Visual Studio Community 2022. Vous trouverez les liens de téléchargement sur ce site.
Si vous souhaitez travailler sur des versions plus anciennes, vous trouverez sur cette page les informations pour installer la version de Visual Studio qui correspond (ainsi que la version du framework .NET correspondant).
2 – Créez un projet
Lancez Visual Studio et cliquez sur « Créer un nouveau projet » :

Vous devez alors choisir le type de projet. Deux choix s’offrent à vous si vous souhaitez développer une application AutoCAD ou Civil 3D :
- Bibliothèque de classe C#
- Bibliothèque de classe Visual Basic

Lors de la compilation du projet, cela va générer un fichier DLL. C’est ce fichier DLL qui contient les outils que l’on a codé et qui sera chargé dans AutoCAD / Civil 3D.
Par défaut, vos projets sont stockés dans le répertoire suivant : C:\Users\USERNAME\source\repos.

Finalement, choisissez « .NET 8.0 (Prise en charge à long terme) » pour les versions les plus récentes des logiciels, c’est à dire à partir de 2025. Si tout va bien, à ce stade votre projet devrait ressembler à ça :

Note : Dans d’autres cas, pour d’autres usages, vous pouvez utiliser d’autres types de projets comme les Windows Forms (fenêtres d’applications windows classique) par exemple. On notera qu’il sera tout de même possible d’ajouter des fenêtres Windows Forms au projet même si l’on a choisi bibliothèque de classe.
3 – Configurez le débogage
Déboguer signifie tester son code en conditions réelles, en conservant la main sur l’exécution pour monitorer de près, ligne par ligne si besoin, et comprendre d’où vient le problème lorsqu’il y en a. C’est très pratique, voir indispensable !
Dans Visual Studio, lancer le débogage de notre code se fait en appuyant sur F5. Le problème est qu’à ce stade, Visual Studio ne sait pas quel programme il doit éxecuter lors de ce débogage. Il va donc falloir le lui préciser.
Appuyer sur ALT + ENTREE pour accéder au propriétés de votre projet. Allez dans « Deboguer » puis « Profils de lancement de débogage ».

Il faut ensuite créer un nouveau profil de type « Exécutable », puis aller pointer vers le fichier *.exe de votre AutoCAD. Si vous souhaitez lancer Civil 3D, le fichier *.exe sera le même mais il faudra ajouter des arguments de ligne de commande pour préciser que c’est Civil 3D et non AutoCAD que vous souhaitez démarrer :

4 – Ajout des références
Il reste une dernière étape avant de pouvoir vraiment s’attaquer au code : ajouter les références. Les références sont des bibliothèques .NET fournies par Autodesk, qui vont nous permettre d’interagir avec les API AutoCAD et Civil 3D.
Afin d’ajouter des références, il faut aller les chercher dans le répertoire d’installation d’AutoCAD. Pour cela, clic droit sur « Dépendances » puis « Ajouter une référence de projet… »

A partir de là, il faut aller pointer sur les bonnes références DLL. Sans entrer dans le détail, il vous faut ajouter les références suivantes :
- acdbmgd.dll (AutoCAD)
- acmgd.dll (AutoCAD)
- accoremgd.dll (AutoCAD)
- AecBaseMgd.dll (AutoCAD Architecture)
- AeccDbMgd.dll (Civil 3D)

Note : après avoir ajouté les références une fois, vous les retrouverez facilement sous les références récentes sans avoir à les rechercher dans les répertoires.
La dernière manipulation consiste à aller sur chaque référence ajoutée et choisir Copie Locale = Non.

5 – Ecrire son premier bout de code C#
Pour pouvoir utiliser les objets des API AutoCAD ou Civil 3D, il convient de déclarer les bibliothèques avant le namespace en utilisant l’instruction using. Pour la démo, nous n’aurons besoin que de System et Autodesk.AutoCAD.Runtine et Autodesk.AutoCAD.ApplicationServices. Notez que lorsque vous écrivez « using Autodesk. « , Visual Studio vous fait des proposition pour vous faciliter la vie :

Attention, spécificité du C#, on n’oublie pas d’ajouter un point-virgule à la fin de la ligne. Si vous l’oubliez, Visual Studio vous indiquera une erreur par un petit soulignement rouge, et ira même jusqu’à vous dire explicitement qu’il manque un point-virgule.
Nous allons ensuite pouvoir écrire notre premier code à l’intérieur de notre Class qui s’appelle par défaut « Class 1 ». Vous pouvez copier / coller le code suivant :
[CommandMethod("MonTest")]
public void HelloWorld()
{
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nCoucou tout le monde!\n");
}
Voici quelques explications sur ce tout petit bout de code :
CommandeMethodindique à AutoCAD nom de la commande que l’on va lancer pour déclencher la fonction. On va donc taper « MonTest ».- Dans la ligne suivante,
Voidindique que l’on va réaliser des actions sans valeur de retour à récupérer à la fin. Le nom de notre Void est ici « HelloWorld ». - La ligne entre crochet contient notre action en tant que tel. Ici c’est très simple, on va simplement écrire un ligne dans la barre de commande AutoCAD : le message qui va s’afficher sera « Coucou tout le monde ! ».
A ce stade, votre fenêtre Visual Studio devrait ressembler à ça :

Pas de panique si vous n’avez pas ces couleurs, on va l’expliquer un peu plus bas.
6 – Vérifier que tout fonctionne
C’est désormais l’heure de vérité. On va vérifier que tout se passe comme prévu.
Appuyez sur F5 pour lancer le mode débogage. Si tout se passe bien, Civil 3D (ou AutoCAD) devrait se lancer. Vous pouvez alors ouvrir un nouveau dessin vierge. Il faut ensuite charger notre DLL, on va pour cela utiliser la commande NETLOAD et aller pointer dans notre répertoire. Par défaut, il faut aller dans le projet, puis aller chercher le répertoire bin\debug\net8.0. Choisissez votre DLL, puis cliquez sur « Toujours charger ».
Reste alors à lancer notre outil. Rappelez-vous, nous avons choisis le nom de commande « MonTest ». En tapant « Mon », AutoCAD devrait vous proposer « MonTest » dans la liste des propositions :

Si tout va bien, en validant la fonction, vous devriez avoir comme réponse notre texte « Coucou tout le monde ! » qui s’affiche dans la barre de commande comme ceci :

Bravo, vous avez réussi à correctement configurer et lancer votre première routine C# dans AutoCAD / Civil 3D !
Vous êtes désormais très satisfait et souhaitez mettre fin à la session AutoCAD. Le plus simple est de revenir dans Visual Studio et de cliquer sur le carré rouge :

7 – Et pour la suite ?
Et maintenant, le plus dur commence. Afficher des messages dans la barre de commande c’est bien, mais loin d’être suffisant ! Le mieux pour s’entrainer et découvrir les API AutoCAD et Civil 3D est d’avoir un projet concret en tête et d’y aller petit à petit.
Si vous débutez en développement, nous ne pouvons que vous conseiller de suivre un cours sur le C# ou le VB.NET comme sur OpenClassrooms par exemple. Maîtriser les bases est toujours une bonne idée.
Ensuite, sachez que l’intelligence artificielle peut s’avérer très utile pour vous dégrossir le travail et surtout vous expliquer ce qu’elle fait et pourquoi. Elle ne va pas remplacer votre intelligence, mais va vous aider à très facilement trouver les bonnes méthodes et fonctions à utiliser pour arriver à vos fins (voir mon exemple ici).
Autre ressource de choix, le .NET Developer’s Guide d’AutoCAD qui est bourré d’explications et d’exemples en tout genre pour aider à apprendre :

Enfin, les forums sont également une très bonne ressource, surtout pour vous aider lorsque que vous êtes bloqués (l’anglais est la langue privilégiée pour échanger). La communauté est très active et vous sera d’une grande aide !
Astuce : les accolades en C#
Si vous développez en C# plutôt qu’en VB, on ne peut que vous conseiller d’utiliser l’affichage colorisé des paires d’accolades qui vont grandement vous faciliter la lecture du code :

Pour aller plus loin
.NET Developer’s Guide
Mettre à jour son projet .NET Framework vers .NET Core par Gile (voir aussi ce post)
Créer un nouveau projet .NET pour AutoCAD
Quelle version de Visual Studio utiliser ?
Introduction à l’API .NET – Autodesk University 2018
AutoCAD APIs





Répondre à FabFabAnnuler la réponse.