Comment convertir un DXF en SHP (Shapefile), de la CAO au SIG

Un DXF et un Shapefile peuvent contenir les mêmes lignes, mais ils sont faits pour des tâches différentes. Le DXF est un dessin : des entités sur des calques, avec blocs, textes et hachures, sans aucune idée de l'endroit où il se trouve sur Terre. Le Shapefile est une couche SIG : un type de géométrie par fichier, une table attributaire et un système de coordonnées facultatif. Convertir l'un en l'autre, c'est séparer le dessin par géométrie, décider de ce qui devient attribut et attacher un système de coordonnées que le DXF n'a jamais eu. Voici ce qui est conservé, ce qui ne l'est pas, et comment le faire hors ligne.

Pourquoi un DXF ne correspond pas un à un à un Shapefile

Un Shapefile stocke exactement un type de géométrie : points, lignes ou polygones. Un DXF les mélange librement sur le même calque. La première chose que fait toute conversion est de répartir le dessin dans trois fichiers au plus, un par type de géométrie.

Un Shapefile porte aussi une table attributaire (.dbf) et, en option, son système de coordonnées (.prj). Un DXF n'a ni l'un ni l'autre sous cette forme : ses « attributs » sont le nom du calque et ce qu'implique le type d'entité, et il ne déclare aucun système de coordonnées.

Ce qui est conservé, et ce qui ne l'est pas

La géométrie est conservée : points, lignes ouvertes et contours fermés deviennent points, polylignes et polygones. Les altitudes peuvent l'être aussi si le Shapefile est écrit en 3D (PointZ, PolyLineZ, PolygonZ) plutôt qu'à plat.

L'identité est conservée sous forme d'attributs : le nom de l'objet et le calque DXF d'origine deviennent des champs de la table, si bien que la structure des calques survit comme une colonne sur laquelle filtrer.

Le style de dessin ne l'est pas : textes, symboles de blocs, motifs de hachures, couleurs et types de ligne relèvent de la présentation, et un Shapefile ne stocke que géométrie et attributs. Les Shapefiles n'ont pas non plus de vraies courbes : vérifiez arcs et cercles après toute conversion, ils doivent devenir une chaîne de sommets.

Le système de coordonnées, l'étape oubliée

Les coordonnées d'un DXF sont de vrais nombres — souvent une grille nationale ou UTM —, mais le fichier ne dit pas dans quel système elles sont. Un Shapefile sans .prj a le même problème, et un Shapefile avec un .prj ERRONÉ est pire : il se place avec assurance au mauvais endroit.

La conversion est donc le moment d'attacher le système dans lequel le dessin a été fait. C'est une affectation, pas une transformation : les nombres restent les mêmes, seule leur signification est déclarée. Si le système ne peut pas être identifié sans ambiguïté, mieux vaut n'écrire aucun .prj qu'un .prj deviné.

Pas à pas dans STREAM

1. Travaillez dans un projet dont le système de coordonnées est celui dans lequel le dessin a été fait.

2. Importez le DXF. Ses calques suivent ; un calque très chargé est chargé en lecture seule pour la vitesse : faites un clic droit dessus et choisissez Rendre modifiable pour que ses objets puissent être exportés.

3. Masquez ce que vous ne voulez pas en sortie. Seuls les objets visibles sont exportés.

4. Ouvrez Sortie cartographique et choisissez Shapefile. STREAM écrit un Shapefile 3D distinct pour les points, les lignes et les surfaces, ignore un type sans objet et place le nom et le calque de chaque objet dans la table attributaire. Les mesures sortent aussi : les mesures de surface avec les polygones, les autres avec les lignes.

5. Le .prj est écrit lorsque le système de coordonnées du projet se résout vers un code EPSG ; sinon le fichier reste sans .prj plutôt qu'avec un .prj deviné.

6. Ouvrez le résultat dans votre SIG et vérifiez trois choses : la couche tombe au bon endroit, la table attributaire contient les noms de calques attendus et les valeurs Z sont présentes.

Dans l'autre sens : du Shapefile au DXF

Le chemin inverse fonctionne de la même manière. Importez un Shapefile, un GeoJSON ou un GeoPackage — chaque couche devient un calque et chaque entité un objet sur lequel dessiner, s'accrocher et éditer —, puis exportez en DXF ; les calques suivent.

Questions fréquentes

Pourquoi la conversion d'un DXF donne-t-elle plusieurs Shapefiles ?

Parce qu'un Shapefile ne contient qu'un type de géométrie. Les points, lignes et polygones d'un même dessin vont dans des fichiers séparés ; un type sans objet est ignoré.

Pourquoi mon Shapefile converti n'a-t-il pas de système de coordonnées ?

Parce qu'un DXF n'en déclare aucun. Attachez le système dans lequel le dessin a été fait — une affectation, pas une transformation. STREAM écrit le système du projet en .prj lorsqu'il se résout vers un code EPSG, et préfère n'écrire aucun .prj plutôt qu'un .prj deviné.

La conversion conserve-t-elle les altitudes ?

Oui, si le Shapefile est écrit en 3D. STREAM écrit des fichiers PointZ, PolyLineZ et PolygonZ : le Z de chaque sommet suit.

Que deviennent les textes, blocs et hachures du DXF ?

Ils relèvent de la présentation du dessin, pas de la géométrie SIG, et ne sont pas écrits dans le Shapefile. Le nom de l'objet et son calque DXF sont conservés comme attributs.

Puis-je reconvertir un Shapefile en DXF ?

Oui. Importez le Shapefile, le GeoJSON ou le GeoPackage, puis exportez en DXF ; chaque couche SIG devient un calque DXF.

Convertissez entre formats CAO et SIG dans STREAM

Windows natif · entièrement hors ligne · bêta gratuite

Export (DXF, GeoTIFF, CSV, KMZ)