{"id":335,"date":"2026-08-04T08:11:48","date_gmt":"2026-08-04T08:11:48","guid":{"rendered":"https:\/\/www.geometre-confiance.fr\/guide\/2026\/08\/04\/logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet\/"},"modified":"2026-08-04T08:11:48","modified_gmt":"2026-08-04T08:11:48","slug":"logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet","status":"publish","type":"post","link":"https:\/\/www.geometre-confiance.fr\/guide\/2026\/08\/04\/logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet\/","title":{"rendered":"Logiciel plan de masse\u00a0: comment choisir l\u2019outil id\u00e9al pour votre projet"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Choisir un <strong>logiciel plan de masse<\/strong> pour un <strong>projet immobilier<\/strong> exige d\u2019\u00e9quilibrer pr\u00e9cision technique, ergonomie et co\u00fbt. Ce texte propose une lecture pragmatique des crit\u00e8res \u00e0 prioriser selon la complexit\u00e9 du dossier : usage particulier pour une extension, d\u00e9p\u00f4t d\u2019un permis de construire ou projet professionnel int\u00e9gr\u00e9 au BIM. La r\u00e9flexion d\u00e9bute par la nature m\u00eame du plan de masse \u2014 implantations, distances aux limites, r\u00e9seaux et altim\u00e9trie \u2014 et se poursuit par un tri des familles d\u2019outils : applications grand public, solutions CAO\/BIM et services en ligne. Chaque choix logiciel s\u2019appuie sur des cas concrets, des exemples chiffr\u00e9s et des m\u00e9thodes op\u00e9rationnelles pour produire un plan conforme aux exigences administratives et lisible par un instructeur.<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Prioriser l\u2019\u00e9chelle et les cotations<\/strong> : indispensables pour un dossier PCMI.<\/li><li><strong>Adapter l\u2019outil au projet<\/strong> : simplicit\u00e9 pour une d\u00e9claration pr\u00e9alable, CAO\/BIM pour dossiers complexes.<\/li><li><strong>V\u00e9rifier les imports\/exports<\/strong> (DWG\/DXF, PDF haute d\u00e9finition) pour la collaboration.<\/li><li><strong>Tester l\u2019ergonomie<\/strong> via un essai gratuit : une prise en main rapide \u00e9vite perte de temps.<\/li><li><strong>Contr\u00f4ler l\u2019int\u00e9gration topographique<\/strong> : courbes de niveau et altim\u00e9trie si pente significative.<\/li><\/ul>\n\n<h2 class=\"wp-block-heading\">Comprendre le plan de masse et ses exigences pour choisir un logiciel plan de masse<\/h2>\n\n<p class=\"wp-block-paragraph\">Un <strong>plan de masse<\/strong> doit pr\u00e9senter l\u2019implantation pr\u00e9cise d\u2019un b\u00e2timent sur une parcelle, avec toutes les cotations obligatoires, l\u2019orientation, l\u2019emprise et les acc\u00e8s. Les documents PCMI (notamment PCMI2) exigent la repr\u00e9sentation des limites, les distances aux limites s\u00e9paratives, la pr\u00e9sence de r\u00e9seaux, la v\u00e9g\u00e9tation importante et la topographie si elle influe sur l\u2019implantation. Ces attentes r\u00e9glementaires dictent le niveau de fonctionnalit\u00e9s requis dans un <strong>outil id\u00e9al<\/strong> : gestion des \u00e9chelles (1\/100, 1\/200, 1\/500), calques multiples, symboles normalis\u00e9s et export vers des formats reconnus par les services d\u2019urbanisme.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour illustrer, prenons trois profils types : un particulier pr\u00e9parant une extension de 30 m\u00b2, une petite agence r\u00e9alisant plusieurs maisons individuelles et un bureau d\u2019\u00e9tudes travaillant sur un lotissement. Le particulier aura besoin d\u2019un logiciel accessible, avec cotations automatiques et export PDF, tandis que l\u2019agence souhaitera des \u00e9changes DWG\/DXF et un rendu 3D pour les visuels. Le bureau d\u2019\u00e9tudes exigera une solution CAO\/BIM pour la tra\u00e7abilit\u00e9, la collaboration multi-utilisateurs et l\u2019int\u00e9gration des r\u00e9seaux. Cette diff\u00e9renciation guide le <strong>choix logiciel<\/strong> : il n\u2019existe pas d\u2019outil universellement sup\u00e9rieur, mais un outil adapt\u00e9 \u00e0 un contexte pr\u00e9cis.<\/p>\n\n<p class=\"wp-block-paragraph\">La topographie joue un r\u00f4le d\u00e9cisif. Sur un terrain plat, une mod\u00e9lisation 2D pr\u00e9cise peut suffire. Sur un terrain pentu, l\u2019outil doit g\u00e9rer les courbes de niveau et l\u2019altim\u00e9trie pour \u00e9viter des erreurs d\u2019implantation et de calcul d\u2019emprise au sol. Dans ce dernier cas, une solution capable d\u2019importer des relev\u00e9s topographiques ou des fichiers fournis par le g\u00e9om\u00e8tre sera pr\u00e9f\u00e9rable. Les ressources du g\u00e9om\u00e8tre, d\u00e9crites dans des guides sp\u00e9cialis\u00e9s, apportent des pr\u00e9cisions cruciales pour la fiabilit\u00e9 du dessin et la conformit\u00e9 du dossier <a href=\"https:\/\/www.geometre-confiance.fr\/guide\/2026\/07\/09\/quest-ce-quun-plan-de-masse-et-pourquoi-est-il-essentiel-en-architecture\/\">qu&rsquo;est-ce qu&rsquo;un plan de masse<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Exemple concret : un propri\u00e9taire souhaite b\u00e2tir une extension sur un terrain de 800 m\u00b2 pr\u00e9sentant une pente de 6 %. Un logiciel grand public simple risque de ne pas permettre de repr\u00e9senter les talus ni de calculer l\u2019emprise r\u00e9elle en tenant compte des d\u00e9nivel\u00e9s. Le choix d\u2019un logiciel avec gestion d\u2019altim\u00e9trie ou la collaboration avec un g\u00e9om\u00e8tre \u00e9vitera des demandes de pi\u00e8ces compl\u00e9mentaires lors de l\u2019instruction du permis. L\u2019insight cl\u00e9 : d\u00e9finir pr\u00e9cis\u00e9ment les \u00e9l\u00e9ments obligatoires du dossier avant de s\u00e9lectionner l\u2019outil afin d\u2019\u00e9viter un surdimensionnement ou une insuffisance fonctionnelle.<\/p>\n\n<p class=\"wp-block-paragraph\">Cl\u00f4ture de section : clarifier les exigences du plan de masse simplifie la s\u00e9lection de l\u2019outil id\u00e9al et pr\u00e9pare la transition vers le choix entre solutions gratuites, en ligne ou professionnelles.<\/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\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-1.jpg\" alt=\"d\u00e9couvrez comment choisir le logiciel de plan de masse id\u00e9al pour optimiser la gestion et la r\u00e9ussite de votre projet gr\u00e2ce \u00e0 nos conseils pratiques.\" class=\"wp-image-333\" srcset=\"https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-1.jpg 1376w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-1-300x167.jpg 300w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-1-1024x572.jpg 1024w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-1-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><\/figure>\n\n<h2 class=\"wp-block-heading\">Comparatif des types d&rsquo;outils : gratuits, en ligne, CAO et BIM pour le plan de masse<\/h2>\n\n<p class=\"wp-block-paragraph\">La cat\u00e9gorie d\u2019un logiciel pour plan de masse d\u00e9coule du profil d\u2019usage et du budget. Les solutions se r\u00e9partissent en quatre grandes familles : logiciels grand public (Sweet Home 3D, Archifacile), applications en ligne (SketchUp Free, Kozikaza), logiciels CAO 2D (LibreCAD, AutoCAD) et solutions BIM (Revit, ArchiCAD). Chacune poss\u00e8de ses forces et limites en termes de <strong>mod\u00e9lisation 2D<\/strong>, d\u2019exports professionnels, et d\u2019ergonomie.<\/p>\n\n<p class=\"wp-block-paragraph\">Le tableau suivant synth\u00e9tise les usages typiques et les capacit\u00e9s essentielles pour un plan de masse usable en mairie.<\/p>\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Type d&rsquo;outil<\/th>\n<th>Usage typique<\/th>\n<th>Points forts<\/th>\n<th>Limites<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Logiciels grand public<\/td>\n<td>Particuliers, esquisses<\/td>\n<td>Facilit\u00e9 d&rsquo;utilisation, export PDF<\/td>\n<td>Symboles limit\u00e9s, gestion topographique limit\u00e9e<\/td>\n<\/tr>\n<tr>\n<td>Applications en ligne<\/td>\n<td>Visualisation 3D, insertion paysag\u00e8re<\/td>\n<td>Accessibilit\u00e9, biblioth\u00e8que d&rsquo;objets<\/td>\n<td>Fonctions professionnelles restreintes<\/td>\n<\/tr>\n<tr>\n<td>CAO 2D<\/td>\n<td>Bureaux techniques, plans techniques<\/td>\n<td>Pr\u00e9cision, formats DWG\/DXF<\/td>\n<td>Courbe d&rsquo;apprentissage, co\u00fbt<\/td>\n<\/tr>\n<tr>\n<td>BIM<\/td>\n<td>Projets complexes, multi-utilisateurs<\/td>\n<td>Maquette num\u00e9rique, coh\u00e9rence documentaire<\/td>\n<td>Investissement et formation importants<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Exemples pratiques aident \u00e0 cadrer : pour une d\u00e9claration pr\u00e9alable (abri de jardin, piscine), des outils gratuits comme Archifacile ou Sweet Home 3D sont suffisants. Pour un permis complet de maison individuelle, la combinaison SketchUp Pro + Archifacile offre un bon compromis entre visualisation 3D et cotations automatiques. Les professionnels travaillant en BIM s\u2019orienteront vers Revit ou ArchiCAD, indispensables pour des \u00e9changes multi-utilisateurs et la gestion documentaire. Une comparaison d\u00e9taill\u00e9e de logiciels disponibles est utile pour confirmer un choix, par exemple via des revues sp\u00e9cialis\u00e9es qui synth\u00e9tisent ces diff\u00e9rences <a href=\"https:\/\/www.construires.fr\/plan-de-masse\/plan-masse-logiciel\/\" target=\"_blank\" rel=\"noopener\">guide logiciel plan de masse<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Cas d\u2019usage : un dessinateur ind\u00e9pendant confronte souvent la n\u00e9cessit\u00e9 d\u2019un rendu 3D attractif et d\u2019un plan cot\u00e9. SketchUp Pro permet d\u2019obtenir des inserts paysagers et d\u2019exporter en DWG pour les partenaires qui travaillent sous AutoCAD. Les alternatives gratuites conviendront pour un premier jet, mais attention aux limitations d\u2019export et aux filigranes. Pour l\u2019optimisation des flux dans un bureau, l\u2019utilisation d\u2019un logiciel BIM r\u00e9duit les incoh\u00e9rences entre plan de masse, coupes et fa\u00e7ades, comme expliqu\u00e9 dans des ressources techniques r\u00e9centes <a href=\"https:\/\/www.geometre-confiance.fr\/guide\/2026\/07\/24\/plan-de-masse-logiciel-comment-optimiser-votre-projet-de-construction\/\">optimiser votre projet de construction<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Cl\u00f4ture de section : s\u00e9lectionner la bonne famille d\u2019outils conditionne la qualit\u00e9 du <strong>dessin plan<\/strong> et la facilit\u00e9 d\u2019\u00e9change avec les parties prenantes ; la section suivante d\u00e9taille les crit\u00e8res pr\u00e9cis \u00e0 contr\u00f4ler avant l\u2019achat.<\/p>\n\n<h2 class=\"wp-block-heading\">Crit\u00e8res essentiels pour le choix logiciel : fonctionnalit\u00e9s, ergonomie et budget<\/h2>\n\n<p class=\"wp-block-paragraph\">Avant d\u2019acheter un logiciel, d\u00e9finir une grille de crit\u00e8res r\u00e9duit les risques d\u2019erreur. Les \u00e9l\u00e9ments fondamentaux incluent la gestion des \u00e9chelles, l\u2019import du fond cadastral, la cotation automatique, l\u2019export DWG\/DXF, les biblioth\u00e8ques de symboles, et la possibilit\u00e9 d\u2019ajouter la topographie. \u00c0 ces crit\u00e8res techniques s\u2019ajoutent l\u2019ergonomie, le support francophone, la disponibilit\u00e9 de tutoriels et le co\u00fbt global (licence, abonnement, formation).<\/p>\n\n<p class=\"wp-block-paragraph\">Un tableau comparatif des fonctionnalit\u00e9s guide le choix, mais une v\u00e9rification pratique via un essai gratuit reste indispensable. Tester un logiciel signifie v\u00e9rifier la prise en main en 30 \u00e0 60 minutes : tracer une parcelle, importer un extrait cadastral, placer un projet et g\u00e9n\u00e9rer un export PDF en \u00e9chelle 1\/200. Si l\u2019interface devient rapidement intuitive, l\u2019outil facilite le travail sur le long terme.<\/p>\n\n<p class=\"wp-block-paragraph\">Budget : pour un usage ponctuel, des solutions \u00e0 moins de 200 \u20ac ou gratuites conviennent. Pour un usage professionnel r\u00e9gulier, \u00e9valuer le co\u00fbt annuel par utilisateur est essentiel : AutoCAD LT se situe autour de quelques centaines d\u2019euros par an, tandis que Revit d\u00e9passe souvent 2 000\u20133 000 \u20ac annuels. Le calcul se fait en mettant en parall\u00e8le le gain de productivit\u00e9 et les \u00e9conomies r\u00e9alis\u00e9es sur les temps de conception.<\/p>\n\n<p class=\"wp-block-paragraph\">Ergonomie et support sont souvent sous-estim\u00e9s. Une interface claire, des guides pas-\u00e0-pas en fran\u00e7ais et une communaut\u00e9 active r\u00e9duisent drastiquement la courbe d\u2019apprentissage. Des \u00e9diteurs proposent des webinaires et des formations qui acc\u00e9l\u00e8rent la mont\u00e9e en comp\u00e9tence. Pour des ressources compl\u00e9mentaires sur le choix des outils et les bonnes pratiques op\u00e9rationnelles, consulter des guides sp\u00e9cialis\u00e9s permet de gagner du temps <a href=\"https:\/\/permis.hello-archi.com\/quel-logiciel-utiliser-pour-creer-un-plan-de-masse\/\" target=\"_blank\" rel=\"noopener\">quel logiciel utiliser pour cr\u00e9er un plan de masse<\/a>.<\/p>\n\n\n\n<!-- Bloc copy\/collable : Comparateur interactif (HTML + JS) -->\n<div id=\"comparateur-plan-de-masse\" class=\"max-w-6xl mx-auto p-4\" style=\"max-height:2000px;overflow:auto\">\n  <!-- En-t\u00eate -->\n  <header class=\"mb-4\">\n    <h2 id=\"cmp-title\" class=\"text-2xl font-extrabold text-slate-800\">Comparateur interactif \u2014 Logiciels pour plan de masse<\/h2>\n    <p id=\"cmp-desc\" class=\"text-slate-600 mt-1\">\n      Ajustez l&rsquo;importance des crit\u00e8res de votre projet pour voir quel logiciel correspond le mieux. Toutes les cha\u00eenes sont en fran\u00e7ais et modifiables.\n    <\/p>\n  <\/header>\n\n  <!-- Contr\u00f4les -->\n  <section aria-label=\"Contr\u00f4les du comparateur\" class=\"mb-4 grid gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n    <div>\n      <label for=\"search-input\" class=\"text-sm font-medium text-slate-700\">Recherche (crit\u00e8re)<\/label>\n      \n    <\/div>\n\n    <div>\n      <label for=\"filter-necessite\" class=\"text-sm font-medium text-slate-700\">Filtrer par n\u00e9cessit\u00e9<\/label>\n      \n        Tous\n        Indispensable\n        Recommand\u00e9\n        Selon projet\n      \n    <\/div>\n\n    <div>\n      <label for=\"filter-priorite\" class=\"text-sm font-medium text-slate-700\">Filtrer par priorit\u00e9<\/label>\n      \n        Tous\n        Haute\n        Moyenne\n        Haute si pente\n      \n    <\/div>\n\n    <div>\n      <label for=\"min-score\" class=\"text-sm font-medium text-slate-700\">Seuil de r\u00e9sultat<\/label>\n      \n      <div class=\"text-xs text-slate-600 mt-1\">Afficher outils avec score \u2265 <span id=\"min-score-val\">0<\/span>%<\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"grid gap-6 lg:grid-cols-2\">\n    <!-- Tableau des crit\u00e8res -->\n    <section aria-label=\"Tableau des crit\u00e8res\" class=\"bg-white rounded border p-4 shadow-sm\">\n      <div class=\"flex items-center justify-between mb-3\">\n        <h3 class=\"text-lg font-semibold text-slate-800\">Crit\u00e8res projet (modifiable)<\/h3>\n        <div class=\"text-sm text-slate-600\">Glissez le curseur pour pond\u00e9rer chaque crit\u00e8re<\/div>\n      <\/div>\n\n      <div role=\"table\" class=\"w-full\" aria-label=\"Tableau des crit\u00e8res de plan de masse\">\n        <!-- Ent\u00eates -->\n        <div role=\"row\" class=\"grid grid-cols-6 gap-2 text-xs text-slate-500 pb-2 border-b\">\n          <div role=\"columnheader\" class=\"col-span-2 font-medium\">Crit\u00e8re<\/div>\n          <div role=\"columnheader\" class=\"font-medium\">N\u00e9cessit\u00e9<\/div>\n          <div role=\"columnheader\" class=\"font-medium\">Priorit\u00e9<\/div>\n          <div role=\"columnheader\" class=\"font-medium\">Importance<\/div>\n          <div role=\"columnheader\" class=\"font-medium\">Requis ?<\/div>\n        <\/div>\n\n        <!-- Lignes g\u00e9n\u00e9r\u00e9es par JS -->\n        <div id=\"criteria-rows\" class=\"mt-2 space-y-2\"><\/div>\n      <\/div>\n\n      <div class=\"mt-4 flex gap-2\">\n        <button id=\"reset-weights\" class=\"px-3 py-1 rounded bg-slate-100 text-slate-800 hover:bg-slate-200\">R\u00e9initialiser poids<\/button>\n        <button id=\"auto-weight\" class=\"px-3 py-1 rounded bg-indigo-600 text-white hover:bg-indigo-700\">Appliquer poids par d\u00e9faut<\/button>\n        <div class=\"ml-auto text-sm text-slate-500 self-center\" id=\"total-weight-display\">Poids total : 0<\/div>\n      <\/div>\n    <\/section>\n\n    <!-- R\u00e9sultats \/ Outils -->\n    <section aria-label=\"R\u00e9sultats des outils\" class=\"bg-white rounded border p-4 shadow-sm\">\n      <div class=\"flex items-center justify-between mb-3\">\n        <h3 class=\"text-lg font-semibold text-slate-800\">Classement des logiciels<\/h3>\n        <div class=\"text-sm text-slate-600\">Tri automatique selon vos pond\u00e9rations<\/div>\n      <\/div>\n\n      <div class=\"mb-3\">\n        <label for=\"sort-select\" class=\"text-sm text-slate-700\">Trier par<\/label>\n        \n          Score (du plus \u00e9lev\u00e9)\n          Score (du plus bas)\n          Nom (A \u2192 Z)\n          Nom (Z \u2192 A)\n        \n      <\/div>\n\n      <div id=\"tools-list\" role=\"list\" class=\"space-y-3\" aria-live=\"polite\"><\/div>\n\n      <p class=\"text-xs text-slate-500 mt-3\">\n        Astuce : cochez \u00ab\u00a0Requis\u00a0\u00bb pour indiquer qu&rsquo;un crit\u00e8re est indispensable \u00e0 votre projet \u2014 les logiciels sans ce crit\u00e8re verront leur score p\u00e9nalis\u00e9.\n      <\/p>\n    <\/section>\n  <\/div>\n\n  <!-- D\u00e9tails \/ L\u00e9gende -->\n  <section class=\"mt-4 text-sm text-slate-600\">\n    <h4 class=\"font-semibold\">L\u00e9gende<\/h4>\n    <ul class=\"list-disc ml-5 mt-1\">\n      <li><strong>Importance<\/strong> : valeur 0 \u2192 5 que vous attribuez au crit\u00e8re.<\/li>\n      <li><strong>Requis<\/strong> : si activ\u00e9, les outils ne disposant pas du crit\u00e8re perdent des points importants.<\/li>\n      <li>Les r\u00e9sultats se recalculent automatiquement lorsque vous modifiez les poids, filtres ou recherche.<\/li>\n    <\/ul>\n  <\/section>\n<\/div>\n\n\n\/*\n  Comparateur interactif &#8211; Logiciels plan de masse (tout en fran\u00e7ais)\n  &#8211; Code comment\u00e9 et organis\u00e9.\n  &#8211; Pas d&rsquo;API externe n\u00e9cessaire (donn\u00e9es locales).\n  &#8211; Accessible (labels, aria-live pour r\u00e9sultats).\n  &#8211; Texte fran\u00e7ais modifiable dans la section i18n ci-dessous.\n*\/\n\n\/* === i18n (cha\u00eenes modifiables facilement) === *\/\nconst I18N = {\n  titre: \u00ab\u00a0Comparateur interactif \u2014 Logiciels pour plan de masse\u00a0\u00bb,\n  description: \u00ab\u00a0Ajustez l&rsquo;importance des crit\u00e8res de votre projet pour voir quel logiciel correspond le mieux.\u00a0\u00bb,\n  resetWeights: \u00ab\u00a0R\u00e9initialiser poids\u00a0\u00bb,\n  autoWeight: \u00ab\u00a0Appliquer poids par d\u00e9faut\u00a0\u00bb,\n  totalWeight: \u00ab\u00a0Poids total\u00a0\u00bb,\n  searchPlaceholder: \u00ab\u00a0Filtrer par texte&#8230;\u00a0\u00bb,\n  tooltipRequis: \u00ab\u00a0Marquez ce crit\u00e8re comme requis pour p\u00e9naliser les outils qui ne le poss\u00e8dent pas\u00a0\u00bb,\n};\n\n\/* === Donn\u00e9es initiales (issues du fragment fourni) ===\nFormat CSV-like donn\u00e9 :\nCrit\u00e8res;N\u00e9cessit\u00e9;Priorit\u00e9\nGestion des \u00e9chelles;Indispensable;Haute\nImport cadastre\/satellite;Recommand\u00e9;Moyenne\nExport PDF\/DWG;Indispensable;Haute\nBiblioth\u00e8que symboles;Recommand\u00e9;Moyenne\nTopographie (courbes de niveau);Selon projet;Haute si pente\nSupport et tutoriels;Recommand\u00e9;Moyenne\n*\/\nconst rawCriteria = [\n  { nom: \u00ab\u00a0Gestion des \u00e9chelles\u00a0\u00bb, necessite: \u00ab\u00a0Indispensable\u00a0\u00bb, priorite: \u00ab\u00a0Haute\u00a0\u00bb },\n  { nom: \u00ab\u00a0Import cadastre\/satellite\u00a0\u00bb, necessite: \u00ab\u00a0Recommand\u00e9\u00a0\u00bb, priorite: \u00ab\u00a0Moyenne\u00a0\u00bb },\n  { nom: \u00ab\u00a0Export PDF\/DWG\u00a0\u00bb, necessite: \u00ab\u00a0Indispensable\u00a0\u00bb, priorite: \u00ab\u00a0Haute\u00a0\u00bb },\n  { nom: \u00ab\u00a0Biblioth\u00e8que symboles\u00a0\u00bb, necessite: \u00ab\u00a0Recommand\u00e9\u00a0\u00bb, priorite: \u00ab\u00a0Moyenne\u00a0\u00bb },\n  { nom: \u00ab\u00a0Topographie (courbes de niveau)\u00a0\u00bb, necessite: \u00ab\u00a0Selon projet\u00a0\u00bb, priorite: \u00ab\u00a0Haute si pente\u00a0\u00bb },\n  { nom: \u00ab\u00a0Support et tutoriels\u00a0\u00bb, necessite: \u00ab\u00a0Recommand\u00e9\u00a0\u00bb, priorite: \u00ab\u00a0Moyenne\u00a0\u00bb },\n];\n\n\/* === Outils (exemples) &#8211; toutes les cha\u00eenes en fran\u00e7ais ===\n  Pour chaque crit\u00e8re, valeur: 1 (oui), 0.5 (partiel), 0 (non)\n  Ces valeurs sont fictives et servent uniquement pour le comparateur.\n*\/\nconst tools = [\n  {\n    nom: \u00ab\u00a0QGIS\u00a0\u00bb,\n    description: \u00ab\u00a0Solution open-source puissante pour SIG, bonne import\/export et topographie via plugins.\u00a0\u00bb,\n    features: {\n      \u00ab\u00a0Gestion des \u00e9chelles\u00a0\u00bb: 1,\n      \u00ab\u00a0Import cadastre\/satellite\u00a0\u00bb: 1,\n      \u00ab\u00a0Export PDF\/DWG\u00a0\u00bb: 1,\n      \u00ab\u00a0Biblioth\u00e8que symboles\u00a0\u00bb: 1,\n      \u00ab\u00a0Topographie (courbes de niveau)\u00a0\u00bb: 1,\n      \u00ab\u00a0Support et tutoriels\u00a0\u00bb: 1,\n    },\n  },\n  {\n    nom: \u00ab\u00a0AutoCAD\u00a0\u00bb,\n    description: \u00ab\u00a0R\u00e9f\u00e9rence professionnelle pour DAO\/CAO, solide export\/import DWG\/DXF.\u00a0\u00bb,\n    features: {\n      \u00ab\u00a0Gestion des \u00e9chelles\u00a0\u00bb: 1,\n      \u00ab\u00a0Import cadastre\/satellite\u00a0\u00bb: 1,\n      \u00ab\u00a0Export PDF\/DWG\u00a0\u00bb: 1,\n      \u00ab\u00a0Biblioth\u00e8que symboles\u00a0\u00bb: 1,\n      \u00ab\u00a0Topographie (courbes de niveau)\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Support et tutoriels\u00a0\u00bb: 1,\n    },\n  },\n  {\n    nom: \u00ab\u00a0SketchUp\u00a0\u00bb,\n    description: \u00ab\u00a0Outil orient\u00e9 mod\u00e9lisation 3D, import satellite possible via extensions.\u00a0\u00bb,\n    features: {\n      \u00ab\u00a0Gestion des \u00e9chelles\u00a0\u00bb: 1,\n      \u00ab\u00a0Import cadastre\/satellite\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Export PDF\/DWG\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Biblioth\u00e8que symboles\u00a0\u00bb: 1,\n      \u00ab\u00a0Topographie (courbes de niveau)\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Support et tutoriels\u00a0\u00bb: 1,\n    },\n  },\n  {\n    nom: \u00ab\u00a0ArchiCAD\u00a0\u00bb,\n    description: \u00ab\u00a0Logiciel BIM complet, bon pour plans d&rsquo;implantation, export professionnel.\u00a0\u00bb,\n    features: {\n      \u00ab\u00a0Gestion des \u00e9chelles\u00a0\u00bb: 1,\n      \u00ab\u00a0Import cadastre\/satellite\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Export PDF\/DWG\u00a0\u00bb: 1,\n      \u00ab\u00a0Biblioth\u00e8que symboles\u00a0\u00bb: 1,\n      \u00ab\u00a0Topographie (courbes de niveau)\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Support et tutoriels\u00a0\u00bb: 1,\n    },\n  },\n  {\n    nom: \u00ab\u00a0LibreCAD\u00a0\u00bb,\n    description: \u00ab\u00a0Alternative l\u00e9g\u00e8re et gratuite pour 2D; fonctions limit\u00e9es pour topographie\/cadastre.\u00a0\u00bb,\n    features: {\n      \u00ab\u00a0Gestion des \u00e9chelles\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Import cadastre\/satellite\u00a0\u00bb: 0,\n      \u00ab\u00a0Export PDF\/DWG\u00a0\u00bb: 1,\n      \u00ab\u00a0Biblioth\u00e8que symboles\u00a0\u00bb: 0.5,\n      \u00ab\u00a0Topographie (courbes de niveau)\u00a0\u00bb: 0,\n      \u00ab\u00a0Support et tutoriels\u00a0\u00bb: 0.5,\n    },\n  },\n];\n\n\/* === \u00c9tat dynamique === *\/\nlet criteria = []; \/\/ contiendra les crit\u00e8res enrichis (poids, requis)\nconst MIN_WEIGHT = 0;\nconst MAX_WEIGHT = 5;\n\n\/* === Initialisation DOM references === *\/\nconst container = document.getElementById(\u00ab\u00a0comparateur-plan-de-masse\u00a0\u00bb);\nconst criteriaRowsEl = document.getElementById(\u00ab\u00a0criteria-rows\u00a0\u00bb);\nconst toolsListEl = document.getElementById(\u00ab\u00a0tools-list\u00a0\u00bb);\nconst searchInput = document.getElementById(\u00ab\u00a0search-input\u00a0\u00bb);\nconst filterNecessite = document.getElementById(\u00ab\u00a0filter-necessite\u00a0\u00bb);\nconst filterPriorite = document.getElementById(\u00ab\u00a0filter-priorite\u00a0\u00bb);\nconst minScoreRange = document.getElementById(\u00ab\u00a0min-score\u00a0\u00bb);\nconst minScoreVal = document.getElementById(\u00ab\u00a0min-score-val\u00a0\u00bb);\nconst resetWeightsBtn = document.getElementById(\u00ab\u00a0reset-weights\u00a0\u00bb);\nconst autoWeightBtn = document.getElementById(\u00ab\u00a0auto-weight\u00a0\u00bb);\nconst totalWeightDisplay = document.getElementById(\u00ab\u00a0total-weight-display\u00a0\u00bb);\nconst sortSelect = document.getElementById(\u00ab\u00a0sort-select\u00a0\u00bb);\n\n\/* === Utilitaires === *\/\nfunction clamp(v, a, b) { return Math.max(a, Math.min(b, v)); }\n\n\/* Mapping default poids selon n\u00e9cessit\u00e9\/priorit\u00e9 \u2014 fonction r\u00e9utilisable *\/\nfunction defaultWeightFor(necessite, priorite) {\n  \/\/ Base selon n\u00e9cessit\u00e9\n  let base = 2; \/\/ par d\u00e9faut\n  if (necessite === \u00ab\u00a0Indispensable\u00a0\u00bb) base = 5;\n  if (necessite === \u00ab\u00a0Recommand\u00e9\u00a0\u00bb) base = 3;\n  if (necessite === \u00ab\u00a0Selon projet\u00a0\u00bb) base = 2;\n\n  \/\/ Ajustement selon priorit\u00e9\n  if (priorite &amp;&amp; priorite.toLowerCase().includes(\u00ab\u00a0haute\u00a0\u00bb)) base += 1;\n  if (priorite &amp;&amp; priorite.toLowerCase().includes(\u00ab\u00a0moyenne\u00a0\u00bb)) base += 0;\n\n  \/\/ Clamp dans [0,5]\n  return clamp(Math.round(base), MIN_WEIGHT, MAX_WEIGHT);\n}\n\n\/* Calculer score d&rsquo;un outil en % (0 &#8211; 100) *\/\nfunction computeToolScore(tool, criteriaState) {\n  \/\/ Pond\u00e9ration totale\n  const totalWeight = criteriaState.reduce((s, c) =&gt; s + c.weight, 0);\n\n  \/\/ Si totalWeight == 0, retour 0 pour \u00e9viter div by zero\n  if (totalWeight === 0) return 0;\n\n  \/\/ Somme pond\u00e9r\u00e9e des features\n  let sum = 0;\n  let penalty = 0;\n\n  for (const c of criteriaState) {\n    const val = tool.features[c.nom] ?? 0; \/\/ 0 si absence de donn\u00e9e\n    \/\/ Si crit\u00e8re marqu\u00e9 \u00ab\u00a0requis\u00a0\u00bb et outil n&rsquo;a pas (val  p\u00e9nalit\u00e9\n    if (c.requis &amp;&amp; val  {\n    if (filterN !== \u00ab\u00a0tous\u00a0\u00bb &amp;&amp; c.necessite !== filterN) return false;\n    if (filterP !== \u00ab\u00a0tous\u00a0\u00bb &amp;&amp; c.priorite !== filterP) return false;\n    if (q &amp;&amp; !c.nom.toLowerCase().includes(q)) return false;\n    return true;\n  });\n\n  visible.forEach((c, idx) =&gt; {\n    const row = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    row.className = \u00ab\u00a0grid grid-cols-6 gap-2 items-center p-2 rounded hover:bg-slate-50\u00a0\u00bb;\n    row.setAttribute(\u00ab\u00a0role\u00a0\u00bb, \u00ab\u00a0row\u00a0\u00bb);\n\n    \/\/ Crit\u00e8re (col-span-2)\n    const nomDiv = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    nomDiv.className = \u00ab\u00a0col-span-2 text-slate-800\u00a0\u00bb;\n    nomDiv.textContent = c.nom;\n    row.appendChild(nomDiv);\n\n    \/\/ N\u00e9cessit\u00e9 badge\n    const necessiteDiv = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    necessiteDiv.className = \u00ab\u00a0text-sm\u00a0\u00bb;\n    const nBadge = document.createElement(\u00ab\u00a0span\u00a0\u00bb);\n    nBadge.className = \u00ab\u00a0px-2 py-0.5 rounded-full text-xs\u00a0\u00bb;\n    if (c.necessite === \u00ab\u00a0Indispensable\u00a0\u00bb) nBadge.classList.add(\u00ab\u00a0bg-red-100\u00a0\u00bb, \u00ab\u00a0text-red-800\u00a0\u00bb);\n    else if (c.necessite === \u00ab\u00a0Recommand\u00e9\u00a0\u00bb) nBadge.classList.add(\u00ab\u00a0bg-yellow-100\u00a0\u00bb, \u00ab\u00a0text-yellow-800\u00a0\u00bb);\n    else nBadge.classList.add(\u00ab\u00a0bg-slate-100\u00a0\u00bb, \u00ab\u00a0text-slate-700\u00a0\u00bb);\n    nBadge.textContent = c.necessite;\n    necessiteDiv.appendChild(nBadge);\n    row.appendChild(necessiteDiv);\n\n    \/\/ Priorit\u00e9 badge\n    const priorDiv = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    priorDiv.className = \u00ab\u00a0text-sm\u00a0\u00bb;\n    const pBadge = document.createElement(\u00ab\u00a0span\u00a0\u00bb);\n    pBadge.className = \u00ab\u00a0px-2 py-0.5 rounded-full text-xs\u00a0\u00bb;\n    if (c.priorite &amp;&amp; c.priorite.toLowerCase().includes(\u00ab\u00a0haute\u00a0\u00bb)) pBadge.classList.add(\u00ab\u00a0bg-rose-100\u00a0\u00bb, \u00ab\u00a0text-rose-800\u00a0\u00bb);\n    else pBadge.classList.add(\u00ab\u00a0bg-slate-100\u00a0\u00bb, \u00ab\u00a0text-slate-700\u00a0\u00bb);\n    pBadge.textContent = c.priorite;\n    priorDiv.appendChild(pBadge);\n    row.appendChild(priorDiv);\n\n    \/\/ Slider importance\n    const impDiv = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    impDiv.className = \u00ab\u00a0flex items-center gap-2\u00a0\u00bb;\n    const slider = document.createElement(\u00ab\u00a0input\u00a0\u00bb);\n    slider.type = \u00ab\u00a0range\u00a0\u00bb;\n    slider.min = MIN_WEIGHT;\n    slider.max = MAX_WEIGHT;\n    slider.value = c.weight;\n    slider.className = \u00ab\u00a0w-full\u00a0\u00bb;\n    slider.setAttribute(\u00ab\u00a0aria-label\u00a0\u00bb, `Importance ${c.nom}`);\n    const valSpan = document.createElement(\u00ab\u00a0span\u00a0\u00bb);\n    valSpan.className = \u00ab\u00a0w-8 text-right text-xs text-slate-600\u00a0\u00bb;\n    valSpan.textContent = c.weight;\n    slider.addEventListener(\u00ab\u00a0input\u00a0\u00bb, (e) =&gt; {\n      const v = Number(e.target.value);\n      c.weight = v;\n      valSpan.textContent = v;\n      updateTotalWeight();\n      renderToolsList(); \/\/ recalculer scores\n    });\n    impDiv.appendChild(slider);\n    impDiv.appendChild(valSpan);\n    row.appendChild(impDiv);\n\n    \/\/ Requis checkbox\n    const reqDiv = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    reqDiv.className = \u00ab\u00a0flex items-center\u00a0\u00bb;\n    const reqLabel = document.createElement(\u00ab\u00a0label\u00a0\u00bb);\n    reqLabel.className = \u00ab\u00a0flex items-center gap-2 cursor-pointer select-none\u00a0\u00bb;\n    const reqCheckbox = document.createElement(\u00ab\u00a0input\u00a0\u00bb);\n    reqCheckbox.type = \u00ab\u00a0checkbox\u00a0\u00bb;\n    reqCheckbox.checked = c.requis;\n    reqCheckbox.setAttribute(\u00ab\u00a0aria-label\u00a0\u00bb, `${I18N.tooltipRequis} ${c.nom}`);\n    reqCheckbox.addEventListener(\u00ab\u00a0change\u00a0\u00bb, (e) =&gt; {\n      c.requis = e.target.checked;\n      renderToolsList();\n    });\n    reqLabel.appendChild(reqCheckbox);\n    const small = document.createElement(\u00ab\u00a0span\u00a0\u00bb);\n    small.className = \u00ab\u00a0text-xs text-slate-600\u00a0\u00bb;\n    small.textContent = c.requis ? \u00ab\u00a0Oui\u00a0\u00bb : \u00ab\u00a0Non\u00a0\u00bb;\n    reqCheckbox.addEventListener(\u00ab\u00a0change\u00a0\u00bb, () =&gt; small.textContent = reqCheckbox.checked ? \u00ab\u00a0Oui\u00a0\u00bb : \u00ab\u00a0Non\u00a0\u00bb);\n    reqLabel.appendChild(small);\n    reqDiv.appendChild(reqLabel);\n    row.appendChild(reqDiv);\n\n    criteriaRowsEl.appendChild(row);\n  });\n\n  updateTotalWeight();\n}\n\n\/* === Rendu de la liste d&rsquo;outils (avec scores) === *\/\nfunction renderToolsList() {\n  toolsListEl.innerHTML = \u00ab\u00a0\u00a0\u00bb;\n  \/\/ Calculer scores pour chaque outil\n  const computed = tools.map(t =&gt; {\n    const score = computeToolScore(t, criteria);\n    return { &#8230;t, score };\n  });\n\n  \/\/ Appliquer filtre seuil\n  const minScore = Number(minScoreRange.value);\n  let filtered = computed.filter(t =&gt; t.score &gt;= minScore);\n\n  \/\/ Appliquer tri\n  const sortVal = sortSelect.value;\n  if (sortVal === \u00ab\u00a0score-desc\u00a0\u00bb) filtered.sort((a,b) =&gt; b.score &#8211; a.score);\n  else if (sortVal === \u00ab\u00a0score-asc\u00a0\u00bb) filtered.sort((a,b) =&gt; a.score &#8211; b.score);\n  else if (sortVal === \u00ab\u00a0nom-asc\u00a0\u00bb) filtered.sort((a,b) =&gt; a.nom.localeCompare(b.nom));\n  else if (sortVal === \u00ab\u00a0nom-desc\u00a0\u00bb) filtered.sort((a,b) =&gt; b.nom.localeCompare(a.nom));\n\n  \/\/ Rendu de chaque carte outil\n  filtered.forEach(tool =&gt; {\n    const card = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    card.className = \u00ab\u00a0border rounded p-3 bg-slate-50\u00a0\u00bb;\n    card.setAttribute(\u00ab\u00a0role\u00a0\u00bb, \u00ab\u00a0listitem\u00a0\u00bb);\n\n    const top = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    top.className = \u00ab\u00a0flex items-start justify-between gap-3\u00a0\u00bb;\n    const left = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    const name = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    name.className = \u00ab\u00a0font-semibold text-slate-800\u00a0\u00bb;\n    name.textContent = tool.nom;\n    const desc = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    desc.className = \u00ab\u00a0text-sm text-slate-600\u00a0\u00bb;\n    desc.textContent = tool.description;\n    left.appendChild(name);\n    left.appendChild(desc);\n    top.appendChild(left);\n\n    const right = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    right.className = \u00ab\u00a0text-right\u00a0\u00bb;\n    const scoreB = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    scoreB.className = \u00ab\u00a0text-2xl font-bold text-indigo-700\u00a0\u00bb;\n    scoreB.textContent = tool.score + \u00ab\u00a0%\u00a0\u00bb;\n    right.appendChild(scoreB);\n    top.appendChild(right);\n\n    card.appendChild(top);\n\n    \/\/ D\u00e9tails features (ic\u00f4nes textuelles)\n    const feat = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    feat.className = \u00ab\u00a0mt-3 grid grid-cols-2 gap-2 text-sm text-slate-700\u00a0\u00bb;\n    criteria.forEach(c =&gt; {\n      const fRow = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n      fRow.className = \u00ab\u00a0flex items-center gap-2\u00a0\u00bb;\n      const label = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n      label.className = \u00ab\u00a0w-48 text-slate-800\u00a0\u00bb;\n      label.textContent = c.nom;\n      const v = tool.features[c.nom] ?? 0;\n      const state = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n      state.className = \u00ab\u00a0text-xs rounded px-2 py-0.5\u00a0\u00bb;\n\n      if (v &gt;= 1) {\n        state.classList.add(\u00ab\u00a0bg-green-100\u00a0\u00bb, \u00ab\u00a0text-green-800\u00a0\u00bb);\n        state.textContent = \u00ab\u00a0Oui\u00a0\u00bb;\n      } else if (v &gt; 0) {\n        state.classList.add(\u00ab\u00a0bg-yellow-100\u00a0\u00bb, \u00ab\u00a0text-yellow-800\u00a0\u00bb);\n        state.textContent = \u00ab\u00a0Partiel\u00a0\u00bb;\n      } else {\n        state.classList.add(\u00ab\u00a0bg-red-100\u00a0\u00bb, \u00ab\u00a0text-red-800\u00a0\u00bb);\n        state.textContent = \u00ab\u00a0Non\u00a0\u00bb;\n      }\n\n      fRow.appendChild(label);\n      fRow.appendChild(state);\n      feat.appendChild(fRow);\n    });\n    card.appendChild(feat);\n\n    toolsListEl.appendChild(card);\n  });\n\n  \/\/ Si aucun outil ne passe le filtre\n  if (filtered.length === 0) {\n    const none = document.createElement(\u00ab\u00a0div\u00a0\u00bb);\n    none.className = \u00ab\u00a0text-sm text-slate-600\u00a0\u00bb;\n    none.textContent = \u00ab\u00a0Aucun logiciel ne correspond aux crit\u00e8res actuellement filtr\u00e9s.\u00a0\u00bb;\n    toolsListEl.appendChild(none);\n  }\n}\n\n\/* === Mise \u00e0 jour du total poids pour affichage === *\/\nfunction updateTotalWeight() {\n  const total = criteria.reduce((s,c) =&gt; s + c.weight, 0);\n  totalWeightDisplay.textContent = `${I18N.totalWeight} : ${total}`;\n}\n\n\/* === Actions et \u00e9v\u00e9nements === *\/\nfunction attachEvents() {\n  \/\/ Re-render lors des filtres ou recherche\n  searchInput.addEventListener(\u00ab\u00a0input\u00a0\u00bb, () =&gt; renderCriteriaRows());\n  filterNecessite.addEventListener(\u00ab\u00a0change\u00a0\u00bb, () =&gt; renderCriteriaRows());\n  filterPriorite.addEventListener(\u00ab\u00a0change\u00a0\u00bb, () =&gt; renderCriteriaRows());\n\n  minScoreRange.addEventListener(\u00ab\u00a0input\u00a0\u00bb, () =&gt; {\n    minScoreVal.textContent = minScoreRange.value;\n    renderToolsList();\n  });\n\n  resetWeightsBtn.addEventListener(\u00ab\u00a0click\u00a0\u00bb, () =&gt; {\n    \/\/ Remettre poids \u00e0 0 pour tout\n    criteria.forEach(c =&gt; { c.weight = 0; c.requis = false; });\n    renderCriteriaRows();\n    renderToolsList();\n  });\n\n  autoWeightBtn.addEventListener(\u00ab\u00a0click\u00a0\u00bb, () =&gt; {\n    \/\/ Appliquer poids par d\u00e9faut selon n\u00e9cessit\u00e9\/priorit\u00e9\n    criteria.forEach(c =&gt; {\n      c.weight = defaultWeightFor(c.necessite, c.priorite);\n      \/\/ si indispensable -&gt; requis par d\u00e9faut\n      c.requis = (c.necessite === \u00ab\u00a0Indispensable\u00a0\u00bb);\n    });\n    renderCriteriaRows();\n    renderToolsList();\n  });\n\n  sortSelect.addEventListener(\u00ab\u00a0change\u00a0\u00bb, () =&gt; renderToolsList());\n}\n\n\/* === Initialisation des crit\u00e8res depuis rawCriteria === *\/\nfunction initializeCriteria() {\n  criteria = rawCriteria.map(r =&gt; ({\n    nom: r.nom,\n    necessite: r.necessite,\n    priorite: r.priorite,\n    \/\/ poids initial par d\u00e9faut bas\u00e9 sur n\u00e9cessit\u00e9\/priorit\u00e9\n    weight: defaultWeightFor(r.necessite, r.priorite),\n    \/\/ requis par d\u00e9faut si \u00ab\u00a0Indispensable\u00a0\u00bb\n    requis: r.necessite === \u00ab\u00a0Indispensable\u00a0\u00bb,\n  }));\n}\n\n\/* === Lancement initial === *\/\n(function init() {\n  \/\/ Appliquer textes i18n modifiables\n  document.getElementById(\u00ab\u00a0cmp-title\u00a0\u00bb).textContent = I18N.titre;\n  document.getElementById(\u00ab\u00a0cmp-desc\u00a0\u00bb).textContent = I18N.description;\n  document.getElementById(\u00ab\u00a0search-input\u00a0\u00bb).placeholder = I18N.searchPlaceholder;\n  resetWeightsBtn.textContent = I18N.resetWeights;\n  autoWeightBtn.textContent = I18N.autoWeight;\n\n  initializeCriteria();\n  attachEvents();\n  renderCriteriaRows();\n  renderToolsList();\n})();\n\n\n<p class=\"wp-block-paragraph\">Exemple concret : une petite agence a compar\u00e9 SketchUp Pro et ArchiCAD sur trois projets types. SketchUp Pro a permis des rendus rapides et une prise en main courte, mais n\u00e9cessitait des plugins pour les cotations. ArchiCAD, bien que plus lourd \u00e0 ma\u00eetriser, a fourni des exports enti\u00e8rement coordonn\u00e9s en BIM, utiles pour les ma\u00eetres d\u2019ouvrage exigeants. Le bon raisonnement consiste \u00e0 prioriser les fonctionnalit\u00e9s indispensables pour le projet courant et \u00e0 v\u00e9rifier la compatibilit\u00e9 avec les partenaires qui devront lire les fichiers export\u00e9s.<\/p>\n\n<p class=\"wp-block-paragraph\">Cl\u00f4ture de section : une grille de crit\u00e8res et des essais pratiques facilitent le choix final ; le chapitre suivant pr\u00e9sente un tutoriel pas-\u00e0-pas pour produire un plan de masse conforme, y compris une checklist de contr\u00f4le.<\/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=\"Les meilleurs logiciels d\u2019architecture gratuits et comment les obtenir !\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/jUxMT2scuLw?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\">Bonnes pratiques d&rsquo;utilisation d&rsquo;un logiciel plan de masse pour un projet immobilier<\/h2>\n\n<p class=\"wp-block-paragraph\">La cr\u00e9ation d\u2019un plan de masse suit des \u00e9tapes s\u00e9quentielles permettant d\u2019assurer conformit\u00e9 et lisibilit\u00e9. Premi\u00e8re \u00e9tape : r\u00e9cup\u00e9rer le fond cadastral via cadastre.gouv.fr et l\u2019importer dans le logiciel. Deuxi\u00e8me \u00e9tape : tracer les limites de propri\u00e9t\u00e9 et valider la concordance avec un relev\u00e9 topographique si disponible. Troisi\u00e8me \u00e9tape : dessiner l\u2019existant, positionner le projet, et distinguer par des hachures couleurs l\u2019existant du projet. Enfin, ajouter les cotations obligatoires, l\u2019orientation nord et le cartouche complet.<\/p>\n\n<p class=\"wp-block-paragraph\">Checklist essentielle (\u00e0 appliquer syst\u00e9matiquement) :<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Orientation nord<\/strong> clairement indiqu\u00e9e.<\/li><li><strong>\u00c9chelle<\/strong> mentionn\u00e9e (1\/200 ou 1\/500 selon le cas).<\/li><li><strong>Distances aux limites<\/strong> cot\u00e9es et lisibles apr\u00e8s impression.<\/li><li><strong>Acc\u00e8s v\u00e9hicules et pi\u00e9tons<\/strong> dessin\u00e9s.<\/li><li><strong>R\u00e9seaux<\/strong> principaux identifi\u00e9s (eau, \u00e9lectricit\u00e9, assainissement).<\/li><li><strong>V\u00e9g\u00e9tation<\/strong> importante signal\u00e9e.<\/li><li><strong>Altim\u00e9trie<\/strong> en cas de pente notable.<\/li><li><strong>Cartouche<\/strong> compl\u00e9t\u00e9 avec adresse et date.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Pour l\u2019insertion paysag\u00e8re (PCMI6), une m\u00e9thode pragmatique consiste \u00e0 combiner mod\u00e9lisation 3D et photomontage. SketchUp ou une application de rendu rapide permet de produire une vue du projet; un logiciel de retouche (m\u00eame gratuit) superpose ensuite le rendu sur une photographie r\u00e9elle. Cette technique produit une insertion lisible et recevable pour une instruction administrative.<\/p>\n\n<p class=\"wp-block-paragraph\">Anecdote terrain : dans un dossier r\u00e9el de petite copropri\u00e9t\u00e9, l\u2019utilisation d\u2019un simple logiciel gratuit avait suffi pour l\u2019esquisse. Toutefois, l\u2019oubli des distances aux limites lat\u00e9rales a entra\u00een\u00e9 une demande de pi\u00e8ces compl\u00e9mentaires. L\u2019ajout d\u2019une checklist a permis d\u2019\u00e9viter la r\u00e9p\u00e9tition de cette erreur pour les dossiers suivants, d\u00e9montrant qu\u2019une bonne m\u00e9thodologie vaut parfois mieux qu\u2019un logiciel sophistiqu\u00e9.<\/p>\n\n<p class=\"wp-block-paragraph\">Outils et ressources : des tutoriels pratiques et des comparatifs aident \u00e0 ma\u00eetriser les \u00e9tapes. Pour des conseils d\u2019utilisation et des listes d\u2019outils, consulter des synth\u00e8ses d\u00e9di\u00e9es reste utile <a href=\"https:\/\/commentouvrir.com\/tech\/quel-logiciel-pour-faire-un-plan-de-masse\/\" target=\"_blank\" rel=\"noopener\">quel logiciel pour faire un plan de masse<\/a>.<\/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\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-2.jpg\" alt=\"d\u00e9couvrez comment choisir le logiciel de plan de masse id\u00e9al pour votre projet gr\u00e2ce \u00e0 nos conseils pratiques et crit\u00e8res essentiels.\" class=\"wp-image-334\" srcset=\"https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-2.jpg 1376w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-2-300x167.jpg 300w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-2-1024x572.jpg 1024w, https:\/\/www.geometre-confiance.fr\/guide\/wp-content\/uploads\/2026\/08\/Logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet-2-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><\/figure>\n\n<p class=\"wp-block-paragraph\">Cl\u00f4ture de section : appliquer rigueur et checklist r\u00e9duit consid\u00e9rablement les risques d\u2019un refus administratif ; la section suivante traite des erreurs fr\u00e9quentes et de l\u2019int\u00e9gration dans la <strong>gestion projet<\/strong>.<\/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=\"Top 5 des Logiciels de Gestion de Projet Gratuits en 2026\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/5-yaKPsjKq8?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\">Erreurs fr\u00e9quentes, contr\u00f4le qualit\u00e9 et int\u00e9gration dans la gestion projet<\/h2>\n\n<p class=\"wp-block-paragraph\">Les erreurs les plus communes sur les plans de masse g\u00e9n\u00e8rent des demandes de pi\u00e8ces compl\u00e9mentaires et des retards : oubli de l\u2019orientation nord, absence d\u2019\u00e9chelle standard, cotations manquantes, confusion entre plan de masse et plan de situation, et import incorrect du fond cadastral. Une strat\u00e9gie syst\u00e9matique de contr\u00f4le qualit\u00e9 pr\u00e9vient ces incidents : contr\u00f4le crois\u00e9 avec le cadastre, v\u00e9rification de lisibilit\u00e9 apr\u00e8s impression et r\u00e9vision par un tiers ou un professionnel.<\/p>\n\n<p class=\"wp-block-paragraph\">Int\u00e9grer le plan de masse dans une <strong>gestion projet<\/strong> organis\u00e9e am\u00e9liore la coordination entre acteurs : centraliser les fichiers ma\u00eetres (DWG\/BIM), d\u00e9finir des versions et assurer des exports r\u00e9guliers en PDF pour les \u00e9changes avec la mairie. Pour les projets d\u00e9passant certains seuils (par exemple &gt;150 m\u00b2 en France), l\u2019intervention d\u2019un architecte est obligatoire; confier la conception \u00e0 un professionnel \u00e9vite les risques r\u00e9glementaires et techniques. Pour des questions de topographie et d\u2019implantation pr\u00e9cise, recourir \u00e0 un g\u00e9om\u00e8tre est recommand\u00e9 ; ses pratiques sont d\u00e9taill\u00e9es dans des ressources sp\u00e9cialis\u00e9es <a href=\"https:\/\/www.geometre-confiance.fr\/guide\/2026\/07\/16\/definition-et-principes-de-base-de-la-topographie-expliques\/\">d\u00e9finition et principes de topographie<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Exemple d\u2019organisation : un ma\u00eetre d\u2019ouvrage suit des jalons de contr\u00f4le \u00e0 chaque \u00e9tape (esquisse, plan cot\u00e9, insertion paysag\u00e8re, dossier complet). \u00c0 chaque jalon, un point de validation porte sur : conformit\u00e9 des cotations, pr\u00e9sence des r\u00e9seaux, coh\u00e9rence altim\u00e9trique et lisibilit\u00e9 des l\u00e9gendes. Ce processus \u00e9vite des retours co\u00fbteux et acc\u00e9l\u00e8re l\u2019instruction administrative.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour approfondir les outils gratuits disponibles et leurs limites, des comparatifs mettent en lumi\u00e8re les forces de chaque solution et recommandent des combinaisons adapt\u00e9es selon le contexte de projet <a href=\"https:\/\/jamelioremamaison.fr\/2024\/11\/24\/top-5-des-logiciels-de-plans-de-masse-gratuits\/\" target=\"_blank\" rel=\"noopener\">top 5 des logiciels<\/a> et <a href=\"https:\/\/www.construires.fr\/plan-maison\/logiciel-plan-maison\/\" target=\"_blank\" rel=\"noopener\">logiciels pour plan maison<\/a>. L\u2019insight final : la qualit\u00e9 d\u2019un plan de masse d\u00e9pend autant de la m\u00e9thode que du logiciel s\u00e9lectionn\u00e9.<\/p>\n\n<p class=\"wp-block-paragraph\">Cl\u00f4ture de section : \u00e9viter les erreurs de base et int\u00e9grer le plan dans une gestion projet structur\u00e9e garantit un dossier solide et r\u00e9duit sensiblement les d\u00e9lais d\u2019instruction.<\/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\u00bbQuel logiciel choisir pour une du00e9claration pru00e9alable simple ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbPour une du00e9claration pru00e9alable (abri de jardin, petite extension), des outils comme Archifacile ou Sweet Home 3D sont adaptu00e9s. Ils permettent du2019obtenir des plans 2D cotu00e9s et des exports PDF suffisants pour la mairie.\u00a0\u00bb}},{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbQuestion\u00a0\u00bb,\u00a0\u00bbname\u00a0\u00bb:\u00a0\u00bbFaut-il utiliser un logiciel BIM pour une maison individuelle ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbLe BIM devient nu00e9cessaire si le projet est complexe ou si la coordination multi-acteurs est primordiale. Pour une maison individuelle classique, une combinaison de SketchUp Pro et du2019un logiciel de plans 2D peut suffire.\u00a0\u00bb}},{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbQuestion\u00a0\u00bb,\u00a0\u00bbname\u00a0\u00bb:\u00a0\u00bbComment vu00e9rifier la conformitu00e9 du2019un plan de masse avant du00e9pu00f4t ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbUtiliser une checklist : orientation nord, u00e9chelle standard, distances aux limites cotu00e9es, ru00e9seaux identifiu00e9s, cartouche rempli et cohu00e9rence avec le plan cadastral. Un contru00f4le par un tiers ru00e9duit les risques du2019erreur.\u00a0\u00bb}},{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbQuestion\u00a0\u00bb,\u00a0\u00bbname\u00a0\u00bb:\u00a0\u00bbPeut-on ru00e9aliser une insertion paysagu00e8re sans logiciel 3D ?\u00a0\u00bb,\u00a0\u00bbacceptedAnswer\u00a0\u00bb:{\u00ab\u00a0@type\u00a0\u00bb:\u00a0\u00bbAnswer\u00a0\u00bb,\u00a0\u00bbtext\u00a0\u00bb:\u00a0\u00bbOui. Un photomontage ru00e9alisu00e9 avec un logiciel de retouche (mu00eame gratuit) est recevable. Pour un rendu plus professionnel, utiliser SketchUp ou des solutions de rendu comme Lumion.\u00a0\u00bb}}]}\n\n<h3>Quel logiciel choisir pour une d\u00e9claration pr\u00e9alable simple ?<\/h3>\n<p>Pour une d\u00e9claration pr\u00e9alable (abri de jardin, petite extension), des outils comme Archifacile ou Sweet Home 3D sont adapt\u00e9s. Ils permettent d\u2019obtenir des plans 2D cot\u00e9s et des exports PDF suffisants pour la mairie.<\/p>\n<h3>Faut-il utiliser un logiciel BIM pour une maison individuelle ?<\/h3>\n<p>Le BIM devient n\u00e9cessaire si le projet est complexe ou si la coordination multi-acteurs est primordiale. Pour une maison individuelle classique, une combinaison de SketchUp Pro et d\u2019un logiciel de plans 2D peut suffire.<\/p>\n<h3>Comment v\u00e9rifier la conformit\u00e9 d\u2019un plan de masse avant d\u00e9p\u00f4t ?<\/h3>\n<p>Utiliser une checklist : orientation nord, \u00e9chelle standard, distances aux limites cot\u00e9es, r\u00e9seaux identifi\u00e9s, cartouche rempli et coh\u00e9rence avec le plan cadastral. Un contr\u00f4le par un tiers r\u00e9duit les risques d\u2019erreur.<\/p>\n<h3>Peut-on r\u00e9aliser une insertion paysag\u00e8re sans logiciel 3D ?<\/h3>\n<p>Oui. Un photomontage r\u00e9alis\u00e9 avec un logiciel de retouche (m\u00eame gratuit) est recevable. Pour un rendu plus professionnel, utiliser SketchUp ou des solutions de rendu comme Lumion.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Choisir un logiciel plan de masse pour un projet immobilier exige d\u2019\u00e9quilibrer pr\u00e9cision technique, ergonomie et co\u00fbt. Ce texte propose &#8230; <a title=\"Logiciel plan de masse\u00a0: comment choisir l\u2019outil id\u00e9al pour votre projet\" class=\"read-more\" href=\"https:\/\/www.geometre-confiance.fr\/guide\/2026\/08\/04\/logiciel-plan-de-masse-comment-choisir-loutil-ideal-pour-votre-projet\/\" aria-label=\"En savoir plus sur Logiciel plan de masse\u00a0: comment choisir l\u2019outil id\u00e9al pour votre projet\">Lire plus<\/a><\/p>\n","protected":false},"author":2,"featured_media":332,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-335","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\/335","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=335"}],"version-history":[{"count":0,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/posts\/335\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/media\/332"}],"wp:attachment":[{"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/media?parent=335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/categories?post=335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geometre-confiance.fr\/guide\/wp-json\/wp\/v2\/tags?post=335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}