Le blog francophone consacré
aux technologies Esri

Mapping Specification for DWG, comment ça marche ?

Suite à mon article du début de semaine concernant la nouvelle version d'ArcGIS for AutoCAD, il semble que vous soyez nombreux à souhaiter quelques précisions sur le modèle d'extensibilité MSD.


Une des évolutions majeures d'ArcGIS 9.3 concernant l'interopérabilité avec la plateforme AutoCAD, c'est le stockage dans les fichiers DWG et DXF du modèle de données SIG. En stockant la structure et les attributs des classes d'entités du SIG dans le fichier de dessin, on permet à l'utilisateur AutoCAD de manipuler ses entités avec ses outils habituels de DAO (ajout, suppression et modification) tout en permettant aux utilisateurs ArcGIS de conserver une vision SIG sur ces fichiers de dessin sans workflow de conversion ou de transformation. L'extension ArcGIS for AutoCAD apportera même des outils supplémentaires à l'utilisateur AutoCAD pour modifier, éventuellement, le modèle de données SIG directement dans son fichier DWG ou DXF (ajouter des classes d'entités, ajouter des attributs,…). Cette capacité à conserver dans le fichier AutoCAD les informations SIG repose sur le modèle d'extensibilité MSD que je vais détailler dans cet article.

Le modèle MSD (Mapping Specification for DWG)

Les informations de structure et de données SIG (MSD) sont stockées à l'aide d'objets standards proposés par Autodesk dans les formats DWG/DXF (en particulier les Named Object Dictionaries et les Extension Dictionaries ). Le MSD est un modèle développement ouvert, réalisé en collaboration avec l'Open Design Alliance (ODA) et qui respecte les standards RDS (Autodesk Registered Developer Symbol).


Le schéma ci--dessus illustre le fonctionnement modèle d'extensibilité MSD sur l'exemple d'une couche de tronçon d'un réseau d'eau. Un Named Object Dictionary contient la description des différentes classes d'entités contenues dans le fichier DWG/DXF. Chaque classe d'entités est caractérisée par :
- un nom,
- un type d'entités (point, ligne, polygone ou annotation),
- un filtre
- des attributs et leurs valeurs par défaut,

La notion de filtre est un point intéressant du MSD car il permet de définir l'ensemble des entités du fichier AutoCAD (Selection Set) qui constituent la classe d'entités. Ce filtre prend en compte les propriétés de dessin des entités AutoCAD comme par exemple la couleur, le bloc, le calque, le type de ligne … C'est au travers de ce filtre que l'on va définir la correspondance entre l'organisation SIG des couches de données et l'organisation DAO du fichier AutoCAD. Ainsi on peut imaginer que les différents types de tronçons de mon réseau d'eau sont répartis dans différents calques AutoCAD mais constituent une seule classe d'entités dans mon SIG. A l'inverse on pourrait placer tous les tronçons du réseau dans le même calque AutoCAD mais utiliser des couleurs différentes et les gérer comme deux classes d'entités différentes dans le SIG.

Ensuite, chaque entité AutoCAD (Entity) dispose d'un Extension Dictionary qui va stocker les différentes valeurs d'attributs lorsque ces dernières seront différentes de la valeur par défaut définie au niveau de la classe d'entités. On notera également que des attributs supplémentaires peuvent être ajoutés par l'utilisateur directement sur une entité sans l'inclure dans le modèle de la classe d'entités (ici Water Type et Enabled). Il ne sera alors pas vu par les utilisateurs SIG avec ArcGIS.


Développer avec le modèle d'extensibilité MSD

Souple et extensible le MSD s'adresse également aux développeurs qui souhaitent créer des applications ayant besoin de créer ou de modifier un modèle de données de type "SIG" dans AutoCAD. Pour cela, ArcGIS for AutoCAD propose un SDK exploitable dans des environnements comme AutoLISP™, Visual Lisp™, ObjectARX™ (en C++, C# ou VB .NET) ou encore avec les toolkits OpenDWG®).
Enfin, vous retrouverez le descriptif détaillé du modèle de stockage et du modèle objet du dans le document suivant.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: