{"id":307,"date":"2026-07-24T08:49:06","date_gmt":"2026-07-24T08:49:06","guid":{"rendered":"https:\/\/www.geometre-confiance.fr\/guide\/2026\/07\/24\/plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction\/"},"modified":"2026-07-24T08:49:06","modified_gmt":"2026-07-24T08:49:06","slug":"plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction","status":"publish","type":"post","link":"https:\/\/www.geometre-confiance.fr\/guide\/2026\/07\/24\/plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction\/","title":{"rendered":"Plan de masse logiciel : comment optimiser votre projet de construction"},"content":{"rendered":"<p class=\"wp-block-paragraph\">La r\u00e9ussite d&rsquo;un projet de construction tient souvent \u00e0 la qualit\u00e9 du plan de masse. Outil central du dossier d&rsquo;urbanisme, il traduit les choix d&rsquo;implantation, d&#8217;emprise et d&rsquo;am\u00e9nagement d&rsquo;un terrain en informations exploitables par les services instructeurs, les entreprises et les riverains. Aujourd&rsquo;hui, la multiplication des logiciels \u2014 gratuits, freemium ou professionnels \u2014 impose une s\u00e9lection raisonn\u00e9e en fonction du degr\u00e9 de complexit\u00e9 du projet, de la n\u00e9cessit\u00e9 de mod\u00e9lisation 3D et des contraintes r\u00e9glementaires locales. Le bon logiciel doit permettre de produire un plan topographique fiable, d\u2019int\u00e9grer la gestion des r\u00e9seaux et de faciliter la communication entre acteurs. Ce texte expose les crit\u00e8res essentiels pour choisir et optimiser un logiciel de plan de masse, compare les solutions pertinentes en 2026 et propose des m\u00e9thodes pratiques pour limiter les erreurs fr\u00e9quentes lors du d\u00e9p\u00f4t d\u2019un dossier d\u2019urbanisme. Les exemples concrets et les retours d\u2019exp\u00e9rience illustrent comment transformer une esquisse en un document conforme, capable de simplifier la coordination sur le chantier et d\u2019anticiper les contraintes li\u00e9es \u00e0 l\u2019implantation du b\u00e2timent ou \u00e0 l\u2019am\u00e9nagement du terrain.<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Analyser le projet<\/strong> : d\u00e9finir type, taille et finalit\u00e9 du plan de masse avant de choisir un logiciel.<\/li><li><strong>Prioriser les fonctionnalit\u00e9s<\/strong> : topographie, gestion des calques, biblioth\u00e8ques d\u2019objets et export vectoriel.<\/li><li><strong>Privil\u00e9gier la compatibilit\u00e9<\/strong> : formats d\u2019\u00e9change (DXF, PDF vectoriel), flux de travail et int\u00e9gration cloud.<\/li><li><strong>Utiliser la mod\u00e9lisation 3D<\/strong> : visualiser l\u2019impact de l\u2019implantation b\u00e2timent \/ am\u00e9nagement terrain.<\/li><li><strong>Conna\u00eetre les limites du DIY<\/strong> : ma\u00eetriser le PLU et les exigences de la mairie ou recourir \u00e0 un professionnel.<\/li><\/ul>\n\n<h2 class=\"wp-block-heading\">Choisir le bon logiciel pour concevoir un plan de masse : identification des besoins et sc\u00e9narios d\u2019usage<\/h2>\n\n<p class=\"wp-block-paragraph\">La s\u00e9lection d\u2019un <strong>logiciel<\/strong> pour \u00e9tablir un <strong>plan de masse<\/strong> se construit d\u2019abord sur l\u2019analyse du projet. La nature de l\u2019op\u00e9ration \u2014 am\u00e9nagement paysager, construction neuve, extension, lotissement \u2014 oriente le niveau d\u2019exigence. Un petit jardin ou la pose d\u2019un garage ne r\u00e9clameront pas la m\u00eame pr\u00e9cision qu\u2019un dossier de permis de construire soumis \u00e0 un PLU contraignant.<\/p>\n\n<p class=\"wp-block-paragraph\">Trois param\u00e8tres d\u00e9terminants guident ce choix : la taille et la topographie du terrain, la finalit\u00e9 du plan et le niveau de technicit\u00e9 requis. Pour un terrain plat et une demande simple, les outils en ligne ou freemium offrent une prise en main rapide et une visualisation 3D suffisante. Pour des projets impliquant des r\u00e9seaux, des servitudes ou des contraintes d\u2019altim\u00e9trie, l\u2019utilisation d\u2019un logiciel capable de g\u00e9rer un <strong>plan topographique<\/strong> et des calques d\u00e9taill\u00e9s devient indispensable.<\/p>\n\n<p class=\"wp-block-paragraph\">Un cas concret illustre les cons\u00e9quences d\u2019un mauvais choix : un lotisseur amateur a produit un plan avec un outil grand public sans int\u00e9grer les contraintes d\u2019assainissement et les hauteurs naturelles. Le dossier, incomplet, a n\u00e9cessit\u00e9 deux mois de corrections et d\u2019\u00e9tudes topographiques suppl\u00e9mentaires. Cette exp\u00e9rience met en lumi\u00e8re la n\u00e9cessit\u00e9 d\u2019anticiper la complexit\u00e9 technique avant de se lancer.<\/p>\n\n<h3 class=\"wp-block-heading\">Sc\u00e9narios et logiciels recommand\u00e9s<\/h3>\n\n<p class=\"wp-block-paragraph\">Pour des travaux domestiques et des esquisses rapides, les solutions comme <a href=\"https:\/\/permis.hello-archi.com\/quel-logiciel-utiliser-pour-creer-un-plan-de-masse\/\" target=\"_blank\" rel=\"noopener\">outils accessibles<\/a> ou SketchUp Free conviennent. Elles fournissent une <strong>conception 3D<\/strong> simple, des biblioth\u00e8ques d\u2019objets et une ergonomie adapt\u00e9e aux d\u00e9butants.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour des projets interm\u00e9diaires, o\u00f9 la cote et l\u2019\u00e9chelle sont n\u00e9cessaires pour un dossier, les logiciels interm\u00e9diaires ou freemium peuvent suffire, \u00e0 condition d\u2019opter pour des versions payantes si l\u2019export vectoriel est requis.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour l\u2019urbanisme et les projets techniques, QGIS ou AutoCAD restent les r\u00e9f\u00e9rences. Ces outils traitent la g\u00e9ospatialit\u00e9, les couches multiples et permettent des \u00e9changes avec des bureaux d\u2019\u00e9tudes. Une ressource utile pour approfondir l\u2019usage de ces logiciels se trouve sur <a href=\"https:\/\/commentouvrir.com\/tech\/quel-logiciel-pour-faire-un-plan-de-masse\/\" target=\"_blank\" rel=\"noopener\">guides techniques<\/a>, qui comparent les options selon le niveau d\u2019utilisateur.<\/p>\n\n<p class=\"wp-block-paragraph\">Enfin, penser \u00e0 la conformit\u00e9 d\u00e8s le d\u00e9part r\u00e9duit les risques de refus par la mairie. L\u2019identification des servitudes, des r\u00e9seaux, des arbres \u00e0 conserver et des acc\u00e8s routiers doit \u00eatre inscrite d\u00e8s la premi\u00e8re esquisse. Ce travail pr\u00e9paratoire oriente le choix du logiciel et permet d\u2019\u00e9viter des pertes de temps co\u00fbteuses.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : un choix r\u00e9fl\u00e9chi en phase d\u2019avant-projet r\u00e9duit sensiblement le d\u00e9lai d\u2019instruction et les co\u00fbts de reprise.<\/p>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-1.jpg\" alt=\"d\u00e9couvrez comment un plan de masse logiciel peut optimiser efficacement votre projet de construction en facilitant la gestion, la visualisation et la planification de vos espaces.\" class=\"wp-image-305\" srcset=\"https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-1.jpg 1376w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-1-300x167.jpg 300w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-1-1024x572.jpg 1024w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-1-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><\/figure>\n\n<h2 class=\"wp-block-heading\">Fonctionnalit\u00e9s cl\u00e9s pour l&rsquo;optimisation d&rsquo;un projet de construction<\/h2>\n\n<p class=\"wp-block-paragraph\">Pour optimiser un <strong>projet de construction<\/strong>, le logiciel de plan de masse doit r\u00e9unir un ensemble de fonctionnalit\u00e9s permettant une repr\u00e9sentation fid\u00e8le du terrain et une communication claire entre les acteurs. Ces fonctionnalit\u00e9s se regroupent en grands th\u00e8mes : dessin et altim\u00e9trie, gestion des calques, biblioth\u00e8ques d\u2019objets, collaboration et export.<\/p>\n\n<p class=\"wp-block-paragraph\">Le dessin pr\u00e9cis du terrain est la premi\u00e8re exigence. Les outils doivent g\u00e9rer courbes de niveau, points cot\u00e9s et int\u00e9gration de plans cadastraux. La pr\u00e9cision conditionne la qualit\u00e9 du rendu et la conformit\u00e9 aux r\u00e8gles d\u2019urbanisme. Une mauvaise repr\u00e9sentation topographique conduit \u00e0 des erreurs d\u2019implantation et \u00e0 des surco\u00fbts sur le chantier.<\/p>\n\n<p class=\"wp-block-paragraph\">La gestion des calques permet de superposer informations fonci\u00e8res, r\u00e9seaux, v\u00e9g\u00e9tation et implantations b\u00e2timent. Cette modularit\u00e9 est essentielle pour dialoguer avec les bureaux techniques et les services d\u2019urbanisme. Les logiciels professionnels offrent des calques param\u00e9trables et des possibilit\u00e9s d\u2019export en DXF pour \u00e9change avec des DAO.<\/p>\n\n<p class=\"wp-block-paragraph\">L\u2019ergonomie et la capacit\u00e9 de partage influent directement sur la productivit\u00e9. En 2026, les solutions cloud facilitent le travail collaboratif en temps r\u00e9el, la r\u00e9ception de retours et la tra\u00e7abilit\u00e9 des versions. Ces fonctions sont particuli\u00e8rement utiles sur des projets multipartenaires.<\/p>\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Fonctionnalit\u00e9<\/th>\n<th>Importance<\/th>\n<th>Logiciels recommand\u00e9s<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Dessin des terrains et reliefs<\/td>\n<td><strong>Crucial<\/strong><\/td>\n<td>QGIS, AutoCAD, SketchUp Free<\/td>\n<\/tr>\n<tr>\n<td>Gestion des calques<\/td>\n<td><strong>Indispensable<\/strong><\/td>\n<td>QGIS, AutoCAD<\/td>\n<\/tr>\n<tr>\n<td>Biblioth\u00e8que d\u2019objets<\/td>\n<td><strong>Tr\u00e8s utile<\/strong><\/td>\n<td>SketchUp Free, Floorplanner, HomeByMe<\/td>\n<\/tr>\n<tr>\n<td>Partage et collaboration<\/td>\n<td><strong>Essentiel<\/strong><\/td>\n<td>Cedreo, AutoCAD Web App<\/td>\n<\/tr>\n<tr>\n<td>Mod\u00e9lisation 3D<\/td>\n<td><strong>Fortement recommand\u00e9e<\/strong><\/td>\n<td>SketchUp Free, HomeByMe<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n<h3 class=\"wp-block-heading\">Exemples d&rsquo;usage et gain d&rsquo;efficacit\u00e9<\/h3>\n\n<p class=\"wp-block-paragraph\">Un cabinet d\u2019architectes a r\u00e9duit de 30 % le temps de coordination en standardisant l\u2019export DXF des plans de masse et en utilisant une biblioth\u00e8que partag\u00e9e d\u2019\u00e9l\u00e9ments d\u2019am\u00e9nagement. La gestion des calques a permis d\u2019isoler les r\u00e9seaux souterrains et d\u2019\u00e9viter des conflits lors de l\u2019implantation des fondations.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour un propri\u00e9taire souhaitant d\u00e9poser un permis de construire, l\u2019utilisation d\u2019un logiciel offrant un <strong>export PDF vectoriel<\/strong> et une \u00e9chelle pr\u00e9cise peut \u00e9viter une demande de pi\u00e8ces compl\u00e9mentaires. Des ressources pratiques expliquant comment utiliser les logiciels pour dessiner un plan de masse sont disponibles sur <a href=\"https:\/\/permis.hello-archi.com\/comment-utiliser-des-logiciels-pour-dessiner-un-plan-de-masse\/\" target=\"_blank\" rel=\"noopener\">guides pratiques en ligne<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Liste des contr\u00f4les indispensables avant d\u00e9p\u00f4t :<\/p>\n\n<ol class=\"wp-block-list\"><li>V\u00e9rifier l\u2019\u00e9chelle graphique et la cote nord.<\/li><li>Contr\u00f4ler l\u2019altim\u00e9trie et les courbes de niveau.<\/li><li>Rep\u00e9rer les r\u00e9seaux et les servitudes.<\/li><li>Annoter les hauteurs projet\u00e9es et l\u2019orientation des b\u00e2timents.<\/li><li>Exporter en format vectoriel pour la lecture par les services d\u2019urbanisme.<\/li><\/ol>\n\n<p class=\"wp-block-paragraph\">Insight : la combinaison d\u2019un dessin topographique pr\u00e9cis et d\u2019une gestion claire des calques acc\u00e9l\u00e8re la validation administrative et r\u00e9duit les litiges en phase chantier.<\/p>\n\n<figure class=\"is-provider-youtube is-type-video wp-block-embed wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"\u270f\ufe0f PLAN DE MASSE : Comment faire facilement un plan de masse ?\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/xr49Fmo_Bss?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n<h2 class=\"wp-block-heading\">Comparatif 2026 : top 5 des logiciels gratuits pour plan de masse et cas d&rsquo;application<\/h2>\n\n<p class=\"wp-block-paragraph\">La s\u00e9lection des meilleurs logiciels gratuits pour pr\u00e9parer un plan de masse en 2026 d\u00e9pend de l\u2019usage vis\u00e9. Les cinq solutions pr\u00e9sent\u00e9es ici couvrent un large spectre, du rendu 3D rapide \u00e0 l\u2019analyse g\u00e9ospatiale pouss\u00e9e.<\/p>\n\n<p class=\"wp-block-paragraph\">SketchUp Free se distingue par sa mod\u00e9lisation 3D intuitive et sa biblioth\u00e8que. Il convient pour des pr\u00e9sentations visuelles et des phases d\u2019avant-projet. Floorplanner reste une option pour des am\u00e9nagements int\u00e9rieurs avec extension vers l\u2019ext\u00e9rieur, privil\u00e9gi\u00e9e pour sa rapidit\u00e9 d\u2019ex\u00e9cution.<\/p>\n\n<p class=\"wp-block-paragraph\">QGIS s\u2019adresse aux projets complexes : planification urbaine, gestion de r\u00e9seaux et \u00e9tude d\u2019impact. Son aptitude \u00e0 importer des couches SIG en fait un incontournable pour les collectivit\u00e9s et les bureaux d\u2019\u00e9tudes. La version Web d\u2019AutoCAD offre, quant \u00e0 elle, des outils de dessin pr\u00e9cis adapt\u00e9s aux utilisateurs familiers de l\u2019\u00e9cosyst\u00e8me AutoCAD.<\/p>\n\n<p class=\"wp-block-paragraph\">Enfin, HomeByMe fournit une exp\u00e9rience utilisateur fluide pour les projets r\u00e9sidentiels et des rendus 3D accessibles aux clients non techniciens.<\/p>\n\n<h3 class=\"wp-block-heading\">Cas d&rsquo;application concrets<\/h3>\n\n<p class=\"wp-block-paragraph\">Cas 1 : Un ma\u00eetre d\u2019ouvrage priv\u00e9 utilise SketchUp Free pour simuler l\u2019implantation d\u2019un bungalow et obtenir l\u2019adh\u00e9sion d\u2019un voisinage. Le rendu 3D facilite la compr\u00e9hension et \u00e9vite des contestations lors de la r\u00e9union de quartier.<\/p>\n\n<p class=\"wp-block-paragraph\">Cas 2 : Une commune emploie QGIS pour superposer cadastre, servitudes et r\u00e9seaux. Le plan de masse devient un outil d\u00e9cisionnel pour d\u00e9terminer des zones \u00e0 prot\u00e9ger et pour orienter les demandes de permis. Pour accompagner cette pratique, des guides techniques sur la cote en trois dimensions et l\u2019utilisation en urbanisme sont disponibles sur <a href=\"https:\/\/www.geometre-confiance.fr\/guide\/2026\/06\/05\/plan-de-masse-cote-dans-les-3-dimensions-guide-complet-pour-la-conception-precise\/\">ressources sp\u00e9cialis\u00e9es<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Cas 3 : Une PME de construction exploite l\u2019export AutoCAD pour transmettre des fichiers conformes aux bureaux d\u2019\u00e9tudes et r\u00e9duire les retours. Ce flux d\u2019\u00e9change limite les non-conformit\u00e9s \u00e0 l\u2019instruction des dossiers.<\/p>\n\n<p class=\"wp-block-paragraph\">Avantages et limites :<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>SketchUp Free<\/strong> : id\u00e9al pour pr\u00e9sentation, limite sur cote r\u00e9glementaire.<\/li><li><strong>Floorplanner<\/strong> : rapidit\u00e9, mais pas adapt\u00e9 aux projets topographiques.<\/li><li><strong>QGIS<\/strong> : puissance et pr\u00e9cision, courbe d\u2019apprentissage \u00e9lev\u00e9e.<\/li><li><strong>AutoCAD Web App<\/strong> : pr\u00e9cision professionnelle, fonctionnalit\u00e9s restreintes en version gratuite.<\/li><li><strong>HomeByMe<\/strong> : rendu immersif, export limit\u00e9 pour l\u2019administration.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Pour approfondir les alternatives et conseils d&rsquo;utilisation, consulter des comparatifs d\u00e9taill\u00e9s et retours d&rsquo;exp\u00e9rience publi\u00e9s par des acteurs du secteur. Un guide synth\u00e9tique sur le choix de l&rsquo;outil adapt\u00e9 est disponible sur <a href=\"https:\/\/www.moutiers-informatique.fr\/logiciel-de-plan-de-masse-comment-choisir-loutil-adapte-a-votre-projet\" target=\"_blank\" rel=\"noopener\">ressources techniques<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : l&rsquo;outil id\u00e9al combine pr\u00e9cision topographique pour l&rsquo;instruction et souplesse 3D pour la communication.<\/p>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-2.jpg\" alt=\"d\u00e9couvrez comment un plan de masse logiciel peut optimiser votre projet de construction en facilitant la planification, la gestion de l&apos;espace et la coordination des travaux pour un r\u00e9sultat efficace et r\u00e9ussi.\" class=\"wp-image-306\" srcset=\"https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-2.jpg 1376w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-2-300x167.jpg 300w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-2-1024x572.jpg 1024w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/07\/Plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction-2-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><\/figure>\n\n<h2 class=\"wp-block-heading\">Ergonomie, int\u00e9gration 3D et workflow pour une gestion d&rsquo;espace optimis\u00e9e<\/h2>\n\n<p class=\"wp-block-paragraph\">L\u2019ergonomie conditionne l\u2019appropriation d\u2019un <strong>logiciel<\/strong> et la vitesse d\u2019ex\u00e9cution. Des interfaces claires et des biblioth\u00e8ques pr\u00eates \u00e0 l\u2019emploi permettent de se concentrer sur la strat\u00e9gie d\u2019implantation plut\u00f4t que sur des manipulations techniques. Les solutions conviviales favorisent la collaboration entre g\u00e9om\u00e8tres, architectes et ma\u00eetres d\u2019ouvrage.<\/p>\n\n<p class=\"wp-block-paragraph\">La <strong>conception 3D<\/strong> est devenue un standard pour v\u00e9rifier l\u2019int\u00e9gration volum\u00e9trique des b\u00e2timents et pour anticiper les conflits d\u2019usage. Les outils qui autorisent une navigation fluide et des coupes automatiques augmentent la capacit\u00e9 \u00e0 d\u00e9tecter des erreurs d\u2019implantation avant les travaux.<\/p>\n\n<p class=\"wp-block-paragraph\">L\u2019int\u00e9gration dans un workflow implique \u00e9galement la gestion des exports et la compatibilit\u00e9 avec les formats SIG et DAO. L\u2019export en DXF, en PDF vectoriel ou la synchronisation cloud facilite le transfert de donn\u00e9es entre bureaux d\u2019\u00e9tudes et entreprises. La v\u00e9rification de la compatibilit\u00e9 mat\u00e9rielle est aussi un point cl\u00e9 : certains logiciels exigeants requi\u00e8rent des configurations puissantes.<\/p>\n\n\n\n\n  \/* Styles compl\u00e9mentaires, accessibles et l\u00e9gers *\/\n  .infographie-container {\n    max-height: 1200px; \/* contrainte: ne doit pas d\u00e9passer 2000px *\/\n    min-height: 420px;\n    width: 100%;\n    border-radius: 12px;\n  }\n  .step-node { transition: transform .18s ease, box-shadow .18s ease; }\n  .step-node:focus, .step-node:hover { transform: translateY(-6px); box-shadow: 0 12px 30px rgba(15,23,42,0.12); }\n  .svg-cadre { background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(0,0,0,0.02)); border-radius: 8px; }\n  \/* small accessible focus ring *\/\n  .focus-ring:focus { outline: 3px solid rgba(59,130,246,0.35); outline-offset: 3px; }\n\n\n<!-- Conteneur principal (\u00e0 coller dans la page) -->\n<div class=\"infographie-container mx-auto p-6 bg-slate-900 text-slate-100 shadow-lg\" role=\"region\" aria-label=\"Infographie interactive : plan de masse logiciel\" style=\"max-width:1100px\">\n  <div class=\"flex flex-col lg:flex-row gap-6\">\n    <!-- COLONNE GAUCHE : Infographie pas-\u00e0-pas -->\n    <section class=\"w-full lg:w-1\/2 space-y-4\" aria-labelledby=\"title-infographie\">\n      <h2 id=\"title-infographie\" class=\"text-2xl font-semibold text-amber-300\">Plan de masse logiciel : flux de travail<\/h2>\n      <p class=\"text-sm text-slate-300\">Parcourez chaque \u00e9tape, consultez les conseils et testez des outils rapides pour optimiser votre projet de construction.<\/p>\n\n      <!-- STEPPEUR -->\n      <ol class=\"space-y-3\" role=\"list\" aria-label=\"\u00c9tapes du flux de travail\">\n        <!-- Each step is interactive -->\n        <li>\n          <button class=\"w-full text-left p-4 bg-slate-800 rounded-lg step-node focus-ring\" data-step=\"releve\" aria-expanded=\"false\" aria-controls=\"detail-releve\">\n            <div class=\"flex items-start gap-3\">\n              <div class=\"flex-none w-10 h-10 rounded-full bg-emerald-400 text-slate-900 font-bold flex items-center justify-center\">1<\/div>\n              <div class=\"flex-1\">\n                <div class=\"font-medium text-emerald-300\">Relev\u00e9 terrain<\/div>\n                <div class=\"text-sm text-slate-300\">Cadrage et points topographiques<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n          <div id=\"detail-releve\" class=\"mt-2 px-4 py-3 hidden bg-slate-800 rounded-md text-sm text-slate-300\" aria-hidden=\"true\">\n            &#8211; V\u00e9rifier la pr\u00e9cision des points; v\u00e9rifier la source des coordonn\u00e9es.<br>\n            &#8211; Astuce : utilisez points de contr\u00f4le pour recalage. <br>\n            &#8211; Checklist : \u00e9chelle, syst\u00e8me de r\u00e9f\u00e9rence (ex. RGF93), cote nord.\n          <\/div>\n        <\/li>\n\n        <li>\n          <button class=\"w-full text-left p-4 bg-slate-800 rounded-lg step-node focus-ring\" data-step=\"modelisation\" aria-expanded=\"false\" aria-controls=\"detail-modelisation\">\n            <div class=\"flex items-start gap-3\">\n              <div class=\"flex-none w-10 h-10 rounded-full bg-sky-400 text-slate-900 font-bold flex items-center justify-center\">2<\/div>\n              <div class=\"flex-1\">\n                <div class=\"font-medium text-sky-300\">Mod\u00e9lisation topographique<\/div>\n                <div class=\"text-sm text-slate-300\">G\u00e9n\u00e9ration de courbes et surfaces<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n          <div id=\"detail-modelisation\" class=\"mt-2 px-4 py-3 hidden bg-slate-800 rounded-md text-sm text-slate-300\" aria-hidden=\"true\">\n            &#8211; Int\u00e9grer altitudes mesur\u00e9es, d\u00e9finir pentes optimales.<br>\n            &#8211; Astuce : s\u00e9parer calques pour tassements, talus, arbres.<br>\n            &#8211; Checklist : tol\u00e9rances, granulom\u00e9trie des donn\u00e9es altim\u00e9triques.\n          <\/div>\n        <\/li>\n\n        <li>\n          <button class=\"w-full text-left p-4 bg-slate-800 rounded-lg step-node focus-ring\" data-step=\"implantation\" aria-expanded=\"false\" aria-controls=\"detail-implantation\">\n            <div class=\"flex items-start gap-3\">\n              <div class=\"flex-none w-10 h-10 rounded-full bg-rose-400 text-slate-900 font-bold flex items-center justify-center\">3<\/div>\n              <div class=\"flex-1\">\n                <div class=\"font-medium text-rose-300\">Implantation b\u00e2timent<\/div>\n                <div class=\"text-sm text-slate-300\">Positionnement et gabarits<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n          <div id=\"detail-implantation\" class=\"mt-2 px-4 py-3 hidden bg-slate-800 rounded-md text-sm text-slate-300\" aria-hidden=\"true\">\n            &#8211; Respectez emprises, servitudes, d\u00e9gagements. <br>\n            &#8211; Astuce : validez l\u2019orientation solaire et d&rsquo;acc\u00e8s. <br>\n            &#8211; Checklist : cote nord marqu\u00e9e, axes rep\u00e9r\u00e9s.\n          <\/div>\n        <\/li>\n\n        <li>\n          <button class=\"w-full text-left p-4 bg-slate-800 rounded-lg step-node focus-ring\" data-step=\"reseaux\" aria-expanded=\"false\" aria-controls=\"detail-reseaux\">\n            <div class=\"flex items-start gap-3\">\n              <div class=\"flex-none w-10 h-10 rounded-full bg-yellow-400 text-slate-900 font-bold flex items-center justify-center\">4<\/div>\n              <div class=\"flex-1\">\n                <div class=\"font-medium text-yellow-300\">V\u00e9rification r\u00e9seaux<\/div>\n                <div class=\"text-sm text-slate-300\">Eau, \u00e9lectricit\u00e9, telecom, assainissement<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n          <div id=\"detail-reseaux\" class=\"mt-2 px-4 py-3 hidden bg-slate-800 rounded-md text-sm text-slate-300\" aria-hidden=\"true\">\n            &#8211; Utiliser calques d\u00e9di\u00e9s pour chaque r\u00e9seau. <br>\n            &#8211; Astuce : marquer les tron\u00e7ons existants et projet\u00e9s. <br>\n            &#8211; Checklist : conflits potentiels, distances de s\u00e9curit\u00e9.\n          <\/div>\n        <\/li>\n\n        <li>\n          <button class=\"w-full text-left p-4 bg-slate-800 rounded-lg step-node focus-ring\" data-step=\"export\" aria-expanded=\"false\" aria-controls=\"detail-export\">\n            <div class=\"flex items-start gap-3\">\n              <div class=\"flex-none w-10 h-10 rounded-full bg-indigo-400 text-slate-900 font-bold flex items-center justify-center\">5<\/div>\n              <div class=\"flex-1\">\n                <div class=\"font-medium text-indigo-300\">Export &amp; d\u00e9p\u00f4t dossier<\/div>\n                <div class=\"text-sm text-slate-300\">Formats, versioning et tra\u00e7abilit\u00e9<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n          <div id=\"detail-export\" class=\"mt-2 px-4 py-3 hidden bg-slate-800 rounded-md text-sm text-slate-300\" aria-hidden=\"true\">\n            &#8211; Sauvegarder plusieurs versions avec commentaires.<br>\n            &#8211; Astuce : exporter DWG, PDF g\u00e9or\u00e9f\u00e9renc\u00e9, SHP selon besoins. <br>\n            &#8211; Checklist : m\u00e9tadonn\u00e9es, \u00e9chelle, cote nord, calques export\u00e9s.\n          <\/div>\n        <\/li>\n      <\/ol>\n\n      <!-- Conseils g\u00e9n\u00e9raux -->\n      <div class=\"mt-4 p-4 bg-slate-800 rounded-md text-sm text-slate-300\">\n        <strong class=\"text-amber-300\">Conseils essentiels :<\/strong>\n        <ul class=\"list-disc ml-5 mt-2\">\n          <li>Toujours v\u00e9rifier l\u2019\u00e9chelle et le syst\u00e8me de coordonn\u00e9es.<\/li>\n          <li>Int\u00e9grer la cote nord de fa\u00e7on visible et normalis\u00e9e.<\/li>\n          <li>Utiliser des calques d\u00e9di\u00e9s pour r\u00e9seaux et v\u00e9g\u00e9tation.<\/li>\n          <li>Enregistrer versions et commentaires pour la tra\u00e7abilit\u00e9.<\/li>\n        <\/ul>\n      <\/div>\n    <\/section>\n\n    <!-- COLONNE DROITE : outils interactifs -->\n    <aside class=\"w-full lg:w-1\/2 space-y-4\" aria-labelledby=\"tools-title\">\n      <h3 id=\"tools-title\" class=\"text-lg font-semibold text-slate-200\">Outils rapides<\/h3>\n\n      <!-- Mini-canvas SVG : couches simul\u00e9es -->\n      <div class=\"p-4 bg-slate-800 rounded-md svg-cadre\" role=\"img\" aria-label=\"Aper\u00e7u plan de masse simplifi\u00e9\">\n        <div class=\"flex items-center justify-between mb-3\">\n          <div class=\"text-sm text-slate-300\">Aper\u00e7u calques<\/div>\n          <div class=\"text-xs text-slate-400\">Basculer calques :<\/div>\n        <\/div>\n\n        <div class=\"flex gap-3 mb-3\">\n          <label class=\"flex items-center gap-2 text-sm text-slate-200\">\n            \n            B\u00e2timent\n          <\/label>\n          <label class=\"flex items-center gap-2 text-sm text-slate-200\">\n            \n            R\u00e9seaux\n          <\/label>\n          <label class=\"flex items-center gap-2 text-sm text-slate-200\">\n            \n            V\u00e9g\u00e9tation\n          <\/label>\n        <\/div>\n\n        <div class=\"w-full h-56 border border-slate-700 rounded-md p-2 flex items-center justify-center\" id=\"svg-wrapper\">\n          <!-- SVG plan simplifi\u00e9 -->\n          \n            <!-- grid background -->\n            \n              \n                \n              \n            \n            \n\n            <!-- B\u00e2timent -->\n            \n            B\u00e2timent\n\n            <!-- R\u00e9seaux -->\n            \n              \n            \n\n            <!-- Vegetation -->\n            \n              \n              \n              \n            \n\n            <!-- Cote Nord (compass) -->\n            \n              \n              N\n            \n          \n        <\/div>\n\n        <div class=\"mt-3 text-xs text-slate-400\">Les calques ci-dessus sont simul\u00e9s pour visualiser l&rsquo;impact des couches sur votre plan de masse.<\/div>\n      <\/div>\n\n      <!-- Orientation \/ Echelle -->\n      <div class=\"p-4 bg-slate-800 rounded-md\">\n        <div class=\"flex items-center justify-between mb-2\">\n          <div class=\"text-sm font-medium text-slate-200\">Orientation (cote nord)<\/div>\n          <div class=\"text-xs text-slate-400\" id=\"orientation-deg\">0\u00b0<\/div>\n        <\/div>\n        \n        <div class=\"mt-3 flex items-center gap-3\">\n          <button id=\"reset-nord\" class=\"px-3 py-1 bg-slate-700 rounded text-sm text-slate-200 focus-ring\">R\u00e9initialiser<\/button>\n          <div class=\"text-xs text-slate-400\">Glisser pour tourner la cote nord dans l&rsquo;aper\u00e7u.<\/div>\n        <\/div>\n\n        <hr class=\"my-3 border-slate-700\" \/>\n\n        <div class=\"text-sm font-medium text-slate-200 mb-2\">V\u00e9rificateur d&rsquo;\u00e9chelle<\/div>\n        <div class=\"flex gap-2 items-center\">\n          <label for=\"real-dist\" class=\"text-xs text-slate-300\">Distance r\u00e9elle (m)<\/label>\n          \n        <\/div>\n        <div class=\"mt-2 flex gap-2 items-center\">\n          <label for=\"pixel-dist\" class=\"text-xs text-slate-300\">Distance mesur\u00e9e (px)<\/label>\n          \n        <\/div>\n        <div class=\"mt-3\">\n          <button id=\"calc-scale\" class=\"px-3 py-1 bg-emerald-500 rounded text-sm text-slate-900 font-semibold focus-ring\">Calculer l&rsquo;\u00e9chelle<\/button>\n          <div id=\"scale-result\" class=\"mt-2 text-sm text-slate-300\">R\u00e9sultat : \u2014<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Versioning &amp; Export -->\n      <div class=\"p-4 bg-slate-800 rounded-md\">\n        <div class=\"flex items-center justify-between\">\n          <div class=\"text-sm font-medium text-slate-200\">Versions &amp; export<\/div>\n          <div class=\"text-xs text-slate-400\">Sauvegarde locale<\/div>\n        <\/div>\n\n        <label class=\"text-xs text-slate-300 mt-3\">Nom de version<\/label>\n        \n\n        <label class=\"text-xs text-slate-300 mt-2\">Commentaire<\/label>\n        <textarea id=\"ver-comment\" class=\"w-full mt-1 p-2 rounded bg-slate-700 text-slate-200 focus-ring\" rows=\"2\"><\/textarea>\n\n        <div class=\"mt-3 flex gap-2\">\n          <button id=\"save-version\" class=\"px-3 py-1 bg-indigo-500 rounded text-sm text-slate-900 font-semibold focus-ring\">Sauvegarder<\/button>\n          <button id=\"export-json\" class=\"px-3 py-1 bg-amber-400 rounded text-sm text-slate-900 font-semibold focus-ring\">Exporter JSON<\/button>\n        <\/div>\n\n        <div class=\"mt-3 text-xs text-slate-300\">Versions enregistr\u00e9es :<\/div>\n        <ul id=\"versions-list\" class=\"mt-2 space-y-2 text-sm text-slate-200\" aria-live=\"polite\"><\/ul>\n      <\/div>\n\n      <!-- Optionnel : recherche adresse via OSM Nominatim (API publique gratuite) -->\n      <details class=\"p-4 bg-slate-800 rounded-md text-sm text-slate-300\" open>\n        <summary class=\"cursor-pointer text-slate-200 font-medium\">G\u00e9olocaliser (facultatif)<\/summary>\n        <div class=\"mt-2\">\n          <label class=\"text-xs\">Adresse \/ lieu<\/label>\n          \n          <div class=\"mt-2 flex gap-2\">\n            <button id=\"geocode-btn\" class=\"px-3 py-1 bg-emerald-500 rounded text-slate-900 font-semibold focus-ring\">Chercher<\/button>\n            <button id=\"clear-geocode\" class=\"px-3 py-1 bg-slate-600 rounded text-slate-200 focus-ring\">Effacer<\/button>\n          <\/div>\n          <div id=\"geocode-result\" class=\"mt-2 text-xs text-slate-300\"><\/div>\n          <div id=\"geocode-example\" class=\"mt-2 text-xs text-slate-400\">\n            <!-- API info will be filled by JS comment; included below as commented JSON for dev -->\n          <\/div>\n        <\/div>\n      <\/details>\n\n    <\/aside>\n  <\/div>\n<\/div>\n\n<!-- Script principal : logique et interactions -->\n\n\/*\n  API publique utilis\u00e9e (facultatif) :\n  &#8211; Nominatim (OpenStreetMap) pour la recherche d&rsquo;adresse (gratuit, sans cl\u00e9 pour usage raisonnable)\n  &#8211; URL exemple : https:\/\/nominatim.openstreetmap.org\/search?format=json&amp;q=10+Rue+de+la+Paix+Paris\n\n  Exemple de r\u00e9ponse JSON (abr\u00e9g\u00e9) :\n  [\n    {\n      \u00ab\u00a0place_id\u00a0\u00bb: \u00ab\u00a0123456789\u00a0\u00bb,\n      \u00ab\u00a0licence\u00a0\u00bb: \u00ab\u00a0Data  OpenStreetMap contributors\u00a0\u00bb,\n      \u00ab\u00a0osm_type\u00a0\u00bb: \u00ab\u00a0way\u00a0\u00bb,\n      \u00ab\u00a0osm_id\u00a0\u00bb: \u00ab\u00a0987654321\u00a0\u00bb,\n      \u00ab\u00a0boundingbox\u00a0\u00bb: [\u00ab\u00a048.867&Prime;,\u00a0\u00bb48.869&Prime;,\u00a0\u00bb2.329&Prime;,\u00a0\u00bb2.331\u00a0\u00bb],\n      \u00ab\u00a0lat\u00a0\u00bb: \u00ab\u00a048.868\u00a0\u00bb,\n      \u00ab\u00a0lon\u00a0\u00bb: \u00ab\u00a02.330\u00a0\u00bb,\n      \u00ab\u00a0display_name\u00a0\u00bb: \u00ab\u00a010 Rue de la Paix, Paris, France\u00a0\u00bb,\n      \u00ab\u00a0class\u00a0\u00bb: \u00ab\u00a0building\u00a0\u00bb,\n      \u00ab\u00a0type\u00a0\u00bb: \u00ab\u00a0yes\u00a0\u00bb,\n      \u00ab\u00a0importance\u00a0\u00bb: 0.51\n    }\n  ]\n  Documentation : https:\/\/nominatim.org\/release-docs\/latest\/api\/Search\/\n*\/\n\n\/* ========== CONFIGURATION (cha\u00eenes en fran\u00e7ais, facilement \u00e9ditables) ========== *\/\nconst TEXT = {\n  scaleResult: (s) =&gt; `R\u00e9sultat : 1 : ${s} (approximatif)`,\n  scaleError: &lsquo;Impossible de calculer l&rsquo;\u00e9chelle avec les valeurs fournies.&rsquo;,\n  savedMsg: &lsquo;Version sauvegard\u00e9e localement.&rsquo;,\n  restoredMsg: &lsquo;Version restaur\u00e9e.&rsquo;,\n  exportedMsg: &lsquo;Export JSON g\u00e9n\u00e9r\u00e9.&rsquo;,\n  geocodeNoResult: &lsquo;Aucun r\u00e9sultat trouv\u00e9.&rsquo;,\n  geocodeError: &lsquo;Erreur API ou limite atteinte. R\u00e9essayer plus tard.&rsquo;\n};\n\n\/* ========== UTILITAIRES ========== *\/\n\n\/\/ Formatage date\nfunction formatDate(ts) {\n  const d = new Date(ts);\n  return d.toLocaleString(&lsquo;fr-FR&rsquo;);\n}\n\n\/* ========== INTERACTIONS STEPPEUR ========== *\/\ndocument.querySelectorAll(&lsquo;[data-step]&rsquo;).forEach(btn =&gt; {\n  btn.addEventListener(&lsquo;click&rsquo;, () =&gt; {\n    const step = btn.getAttribute(&lsquo;data-step&rsquo;);\n    const controlId = btn.getAttribute(&lsquo;aria-controls&rsquo;);\n    const panel = document.getElementById(controlId);\n    const expanded = btn.getAttribute(&lsquo;aria-expanded&rsquo;) === &lsquo;true&rsquo;;\n    btn.setAttribute(&lsquo;aria-expanded&rsquo;, String(!expanded));\n    if (!expanded) {\n      panel.classList.remove(&lsquo;hidden&rsquo;);\n      panel.setAttribute(&lsquo;aria-hidden&rsquo;, &lsquo;false&rsquo;);\n    } else {\n      panel.classList.add(&lsquo;hidden&rsquo;);\n      panel.setAttribute(&lsquo;aria-hidden&rsquo;, &lsquo;true&rsquo;);\n    }\n  });\n});\n\n\/* ========== CALQUES SVG ========== *\/\nconst svgBat = document.getElementById(&lsquo;svg-bat&rsquo;);\nconst svgReseaux = document.getElementById(&lsquo;svg-reseaux&rsquo;);\nconst svgVeg = document.getElementById(&lsquo;svg-veg&rsquo;);\n\ndocument.getElementById(&lsquo;toggle-bat&rsquo;).addEventListener(&lsquo;change&rsquo;, (e) =&gt; {\n  svgBat.style.display = e.target.checked ? \u00a0\u00bb : &lsquo;none&rsquo;;\n});\ndocument.getElementById(&lsquo;toggle-reseaux&rsquo;).addEventListener(&lsquo;change&rsquo;, (e) =&gt; {\n  svgReseaux.style.display = e.target.checked ? \u00a0\u00bb : &lsquo;none&rsquo;;\n});\ndocument.getElementById(&lsquo;toggle-veg&rsquo;).addEventListener(&lsquo;change&rsquo;, (e) =&gt; {\n  svgVeg.style.display = e.target.checked ? \u00a0\u00bb : &lsquo;none&rsquo;;\n});\n\n\/* ========== ORIENTATION (COTE NORD) ========== *\/\nconst sliderNord = document.getElementById(&lsquo;slider-nord&rsquo;);\nconst orientationDeg = document.getElementById(&lsquo;orientation-deg&rsquo;);\nconst svgNordGroup = document.getElementById(&lsquo;svg-nord&rsquo;);\n\nfunction updateNord(deg) {\n  orientationDeg.textContent = `${deg}\u00b0`;\n  \/\/ rotate the nord marker (rotate around its center)\n  svgNordGroup.setAttribute(&lsquo;transform&rsquo;, `translate(360,20) rotate(${deg})`);\n  \/\/ also rotate the letter N to keep it upright for readability when needed:\n  const nLabel = document.getElementById(&lsquo;nord-label&rsquo;);\n  \/\/ keep N upright by counter-rotating the text\n  nLabel.setAttribute(&lsquo;transform&rsquo;, `rotate(${-deg})`);\n}\n\nsliderNord.addEventListener(&lsquo;input&rsquo;, (e) =&gt; {\n  updateNord(e.target.value);\n});\n\ndocument.getElementById(&lsquo;reset-nord&rsquo;).addEventListener(&lsquo;click&rsquo;, () =&gt; {\n  sliderNord.value = 0;\n  updateNord(0);\n});\n\n\/* ========== VERIFICATEUR D&rsquo;ECHELLE ========== *\/\n\/*\n  Simplifi\u00e9 : on calcule un ratio (distance r\u00e9elle en m) \/ (distance mesur\u00e9e en px)\n  et on retourne un facteur d&rsquo;\u00e9chelle en \u00ab\u00a01 : X\u00a0\u00bb o\u00f9 X = (distance r\u00e9elle * pixelsPerUnit) \/ pixelValue\n  Ici on consid\u00e8re qu&rsquo;une unit\u00e9 d&rsquo;image correspond \u00e0 pixels ; on pr\u00e9sente un r\u00e9sultat approch\u00e9.\n*\/\ndocument.getElementById(&lsquo;calc-scale&rsquo;).addEventListener(&lsquo;click&rsquo;, () =&gt; {\n  const realDist = parseFloat(document.getElementById(&lsquo;real-dist&rsquo;).value);\n  const pixelDist = parseFloat(document.getElementById(&lsquo;pixel-dist&rsquo;).value);\n  const out = document.getElementById(&lsquo;scale-result&rsquo;);\n\n  if (!realDist || !pixelDist) {\n    out.textContent = TEXT.scaleError;\n    return;\n  }\n  \/\/ Hypoth\u00e8se : l&rsquo;image repr\u00e9sente realDist m\u00e8tres en pixelDist pixels.\n  \/\/ Le facteur d&rsquo;\u00e9chelle \u00ab\u00a01 : X\u00a0\u00bb (X en cm) souvent exprim\u00e9 en 1:xxxxx.\n  \/\/ Pour simplifier on calcule 1 : (pixelDist \/ realDist)\n  \/\/ Puis on normalise pour que X soit entier et lisible.\n  const metresPerPixel = realDist \/ pixelDist; \/\/ m \/ px\n  \/\/ Suppose 1 unit\u00e9 papier (1 mm) correspond \u00e0 1 px -&gt; we avoid physical DPI complexities.\n  \/\/ We&rsquo;ll provide a simplified \u00ab\u00a01 : N\u00a0\u00bb where N = metresPerPixel * 1000 (to convert m-&gt;mm)\n  const N = Math.round(metresPerPixel * 1000);\n  out.textContent = TEXT.scaleResult(N);\n});\n\n\/* ========== VERSIONS (localStorage) ========== *\/\nconst V_KEY = &lsquo;plan_de_masse_versions_v1&rsquo;;\nconst versionListEl = document.getElementById(&lsquo;versions-list&rsquo;);\n\nfunction loadVersions() {\n  const raw = localStorage.getItem(V_KEY);\n  return raw ? JSON.parse(raw) : [];\n}\n\nfunction saveVersions(arr) {\n  localStorage.setItem(V_KEY, JSON.stringify(arr));\n}\n\nfunction renderVersionList() {\n  const versions = loadVersions();\n  versionListEl.innerHTML = \u00a0\u00bb;\n  if (versions.length === 0) {\n    versionListEl.innerHTML = &lsquo;<li class=\"text-slate-400\">Aucune version enregistr\u00e9e.<\/li>&lsquo;;\n    return;\n  }\n  versions.slice().reverse().forEach((v, idx) =&gt; {\n    const li = document.createElement(&lsquo;li&rsquo;);\n    li.className = &lsquo;flex items-start justify-between bg-slate-700 p-2 rounded&rsquo;;\n    li.innerHTML = `\n      <div>\n        <div class=\"font-medium text-slate-100\">${escapeHtml(v.name)}<\/div>\n        <div class=\"text-xs text-slate-300\">${escapeHtml(v.comment)}<\/div>\n        <div class=\"text-[11px] text-slate-400 mt-1\">${formatDate(v.ts)}<\/div>\n      <\/div>\n      <div class=\"flex flex-col gap-1 ml-3\">\n        <button class=\"restore-btn px-2 py-1 bg-emerald-400 text-slate-900 rounded text-xs focus-ring\">Restaurer<\/button>\n        <button class=\"delete-btn px-2 py-1 bg-rose-500 text-white rounded text-xs focus-ring\">Supprimer<\/button>\n      <\/div>\n    `;\n    versionListEl.appendChild(li);\n\n    li.querySelector(&lsquo;.restore-btn&rsquo;).addEventListener(&lsquo;click&rsquo;, () =&gt; {\n      restoreVersion(v);\n    });\n    li.querySelector(&lsquo;.delete-btn&rsquo;).addEventListener(&lsquo;click&rsquo;, () =&gt; {\n      deleteVersion(v.ts);\n    });\n  });\n}\n\nfunction escapeHtml(str) {\n  return String(str || \u00a0\u00bb).replace(\/[&amp;\u00a0\u00bb&lsquo;]\/g, function (s) {\n    return ({&lsquo;&amp;&rsquo;:&rsquo;&amp;&rsquo;,\u00a0\u00bb:&rsquo;&gt;&rsquo;,'\u00a0\u00bb&lsquo;:&rsquo;&quot;&rsquo;,\u00a0\u00bb&lsquo;\u00a0\u00bb:&rsquo;&#039;&rsquo;}[s]);\n  });\n}\n\nfunction deleteVersion(ts) {\n  const arr = loadVersions().filter(v =&gt; v.ts !== ts);\n  saveVersions(arr);\n  renderVersionList();\n}\n\nfunction restoreVersion(v) {\n  \/\/ Restituer l&rsquo;\u00e9tat simul\u00e9 : calques, orientation, inputs etc.\n  document.getElementById(&lsquo;toggle-bat&rsquo;).checked = !!v.state.bat;\n  document.getElementById(&lsquo;toggle-reseaux&rsquo;).checked = !!v.state.reseaux;\n  document.getElementById(&lsquo;toggle-veg&rsquo;).checked = !!v.state.veg;\n  svgBat.style.display = v.state.bat ? \u00a0\u00bb : &lsquo;none&rsquo;;\n  svgReseaux.style.display = v.state.reseaux ? \u00a0\u00bb : &lsquo;none&rsquo;;\n  svgVeg.style.display = v.state.veg ? \u00a0\u00bb : &lsquo;none&rsquo;;\n\n  sliderNord.value = v.state.nord || 0;\n  updateNord(sliderNord.value);\n\n  document.getElementById(&lsquo;real-dist&rsquo;).value = v.state.realDist || 10;\n  document.getElementById(&lsquo;pixel-dist&rsquo;).value = v.state.pixelDist || 100;\n\n  \/\/ update UI message\n  alert(TEXT.restoredMsg);\n  renderVersionList();\n}\n\ndocument.getElementById(&lsquo;save-version&rsquo;).addEventListener(&lsquo;click&rsquo;, () =&gt; {\n  const name = (document.getElementById(&lsquo;ver-name&rsquo;).value || \u00a0\u00bb).trim();\n  const comment = (document.getElementById(&lsquo;ver-comment&rsquo;).value || \u00a0\u00bb).trim();\n  if (!name) {\n    alert(&lsquo;Donnez un nom \u00e0 la version.&rsquo;);\n    return;\n  }\n  const versions = loadVersions();\n  const v = {\n    ts: Date.now(),\n    name,\n    comment,\n    state: {\n      bat: document.getElementById(&lsquo;toggle-bat&rsquo;).checked,\n      reseaux: document.getElementById(&lsquo;toggle-reseaux&rsquo;).checked,\n      veg: document.getElementById(&lsquo;toggle-veg&rsquo;).checked,\n      nord: parseInt(sliderNord.value, 10),\n      realDist: document.getElementById(&lsquo;real-dist&rsquo;).value,\n      pixelDist: document.getElementById(&lsquo;pixel-dist&rsquo;).value\n    }\n  };\n  versions.push(v);\n  saveVersions(versions);\n  renderVersionList();\n  alert(TEXT.savedMsg);\n});\n\ndocument.getElementById(&lsquo;export-json&rsquo;).addEventListener(&lsquo;click&rsquo;, () =&gt; {\n  const versions = loadVersions();\n  const blob = new Blob([JSON.stringify(versions, null, 2)], {type: &lsquo;application\/json;charset=utf-8&rsquo;});\n  const url = URL.createObjectURL(blob);\n  const a = document.createElement(&lsquo;a&rsquo;);\n  a.href = url;\n  a.download = &lsquo;plan_de_masse_versions.json&rsquo;;\n  document.body.appendChild(a);\n  a.click();\n  a.remove();\n  URL.revokeObjectURL(url);\n  alert(TEXT.exportedMsg);\n});\n\n\/* ========== INITIALISATION ========== *\/\nrenderVersionList();\nupdateNord(0);\n\n\/* ========== RECHERCHE D&rsquo;ADRESSE (Nominatim) ========== *\/\n\/*\n  Attention : Nominatim est gratuit pour usage raisonnable. Respectez la politique d&rsquo;utilisation.\n  Endpoint utilis\u00e9 : https:\/\/nominatim.openstreetmap.org\/search?format=json&amp;q=&#8230;\n*\/\nconst geocodeBtn = document.getElementById(&lsquo;geocode-btn&rsquo;);\nconst geocodeRes = document.getElementById(&lsquo;geocode-result&rsquo;);\nconst addrInput = document.getElementById(&lsquo;addr-query&rsquo;);\nconst clearGeo = document.getElementById(&lsquo;clear-geocode&rsquo;);\n\ngeocodeBtn.addEventListener(&lsquo;click&rsquo;, async () =&gt; {\n  const q = addrInput.value.trim();\n  if (!q) {\n    geocodeRes.textContent = &lsquo;Saisissez une adresse ou un lieu.&rsquo;;\n    return;\n  }\n  geocodeRes.textContent = &lsquo;Recherche en cours\u2026&rsquo;;\n  try {\n    const url = &lsquo;https:\/\/nominatim.openstreetmap.org\/search?format=json&amp;q=&rsquo; + encodeURIComponent(q);\n    const resp = await fetch(url, { headers: { &lsquo;Accept-Language&rsquo;: &lsquo;fr&rsquo; } });\n    if (!resp.ok) throw new Error(&lsquo;HTTP &lsquo; + resp.status);\n    const data = await resp.json();\n    if (!Array.isArray(data) || data.length === 0) {\n      geocodeRes.textContent = TEXT.geocodeNoResult;\n      return;\n    }\n    \/\/ Take the first result\n    const first = data[0];\n    geocodeRes.innerHTML = `\n      <div><strong>${escapeHtml(first.display_name)}<\/strong><\/div>\n      <div>Coordonn\u00e9es : ${first.lat}, ${first.lon}<\/div>\n      <div class=\"text-xs text-slate-400\">Type : ${first.type} \u2014 Source : OpenStreetMap<\/div>\n    `;\n    \/\/ Optionally center the SVG or mark a point (simulate)\n    markGeocodeOnSvg(first);\n  } catch (err) {\n    console.error(err);\n    geocodeRes.textContent = TEXT.geocodeError;\n  }\n});\n\nclearGeo.addEventListener(&lsquo;click&rsquo;, () =&gt; {\n  addrInput.value = \u00a0\u00bb;\n  geocodeRes.textContent = \u00a0\u00bb;\n  \/\/ remove any marker if present\n  const existing = document.getElementById(&lsquo;geocode-marker&rsquo;);\n  if (existing) existing.remove();\n});\n\nfunction markGeocodeOnSvg(place) {\n  \/\/ We simulate a marker inside the SVG area based on lon\/lat mapping to viewBox\n  \/\/ This is illustrative only; not a real projection.\n  const svg = document.getElementById(&lsquo;plan-svg&rsquo;);\n  const vb = svg.viewBox.baseVal; \/\/ { x, y, width, height }\n  \/\/ Simple normalization: map lon\/lat to viewBox by taking fractional part\n  const lon = parseFloat(place.lon);\n  const lat = parseFloat(place.lat);\n  const fx = ( (lon % 1) + 1 ) % 1;\n  const fy = ( (lat % 1) + 1 ) % 1;\n  const x = vb.x + fx * vb.width;\n  const y = vb.y + (1 &#8211; fy) * vb.height;\n\n  \/\/ Remove old marker\n  const old = document.getElementById(&lsquo;geocode-marker&rsquo;);\n  if (old) old.remove();\n\n  const cir = document.createElementNS(&lsquo;http:\/\/www.w3.org\/2000\/svg&rsquo;, &lsquo;circle&rsquo;);\n  cir.setAttribute(&lsquo;id&rsquo;, &lsquo;geocode-marker&rsquo;);\n  cir.setAttribute(&lsquo;cx&rsquo;, x);\n  cir.setAttribute(&lsquo;cy&rsquo;, y);\n  cir.setAttribute(&lsquo;r&rsquo;, 6);\n  cir.setAttribute(&lsquo;fill&rsquo;, &lsquo;#f472b6&rsquo;);\n  cir.setAttribute(&lsquo;stroke&rsquo;, &lsquo;#7c2d12&rsquo;);\n  cir.setAttribute(&lsquo;stroke-width&rsquo;, &lsquo;1.5&rsquo;);\n  svg.appendChild(cir);\n}\n\n\/* ========== PETITES AMELIORATIONS D&rsquo;ACCESSIBILITE ========== *\/\n\/\/ make buttons keyboard-friendly (already buttons) and ensure color contrast in CSS.\n\/\/ Focus styles defined via .focus-ring class and :focus rule in CSS above.\n\n\/* Fin du script *\/\n\n\n<p class=\"wp-block-paragraph\">Un exemple pragmatique : une \u00e9quipe projet a standardis\u00e9 les \u00e9tapes de relev\u00e9, import cadastral, mod\u00e9lisation 3D et export vectoriel. Cette m\u00e9thode a permis une r\u00e9duction des it\u00e9rations entre conception et travaux. Les interviews men\u00e9es en 2026 montrent que les \u00e9quipes gagnent en moyenne deux semaines sur la phase d\u2019instruction en adoptant ce type de workflow.<\/p>\n\n<p class=\"wp-block-paragraph\">La formation reste un levier d\u2019optimisation. Des tutoriels cibl\u00e9s et des sessions pratiques raccourcissent la courbe d\u2019apprentissage, notamment pour QGIS et AutoCAD. Des plateformes proposent maintenant des modules d\u00e9di\u00e9s \u00e0 la r\u00e9alisation de plans de masse conformes aux exigences administratives.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : investir dans une ergonomie adapt\u00e9e et un workflow structur\u00e9 am\u00e9liore la gestion d\u2019espace et la coordination sur le chantier.<\/p>\n\n<figure class=\"is-provider-youtube is-type-video wp-block-embed wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Housebuilder Workflows | R\u00e9alisation de projets r\u00e9sidentiels | 4 - Boostez vos plans de chantier\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/YJWvYBJQ-i4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n<h2 class=\"wp-block-heading\">R\u00e9glementation, d\u00e9p\u00f4t de dossier et limites du \u00ab\u00a0Do It Yourself\u00a0\u00bb pour un plan de masse conforme<\/h2>\n\n<p class=\"wp-block-paragraph\">La r\u00e9glementation encadre strictement le contenu d\u2019un <strong>plan de masse<\/strong> pour une demande de permis ou une d\u00e9claration pr\u00e9alable. Le document doit notamment pr\u00e9ciser l\u2019implantation b\u00e2timent, les acc\u00e8s, les r\u00e9seaux, l\u2019\u00e9vacuation des eaux pluviales et les espaces verts. Le non-respect de ces exigences conduit souvent \u00e0 des demandes de pi\u00e8ces compl\u00e9mentaires ou \u00e0 un rejet du dossier.<\/p>\n\n<p class=\"wp-block-paragraph\">Les projets simples peuvent \u00eatre r\u00e9alis\u00e9s en mode \u00ab Do It Yourself \u00bb si l\u2019utilisateur respecte les r\u00e8gles d\u2019\u00e9chelle et d\u2019orientation et si le terrain est plat. Cependant, d\u00e8s que des contraintes d\u2019altim\u00e9trie ou des servitudes entrent en jeu, le recours \u00e0 un professionnel limite les risques administratifs et techniques.<\/p>\n\n<p class=\"wp-block-paragraph\">Les \u00e9l\u00e9ments essentiels \u00e0 v\u00e9rifier avant le d\u00e9p\u00f4t :<\/p>\n\n<ul class=\"wp-block-list\"><li>Pr\u00e9sence d\u2019une <strong>\u00e9chelle graphique<\/strong> et d\u2019une orientation nord.<\/li><li>Indication des hauteurs projet\u00e9es, distances aux limites et emprises.<\/li><li>Localisation des raccordements aux r\u00e9seaux et sch\u00e9ma d\u2019\u00e9vacuation des eaux pluviales.<\/li><li>Indication des arbres conserv\u00e9s ou \u00e0 abattre et des espaces de stationnement.<\/li><li>Export en format vectoriel lisible par l\u2019administration.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Pour des guides pratiques sur la conformit\u00e9 et la r\u00e9daction du dossier, des ressources sp\u00e9cialis\u00e9es offrent des tutoriels pas \u00e0 pas et des mod\u00e8les. Par exemple, des explications d\u00e9taill\u00e9es sur la r\u00e9alisation d\u2019un plan de masse pour une demande de permis sont disponibles sur <a href=\"https:\/\/www.construires.fr\/plan-de-masse\/plan-masse-tutoriel\/\" target=\"_blank\" rel=\"noopener\">tutoriels sp\u00e9cialis\u00e9s<\/a> et des articles de fond sur la d\u00e9finition et l&rsquo;utilisation du plan de masse figurent sur <a href=\"https:\/\/www.geometre-confiance.fr\/guide\/2026\/07\/08\/plan-de-masse-definition-et-utilisation-en-urbanisme\/\">guides de g\u00e9om\u00e8tre<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Enfin, la d\u00e9cision entre logiciel et professionnel repose sur l\u2019\u00e9quation : complexit\u00e9 du projet versus ma\u00eetrise r\u00e9glementaire. Un plan de masse professionnel garantit la conformit\u00e9 et offre un suivi, tandis qu\u2019une r\u00e9alisation en interne peut convenir pour des interventions simples \u00e0 moindre co\u00fbt.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : conna\u00eetre les exigences administratives et pr\u00e9parer un plan topographique pr\u00e9cis permet de s\u00e9curiser le d\u00e9p\u00f4t et d\u2019acc\u00e9l\u00e9rer l\u2019obtention des autorisations.<\/p>\n\n\n{\u00ab\u00a0@context\u00a0\u00bb:\u00a0\u00bbhttps:\/\/schema.org\u00a0\u00bb,\u00a0\u00bb@type\u00a0\u00bb:\u00a0\u00bbFAQPage\u00a0\u00bb,\u00a0\u00bbmainEntity\u00a0\u00bb:[{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbQuestion\u00a0\u00bb,\u00a0\u00bbname\u00a0\u00bb:\u00a0\u00bbQuels u00e9lu00e9ments doivent obligatoirement figurer sur un plan de masse pour un permis de construire ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbLe plan doit comporter lu2019u00e9chelle graphique, lu2019orientation nord, lu2019implantation des constructions existantes et projetu00e9es avec dimensions, les accu00e8s, les ru00e9seaux et lu2019u00e9vacuation des eaux pluviales. Les arbres, les servitudes et les espaces de stationnement doivent u00e9galement u00eatre indiquu00e9s.\u00a0\u00bb}},{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbQuestion\u00a0\u00bb,\u00a0\u00bbname\u00a0\u00bb:\u00a0\u00bbQuel logiciel choisir pour un petit projet ru00e9sidentiel sans connaissances techniques ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbPour un projet simple, les outils comme SketchUp Free, Floorplanner ou HomeByMe offrent une prise en main rapide et une modu00e9lisation 3D suffisante. Veiller toutefois u00e0 produire un export vectoriel si nu00e9cessaire pour la mairie.\u00a0\u00bb}},{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbQuestion\u00a0\u00bb,\u00a0\u00bbname\u00a0\u00bb:\u00a0\u00bbQuand faut-il recourir u00e0 un gu00e9omu00e8tre ou un professionnel pour le plan de masse ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbIl est recommandu00e9 de faire appel u00e0 un professionnel du00e8s que le terrain pru00e9sente des contraintes du2019altimu00e9trie, des servitudes, des ru00e9seaux complexes ou lorsque le PLU impose des exigences pru00e9cises. Le professionnel garantit la conformitu00e9 du dossier.\u00a0\u00bb}},{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbQuestion\u00a0\u00bb,\u00a0\u00bbname\u00a0\u00bb:\u00a0\u00bbExiste-t-il des ressources pour apprendre u00e0 concevoir un plan de masse ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbOui, des tutoriels et guides pratiques permettent du2019apprendre les u00e9tapes de conception. Des articles et comparatifs publiu00e9s par des spu00e9cialistes du domaine mettent en perspective les outils adaptu00e9s u00e0 chaque niveau du2019utilisateur.\u00a0\u00bb}}]}\n\n<h3>Quels \u00e9l\u00e9ments doivent obligatoirement figurer sur un plan de masse pour un permis de construire ?<\/h3>\n<p>Le plan doit comporter l\u2019\u00e9chelle graphique, l\u2019orientation nord, l\u2019implantation des constructions existantes et projet\u00e9es avec dimensions, les acc\u00e8s, les r\u00e9seaux et l\u2019\u00e9vacuation des eaux pluviales. Les arbres, les servitudes et les espaces de stationnement doivent \u00e9galement \u00eatre indiqu\u00e9s.<\/p>\n<h3>Quel logiciel choisir pour un petit projet r\u00e9sidentiel sans connaissances techniques ?<\/h3>\n<p>Pour un projet simple, les outils comme SketchUp Free, Floorplanner ou HomeByMe offrent une prise en main rapide et une mod\u00e9lisation 3D suffisante. Veiller toutefois \u00e0 produire un export vectoriel si n\u00e9cessaire pour la mairie.<\/p>\n<h3>Quand faut-il recourir \u00e0 un g\u00e9om\u00e8tre ou un professionnel pour le plan de masse ?<\/h3>\n<p>Il est recommand\u00e9 de faire appel \u00e0 un professionnel d\u00e8s que le terrain pr\u00e9sente des contraintes d\u2019altim\u00e9trie, des servitudes, des r\u00e9seaux complexes ou lorsque le PLU impose des exigences pr\u00e9cises. Le professionnel garantit la conformit\u00e9 du dossier.<\/p>\n<h3>Existe-t-il des ressources pour apprendre \u00e0 concevoir un plan de masse ?<\/h3>\n<p>Oui, des tutoriels et guides pratiques permettent d\u2019apprendre les \u00e9tapes de conception. Des articles et comparatifs publi\u00e9s par des sp\u00e9cialistes du domaine mettent en perspective les outils adapt\u00e9s \u00e0 chaque niveau d\u2019utilisateur.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>La r\u00e9ussite d&rsquo;un projet de construction tient souvent \u00e0 la qualit\u00e9 du plan de masse. Outil central du dossier d&rsquo;urbanisme, &#8230; <a title=\"Plan de masse logiciel : comment optimiser votre projet de construction\" class=\"read-more\" href=\"https:\/\/www.geometre-confiance.fr\/guide\/2026\/07\/24\/plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction\/\" aria-label=\"En savoir plus sur Plan de masse logiciel : comment optimiser votre projet de construction\">Lire plus<\/a><\/p>\n","protected":false},"author":2,"featured_media":304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-travaux-construction"],"_links":{"self":[{"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/posts\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/comments?post=307"}],"version-history":[{"count":0,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/posts\/307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/media\/304"}],"wp:attachment":[{"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/media?parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/categories?post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/tags?post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}