addedInput schema / properties / decoration
Added value: +{
+ "description": "Paint/finish per wall — used only by cao_pdf. Colors the elevations (exterior face) and the axonometric view (face auto-detected by orientation relative to the building's centroid).",
+ "items": {
+ "properties": {
+ "couleur": {
+ "description": "Hex color, e.g. '#e2e0d5' — default per type",
+ "type": "string"
+ },
+ "face": {
+ "default": "interieur",
+ "enum": [
+ "interieur",
+ "exterieur"
+ ],
+ "type": "string"
+ },
+ "finition": {
+ "description": "Informational only, doesn't affect rendering",
+ "enum": [
+ "mat",
+ "satin",
+ "brillant",
+ "structure"
+ ],
+ "type": "string"
+ },
+ "mur": {
+ "description": "Index in murs[]",
+ "type": "integer"
+ },
+ "type": {
+ "default": "peinture",
+ "enum": [
+ "beton_cire",
+ "carrelage_mural",
+ "enduit",
+ "lambris",
+ "papier_peint",
+ "peinture"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "mur"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / electricite
Added value: +{
+ "description": "Electrical symbols (outlets, switches, lights…) — used only by cao_pdf (dedicated technical plan + quantities), no effect on dxf/metres/render. Position: attached to a wall (`mur`+`position`, like ouvertures) or free (`x`,`y`).",
+ "items": {
+ "properties": {
+ "mur": {
+ "type": "integer"
+ },
+ "position": {
+ "type": "number"
+ },
+ "type": {
+ "default": "prise",
+ "enum": [
+ "detecteur_fumee",
+ "interrupteur",
+ "luminaire",
+ "prise",
+ "prise_rj45",
+ "prise_spe",
+ "tableau_electrique",
+ "va_et_vient",
+ "vmc"
+ ],
+ "type": "string"
+ },
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "z": {
+ "description": "Default per type (NF C 15-100-informed: outlets 30cm, switches 110cm; light/smoke detector/vmc default to ceiling height)",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / ouvertures
Added value: +{
+ "description": "Doors/windows embedded in a wall — used only by cao_pdf (elevations + axonometric view), no effect on dxf/metres.",
+ "items": {
+ "properties": {
+ "hauteur": {
+ "type": "number"
+ },
+ "largeur": {
+ "type": "number"
+ },
+ "mur": {
+ "description": "Index of the host wall in murs[] (0-based)",
+ "type": "integer"
+ },
+ "position": {
+ "description": "Distance in mm from the wall's start (x1,y1)",
+ "type": "number"
+ },
+ "type": {
+ "default": "fenetre",
+ "enum": [
+ "fenetre",
+ "porte"
+ ],
+ "type": "string"
+ },
+ "z": {
+ "description": "Sill height (mm) — default 900 (window) or 0 (door)",
+ "type": "number"
+ }
+ },
+ "required": [
+ "mur",
+ "position",
+ "largeur",
+ "hauteur"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / plomberie
Added value: +{
+ "description": "Sanitary fixtures (sink, WC, shower…) — used only by cao_pdf. Same positioning as electricite.",
+ "items": {
+ "properties": {
+ "h": {
+ "type": "number"
+ },
+ "l": {
+ "type": "number"
+ },
+ "mur": {
+ "type": "integer"
+ },
+ "p": {
+ "type": "number"
+ },
+ "position": {
+ "type": "number"
+ },
+ "rotation": {
+ "default": 0,
+ "type": "number"
+ },
+ "type": {
+ "default": "evier",
+ "enum": [
+ "baignoire",
+ "chauffe_eau",
+ "compteur_eau",
+ "douche",
+ "evier",
+ "lavabo",
+ "radiateur",
+ "wc"
+ ],
+ "type": "string"
+ },
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "z": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / reseaux
Added value: +{
+ "description": "Plumbing pipe runs (EF/EC/EU/EV/EP/chauffage) — used only by cao_pdf (technical plan + linear-meter quantities per type).",
+ "items": {
+ "properties": {
+ "diametre": {
+ "description": "mm, default per type",
+ "type": "number"
+ },
+ "trace": {
+ "description": "At least 2 points (mm), freely drawn in plan",
+ "items": {
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "default": "ef",
+ "enum": [
+ "ef",
+ "ec",
+ "eu",
+ "ev",
+ "ep",
+ "chauffage"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "trace"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / toitures
Added value: +{
+ "description": "Roofs — used only by cao_pdf. WITHOUT this field: a flat roof is auto-generated over the footprint of ALL walls (legacy default). WITH it: compose freely — each entry can target a subset of walls (via `murs`), letting you build an L-shaped building's roof, or add a dormer on top of a main roof.",
+ "items": {
+ "properties": {
+ "apex": {
+ "description": "Free apex position — 'personnalise' only (default: 'plat' if omitted)",
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ },
+ "z": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "debord": {
+ "default": 200,
+ "description": "Eaves overhang (mm) on the auto footprint",
+ "type": "number"
+ },
+ "epaisseur": {
+ "default": 180,
+ "description": "Slab thickness (mm) — 'plat' only",
+ "type": "number"
+ },
+ "hauteur": {
+ "description": "'chien_assis' only: front wall height, default 900",
+ "type": "number"
+ },
+ "hauteur_faitage": {
+ "default": 1200,
+ "description": "Ridge/apex/dome height above z (mm); 600 for 'chien_assis'",
+ "type": "number"
+ },
+ "largeur": {
+ "description": "'chien_assis' only, default 1000",
+ "type": "number"
+ },
+ "murs": {
+ "description": "Wall indices this roof section covers (default: all walls). Ignored if `polygone` is given.",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "polygone": {
+ "description": "Custom footprint (mm) — overrides the auto rectangle. Any type except 'chien_assis'.",
+ "items": {
+ "properties": {
+ "x": {
+ "type": "number"
+ },
+ "y": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "profondeur": {
+ "description": "'chien_assis' only, default 800",
+ "type": "number"
+ },
+ "rayon": {
+ "description": "Base radius (mm) — 'conique'/'dome' (default: from footprint)",
+ "type": "number"
+ },
+ "rotation": {
+ "default": 0,
+ "description": "Ridge orientation in degrees — 'deux_pans' only (0 = along X axis)",
+ "type": "number"
+ },
+ "segments": {
+ "default": 16,
+ "description": "Facet count — 'conique'/'dome'",
+ "type": "integer"
+ },
+ "type": {
+ "default": "plat",
+ "enum": [
+ "chien_assis",
+ "conique",
+ "deux_pans",
+ "dome",
+ "personnalise",
+ "plat",
+ "quatre_pans"
+ ],
+ "type": "string"
+ },
+ "x": {
+ "description": "'chien_assis' only: center x",
+ "type": "number"
+ },
+ "y": {
+ "description": "'chien_assis' only: center y — POSITION it on the carrying roof slope",
+ "type": "number"
+ },
+ "z": {
+ "description": "Base altitude (mm) — default: top of the walls covered",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+}