Bonsoir,
Débutant en .net8, je rencontre un problème dans Visual Studio 2022, en C# et avec la dll 'AeecDbMgd.dll'.
Cette dll est nécessaire pour accéder à la class 'CivilDocument'
J’ai développé un code très simple qui devrait me permettre d’afficher les identifiants des réseaux sous pression que j’ai créer dans un fichier DWG (Civil 3D).
using Autodesk.Civil.ApplicationServices;
using Autodesk.Civil.DatabaseServices;
using Autodesk.Civil.Runtime;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.Civil.Settings;
using System.Linq;
Console.WriteLine("Starting AutoCAD commands...");
// Obtient le document civil actif
CivilDocument civilDoc = CivilApplication.ActiveDocument;
// Appelle la méthode pour obtenir les IDs des réseaux de tuyaux sous pression
ObjectIdCollection networksIds = civilDoc.GetPressurePipeNetworkIds();
foreach (ObjectId networkId in networksIds)
{
Console.WriteLine(networkId);
}
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
Dans les Assemblys, j’ai ajouté les dll suivantes :
Et la dll est bien présente selon son chemin d’accès :
C:\Program Files\Autodesk\AutoCAD 2025\C3D\AeccDbMgd.dll
Quand je lance l’exécution du programme, j’obtiens ce message d’erreur :
Nous avons aussi essayé avec la même dll mais avec la version Civil 3D 2024, ainsi que plusieurs package ou elle est présente. Nous avons aussi essayé de la copier en local, mais rien n’y fait, j’ai toujours ce message d’erreur.
Une idée ?
Merci d’avance
Résolu ! Accéder à la solution.
Résolu par O_Eckmann. Accéder à la solution.
Bonjour @jb.boschung ,
A priori, c'est un application .EXE externe qui doit lancer Civil et le piloter depuis l'extérieur? Ce n'est pas une DLL qui se charge sous Civil 3D?
Normalement si l'application lance C3D, puis ouvre ton DWG, cela devrait normalement charger la DLL nécessaire.
J'ai toujours développé des plug-ins qui se chargent sous AutoCAD, donc je n'ai jamais été confronté à ce problème.
Pourquoi une appli externe qui lance C3D, plutôt qu'un plug-in qui se chargerait sous Civil, puisque la machine sur laquelle l'appli tourne a besoin que Civil soit installé?
Olivier Eckmann
Bonjour et merci pour votre retour.
Alors effectivement comme je l'ai mentionné, je débute en .net, en c# et dans Visual Studio 2022, et je ne savais pas que le type d'exécutable et le fait de lancer Civil 3D dans l'appli ou au contraire, charger le plug-in dans Autocad/Civil 3D avait une importance. J'aurai appris quelque chose.
Je pense aussi qu'un plug-in à charger dans Civil 3D, est plus adapté et peut-être plus simple (je me trompe peut-être), vu que de toute façon, je dois avoir un réseau sous pression de modélisé, pour traiter la liste des composants.
Je vais donc regarder sur cette piste, d'un plug-in à charger dans Civil avec la commande 'NETLOAD'.
Merci pour votre retour.
Salutations
Sûrement la meilleure manière de débuter via les explications de Gilles chanteau : https://gilecad.azurewebsites.net/ProjectTemplatesFR.aspx
Olivier Eckmann
Bonsoir,
Merci pour ce complément, je vais voir ça,
En attendant j'ai repris les bases et mon premier Plugin... affiche bien le message classique 'HelloWorld'.
C'est toujours un bon début...
Et voici l'ID du réseau sous pression dans la ligne de commande.
Tout roule, c'est parfait.
Il n'y a plus qu'à faire un formulaire, liste les pièces, chercher les quantités et les prix, et mes devis seront générés directement dans Civil 3D. Bon je pense que je vais encore suer, mais c'est un très bon début.
@O_Eckmann : Merci infiniment pour le retour et l'aide.
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.