Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "avis_echeance"
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨69 unchanged words⟩ final de souscrire https://synergieloc.fr/api-ia (plan Agent449,99€/mois).
Added "cao_devis", "cao_programme" and "cao_re2020" (51 tools before, 54 now)
WHEN a client or a contractor needs the QUANTITIES to price a house, trade by trade — the skeleton of a French DPGF. From the CAO scene, completed by the rules if needed: structural works (footings and lintels from the structure, ground slab, floors, load-bearing walls by thickness, gables), roofing, windows and doors by size, partitions, linings and ceilings, electrical points by type and cable length by cross-section, plumbing, heating and ventilation (radiators, heat pump, pipes, vents, ducts), floors and paint. No price is ever invented: pass your own unit prices in `prix` (and tva_pct) t…
WHEN you are asked to DESIGN a house from a brief ('3 bedrooms, open kitchen, 90 m²') rather than to check or edit an existing scene. Returns a complete single-storey house scene — walls, doors, windows, named rooms, roof — laid out to French dimensions (1.00 m corridor, 90 cm doors, bedrooms of 9 m² and more, 1/6 glazing in living rooms, load-bearing walls keeping every slab span under 5.60 m) that passes cao_verifier with zero alerts, with its rooms and areas, and the other layout type as a variant. Two layouts: 'aile' (through living room and a night wing on a central corridor) and 'bandes…
WHEN a house design needs an early THERMAL sanity check before the regulatory RE 2020 study (French energy and carbon rules for new buildings). Computes from the CAO scene: envelope areas and U-values, H_T in W/K with 10 % thermal bridges, mean U, compactness, which walls, roof or floor lose most, ventilation losses at the dwelling's base airflow, glazing per orientation, heat loss at design temperature, and design levers. It NEVER outputs a Bbio, Cep, DH or Ic figure: those need the official Th-BCE engine and a life-cycle assessment by a thermal consultant; the RE 2020 thresholds for houses …
Added "cao_permis"; changed the definition of "cao_bcf_ifc", "cao_conflits_ifc", "cao_generer_dxf" and 10 more (50 tools before, 51 now)
⟨741 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨741 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
Added "cao_demo" (49 tools before, 50 now)
WHEN you are about to draw ANY French building for the first time, or when a user asks for a plan / DXF / IFC and you have not yet used these tools — call this FIRST. It hands back a COMPLETE, ALREADY-VERIFIED scene (zero audit alerts) plus the exact next calls in order. FREE, no API key, 0 units. WHY IT MATTERS: composing a scene from the schema alone takes several round-trips and usually fails on the same mistakes (openings.z used as an absolute altitude instead of a relative sill, a storey with no windows). Starting from a working scene and editing it is faster and cannot fail. GOOD CALL: …
Changed the definition of "cao_bcf_ifc", "cao_conflits_ifc", "cao_generer_dxf" and 10 more
⟨1082 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1082 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
Changed the definition of "cao_regles_structure_reseaux"
⟨92 unchanged words⟩ ; drainage branches with slopes per NF DTU60.11.60.11; water inlet and 200 L water heater placed where missing. Adds what is missing, never removes. Returns ⟨15 unchanged words⟩
{"properties":{"alimentation":{"default":true,"description":"Place the water inlet and water heater when missing (NF DTU 60.11).","type":"boolean"},"boites":{"description":"Boxes (furniture, volumes ⟨1515 unchanged words⟩
Added "cao_copilote", "cao_familles" and "cao_ids_verifier" (46 tools before, 49 now)
WHEN a user asks to change an existing building scene in plain words — « agrandis la cuisine d'un mètre », « réduis la chambre 2 de 50 cm côté nord », move a wall, widen a door, move or rotate furniture: the request becomes typed operations (catalogue: GET /api/v1/cao/copilote), executed to the millimetre (attached walls extended, furniture against the wall follows it, objects in the way pushed, switches moved out of door openings), then the result is re-checked by our controls. A wall that would create a defect is not used; a load-bearing wall stacked with another storey never moves alone. R…
WHEN you place doors or windows in a scene and want real, orderable joinery instead of free-size holes: lists the parametric families (hinged door in the French 63/73/83/93 series, double, sliding, pocket and entrance doors, French window, sliding patio door; one- or two-leaf, tilt-and-turn and fixed windows) with bounded parameters and the bay size each gives. An `ouvertures[]` entry declaring `famille` + `parametres` is checked (out-of-series values refused, accessibility per the French 24 December 2015 decree) and exported to IFC as a door/window type with shared geometry, lining and panel…
WHEN a BIM manager's information requirements (an IDS 1.0 file, buildingSMART) must be checked on a model before delivery — ours built from the scene, or an architect's IFC: checks every specification (entity, attribute, property compared in SI units, classification, material, partOf; required, optional, prohibited; target IFC version) and returns, per specification, the applicable elements and those failing with their reasons; `bcf: true` adds the failures as BCF 2.1 topics with their objects. Without `ids`, checks our French housing IDS (rooms with net, habitable and Carrez areas, typed doo…
Added "cao_bcf_ifc", "cao_conflits_ifc", "cao_importer_ifc" and 2 more; changed the definition of "cao_generer_dxf", "cao_generer_ifc", "cao_metres" and 5 more (41 tools before, 46 now)
⟨211 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨168 unchanged words⟩ :"object"},"type":"array"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"murs":{"description":"Walls: plan segments
Certificate recorded, valid to 2026-11-11
Authorization not required
Changed the definition of "avis_echeance", "bon_intervention", "cao_generer_dxf" and 23 more
QUAND le bailleur doit APPELER le loyer du mois,(avantAVANT paiement).— à ne pas confondre avec quittance_loyer, qui atteste l'encaissement APRÈS coup. Génère un AVIS D'ÉCHÉANCE(appel,derenvoyéloyer)en HTML—complet dans la réponse : ni fichier, ni URL, ni PDF,viaet
First tool surface recorded: 41 tools (server version 1.0.0)
Showing the latest 12 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨718 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨718 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨772 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨718 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨728 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨731 unchanged words⟩
⟨787 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨765 unchanged words⟩
⟨766 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨718 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨718 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨720 unchanged words⟩
⟨801 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨788 unchanged words⟩
⟨906 unchanged words⟩ Default 200","type":"number"},"existant":{"description":"Optional: true for a wall of the EXISTING building when the scene is an extension. cao_permis then counts as created only what the works add.","type":"boolean"},"hauteur":{"default":2500,"description":"Wall ⟨815 unchanged words⟩
WHEN a detached house is headed for a French BUILDING PERMIT (permis de construire, Cerfa 13406). Drafts the permit file from the CAO scene: the Cerfa figures (surface de plancher per R111-22 — inner face of façades, stair openings and parts under 1.80 m excluded; emprise au sol per R420-1; eaves and ridge heights; storeys), plus PCMI2 site plan, PCMI3 section, PCMI4 written notice and PCMI5 elevations. PCMI1, PCMI6, PCMI7 and PCMI8 (location map, landscape insertion, photos) are listed as 'à fournir' — never invented; a Géoportail link is given when the scene has `georef`. For an EXTENSION, …
⟨1059 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1059 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1113 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1059 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1069 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨389 unchanged words⟩
⟨102 unchanged words⟩ inlet and 200 L water heater placed wheremissing.missing; room heat losses per NF EN 12831 and radiators sized at 55/45 °C (NF EN 442). Adds what is missing, never removes. Returns { ⟨8 unchanged words⟩ to get IfcBeam, IfcFooting, IfcOutlet, IfcAirTerminal,IfcPipeSegment…IfcPipeSegment, IfcSpaceHeater…
⟨230 unchanged words⟩ :"object"},"type":"array"},"chauffage":{"default":true,"description":"Compute room heat losses (NF EN 12831) and size radiators at 55/45 °C.","type":"boolean"},"compositions":{"description":"Named wall/slab layer sets ⟨870 unchanged words⟩ ","compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":" ⟨424 unchanged words⟩
⟨1107 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1059 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1059 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨378 unchanged words⟩
⟨1142 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨446 unchanged words⟩
⟨1314 unchanged words⟩ compteur_eau","douche","evier","lavabo","module_hydraulique","pac_exterieure","radiateur","wc"],"type":"string"} ⟨406 unchanged words⟩
⟨19 unchanged words⟩ a building scene and get an IFC4 file in millimetres: real spatial hierarchy (project/site/building/storeys),eacha real IFC GUID per element, one named IfcSpace per room withaitsrealareasIFC(floor,GUIDFrench habitable andaCarrez), floor slabs cut by their stair openings, an IfcRoof, IfcStair flights, standard Pset/Qto quantities, and material layers carryingphysicaldensitypropertiesand thermal conductivity. Wall/slab/door/window types, 2nd-level space boundaries, and Lambert-93 georeferencing (densityEPSG:2154,thermalScaleconductivity0.001).Doors/windowsareclassifiedincludedIfcDoor/IfcWindowsoandRevit/Archicadpositionedcan open a typed,butlocatednomodel.booleanDeclareopeningcompositions{}istocutreplaceintypethecompositions. Doors/windows really cut their host wall (documentedIfcOpeningElementlimitation+ IfcRelFillsElement). Passes IFC4 schema and EXPRESS-rule validation. Validate locally with cao_valider_ifc (no buildingSMART account). Call cao_verifier first. Same scene as cao_generer_dxf. ⟨45 unchanged words⟩
⟨211 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨168 unchanged words⟩ :"object"},"type":"array"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"murs":{"description":"Walls: plan segments ⟨43 unchanged words⟩ for you.","items":{"properties":{"composition":{"description":"Optional key into the scene-level compositions object. When omitted, the exporter infers mur_exterieur / refend / cloison from geometry. A matching declared composition drops the Hypothese flag in the IFC.","type":"string"},"couches":{"description":"Optional inline material layers [{cle, epaisseur?}]. cle is one of enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer so it takes the remainder of the wall thickness.","type":"array"},"epaisseur":
⟨211 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨168 unchanged words⟩ :"object"},"type":"array"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"murs":{"description":"Walls: plan segments ⟨43 unchanged words⟩ for you.","items":{"properties":{"composition":{"description":"Optional key into the scene-level compositions object. When omitted, the exporter infers mur_exterieur / refend / cloison from geometry. A matching declared composition drops the Hypothese flag in the IFC.","type":"string"},"couches":{"description":"Optional inline material layers [{cle, epaisseur?}]. cle is one of enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer so it takes the remainder of the wall thickness.","type":"array"},"epaisseur":{"default":200,"description":"Wall thickness ⟨35 unchanged words⟩ usual French ceiling height","type":"number"},"materiau":{"description":"Optional single material key: the whole thickness becomes one load-bearing layer instead of a type composition.","type":"string"},"x1":{"description":"Start point ⟨680 unchanged words⟩
⟨221 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨168 unchanged words⟩ :"object"},"type":"array"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"murs":{"description":"Walls: plan segments ⟨43 unchanged words⟩ for you.","items":{"properties":{"composition":{"description":"Optional key into the scene-level compositions object. When omitted, the exporter infers mur_exterieur / refend / cloison from geometry. A matching declared composition drops the Hypothese flag in the IFC.","type":"string"},"couches":{"description":"Optional inline material layers [{cle, epaisseur?}]. cle is one of enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer so it takes the remainder of the wall thickness.","type":"array"},"epaisseur":{"default":200,"description":"Wall thickness ⟨35 unchanged words⟩ usual French ceiling height","type":"number"},"materiau":{"description":"Optional single material key: the whole thickness becomes one load-bearing layer instead of a type composition.","type":"string"},"x1":{"description":"Start point ⟨691 unchanged words⟩
⟨211 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨216 unchanged words⟩ ,"png"],"type":"string"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"murs":{"description":"Walls: plan segments ⟨43 unchanged words⟩ for you.","items":{"properties":{"composition":{"description":"Optional key into the scene-level compositions object. When omitted, the exporter infers mur_exterieur / refend / cloison from geometry. A matching declared composition drops the Hypothese flag in the IFC.","type":"string"},"couches":{"description":"Optional inline material layers [{cle, epaisseur?}]. cle is one of enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer so it takes the remainder of the wall thickness.","type":"array"},"epaisseur":{"default":200,"description":"Wall thickness ⟨35 unchanged words⟩ usual French ceiling height","type":"number"},"materiau":{"description":"Optional single material key: the whole thickness becomes one load-bearing layer instead of a type composition.","type":"string"},"x1":{"description":"Start point ⟨680 unchanged words⟩
⟨211 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨168 unchanged words⟩ :"object"},"type":"array"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"murs":{"description":"Walls: plan segments ⟨43 unchanged words⟩ for you.","items":{"properties":{"composition":{"description":"Optional key into the scene-level compositions object. When omitted, the exporter infers mur_exterieur / refend / cloison from geometry. A matching declared composition drops the Hypothese flag in the IFC.","type":"string"},"couches":{"description":"Optional inline material layers [{cle, epaisseur?}]. cle is one of enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer so it takes the remainder of the wall thickness.","type":"array"},"epaisseur":{"default":200,"description":"Wall thickness ⟨35 unchanged words⟩ usual French ceiling height","type":"number"},"materiau":{"description":"Optional single material key: the whole thickness becomes one load-bearing layer instead of a type composition.","type":"string"},"x1":{"description":"Start point ⟨680 unchanged words⟩
⟨243 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨219 unchanged words⟩ :"object"},"type":"array"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"murs":{"description":"Walls: plan segments ⟨43 unchanged words⟩ for you.","items":{"properties":{"composition":{"description":"Optional key into the scene-level compositions object. When omitted, the exporter infers mur_exterieur / refend / cloison from geometry. A matching declared composition drops the Hypothese flag in the IFC.","type":"string"},"couches":{"description":"Optional inline material layers [{cle, epaisseur?}]. cle is one of enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer so it takes the remainder of the wall thickness.","type":"array"},"epaisseur":{"default":200,"description":"Wall thickness ⟨35 unchanged words⟩ usual French ceiling height","type":"number"},"materiau":{"description":"Optional single material key: the whole thickness becomes one load-bearing layer instead of a type composition.","type":"string"},"x1":{"description":"Start point ⟨748 unchanged words⟩
⟨312 unchanged words⟩ :"object"},"type":"array"},"compositions":{"description":"Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].composition drops the Hypothese flag. Each value is {libelle, couches: [{cle, epaisseur?}]}. cle: enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer.","type":"object"},"decoration":{"description":"Paint/finish per wall — ⟨234 unchanged words⟩ ,30,60],"type":"integer"},"georef":{"description":"Optional Lambert-93 (EPSG:2154) false origin for IfcMapConversion. Local millimetres are scaled by 0.001 to CRS metres. Do not invent coordinates: omit est/nord if unknown (origin stays 0). orientation is the angle in degrees of project X from map East, counterclockwise.","properties":{"altitude":{"description":"Orthogonal height in metres (NGF-IGN69 for Lambert-93).","type":"number"},"crs":{"description":"Projected CRS name. Default EPSG:2154 (Lambert-93).","type":"string"},"est":{"description":"Easting in metres in the CRS. Omit if unknown — never invent.","type":"number"},"nord":{"description":"Northing in metres in the CRS. Omit if unknown — never invent.","type":"number"},"orientation":{"description":"Angle in degrees of the project's X axis from map East, counterclockwise. Default 0.","type":"number"}},"type":"object"},"mode":{"default":"deco","description": ⟨64 unchanged words⟩ for you.","items":{"properties":{"composition":{"description":"Optional key into the scene-level compositions object. When omitted, the exporter infers mur_exterieur / refend / cloison from geometry. A matching declared composition drops the Hypothese flag in the IFC.","type":"string"},"couches":{"description":"Optional inline material layers [{cle, epaisseur?}]. cle is one of enduit, bloc_beton, isolant, ba13, ossature, enduit_platre, beton_arme, tuile, charpente, etancheite. Omit epaisseur on the load-bearing layer so it takes the remainder of the wall thickness.","type":"array"},"epaisseur":{"default":200,"description":"Wall thickness ⟨35 unchanged words⟩ usual French ceiling height","type":"number"},"materiau":{"description":"Optional single material key: the whole thickness becomes one load-bearing layer instead of a type composition.","type":"string"},"x1":{"description":"Start point ⟨775 unchanged words⟩
WHEN clashes and control alerts must leave as a BCF 2.1 zip readable in Solibri, BIMcollab, Navisworks, Revit or Archicad: one Clash topic per clash and one Issue topic per alert of our checks, each selecting its objects by IFC GlobalId with a camera in front of them. Pass a scene or `ifc` (an architect's IFC text). Returns {topics, conflits, alertes, bcf_base64}: write bcf_base64 to a .bcfzip file.
WHEN coordinating a BIM model: detect real clashes — solids that interpenetrate by more than 10 mm and 0.1 L, computed on volumes (horizontal slices of each mesh), so two tables nested at the same level are caught and a bed standing against a wall is not. Pass a scene (same as cao_generer_ifc) or `ifc`: the text of an architect's IFC, whose GlobalIds are kept. Wall-slab bearings, wall corner/T joints, objects standing on a rug or deck and doors in their wall are intended geometry, counted in `ignores`. Returns {conflits, ignores, elements, boite_modele}.
WHEN an architect sends an IFC (Revit, Archicad… IFC2X3 or IFC4) and you must check it with our rules: converts the IFC text into a CAO scene — walls, doors and windows on their host wall, straight stair flights, railings, named rooms, furniture, roof — each element keeping its GlobalId (ifc_guid). Returns {scene, rapport, controles, metres}: controles = the cao_verifier audit, metres = quantities; conflits:true adds clashes, studio:true opens the 4K video studio and the VR tour of the imported model. Reuse `scene` with every other cao_* tool.
WHEN a building scene must be completed with structure and building services by French rules before BIM export or quoting: lintels over openings of load-bearing walls, strip footings sized from service loads, slab span check (indicative pre-design, to be validated by a structural engineer); NF C 15-100 electrical points per room (outlets, RJ45, lighting with its switch, one smoke detector per level, panel with 30 mA RCD) and circuit count; single-flow mechanical ventilation per the 24 March 1982 decree (extract grilles in wet rooms, air inlets in dry rooms, fan, flows); drainage branches with…
WHEN you need to check an IFC scene without a buildingSMART account. Same scene as cao_generer_ifc. Returns {ok, schema_ifc4, regles, problemes}: IFC4 schema + EXPRESS rules, millimetre units, material layers on every IfcWallStandardCase, named IfcSpace, thermal conductivity in Pset_MaterialThermal, every element in a storey.
QUAND une réparation doit être commandée à un artisan ou signalée aupropriétaire.propriétaireBon—/le bon de commande qui engage la dépense. À distinguer de devis_travaux (on demanded'interventionunmaintenance.prix,vian'estPOSTcommandé)/api/v1/documents/bon-intervention.et de compte_rendu_chantier (on rend compte après coup). Renvoie le courrier en HTML complet, directement dans la réponse : il n'y a ni fichier à télécharger, ni URL, ni PDF. Imprimez-le ou convertissez-le vous-même. Rien n'est enregistré côté serveur et aucun message n'est envoyé au prestataire — l'envoi reste votre geste.
⟨31 unchanged words⟩ geometry mistakes. Scene schema: GET https://synergieloc.fr/api/v1/cao/schema. Returns a JSONresponseobjectincludes{dxf, faces, entites_2d, unites, note}: the whole DXF drawing arrives INLINE as text in `dxf` — there is no download URL and no file stored on the server, so write it to a .dxf file yourself. `faces` and `entites_2d` count what was produced, `unites` states the drawing unit. alertes[]whenlists geometry issuesremain.still standing. Choose cao_generer_ifc instead when the recipient needs BIM objects rather than lines.
⟨2 unchanged words⟩ {"description":"Boxes (furniture, volumes):centerax,yrectangular+blockdimsplacedlby its CENTRE,pnot by a corner. Millimetres,h(mm)same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x ⟨262 unchanged words⟩ :{"description":"Walls: plan segments extrudedverticallyvertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1 ⟨27 unchanged words⟩ "items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","type":"number"},"mur":{"description" ⟨54 unchanged words⟩ ,"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":[" ⟨438 unchanged words⟩
⟨66 unchanged words⟩ ). Call cao_verifier first. Same scene as cao_generer_dxf. Returns a JSON object {ifc, elements, unites, schema}: the IFC file arrives INLINE as text in `ifc` — no download URL, nothing stored server-side, so write it to a .ifc file yourself. `elements` counts the IFC objects emitted and `schema` names the IFC version produced.
⟨2 unchanged words⟩ {"description":"Boxes (furniture, volumes):centerax,yrectangular+blockdimsplacedlby its CENTRE,pnot by a corner. Millimetres,h(mm)same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x ⟨262 unchanged words⟩ :{"description":"Walls: plan segments extrudedverticallyvertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1 ⟨27 unchanged words⟩ "items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","type":"number"},"mur":{"description" ⟨54 unchanged words⟩ ,"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":[" ⟨438 unchanged words⟩
⟨2 unchanged words⟩ {"description":"Boxes (furniture, volumes):centerax,yrectangular+blockdimsplacedlby its CENTRE,pnot by a corner. Millimetres,h(mm)same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x ⟨262 unchanged words⟩ :{"description":"Walls: plan segments extrudedverticallyvertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1 ⟨27 unchanged words⟩ "items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","type":"number"},"mur":{"description" ⟨54 unchanged words⟩ ,"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":[" ⟨438 unchanged words⟩
⟨12 unchanged words⟩ {"description":"Boxes (furniture, volumes):centerax,yrectangular+blockdimsplacedlby its CENTRE,pnot by a corner. Millimetres,h(mm)same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x ⟨262 unchanged words⟩ :{"description":"Walls: plan segments extrudedverticallyvertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1 ⟨27 unchanged words⟩ "items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","type":"number"},"mur":{"description" ⟨54 unchanged words⟩ ,"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":[" ⟨449 unchanged words⟩
⟨16 unchanged words⟩ the scene is what you meant. Top-down preview(SVG/PNG)of a CAO scene. Prefer cao_verifier before this for structured alerts; use the preview to visually double-check. Returns the picture itself, never a link: format=svg gives SVG markup as text, format=png gives an MCP image you can look at directly. Read-only — nothing is drawn, saved or sent anywhere.
⟨2 unchanged words⟩ {"description":"Boxes (furniture, volumes):centerax,yrectangular+blockdimsplacedlby its CENTRE,pnot by a corner. Millimetres,h(mm)same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x ⟨262 unchanged words⟩ ":{"default":"svg","description":"Formatsvgde(default)l'imagereturnsrendueeditable:vector markup as text — best when you want to inspect or post-process it. pngoureturnsjpeg.a raster image you can actually see. These two values are the only ones accepted; anything else is refused.","enum":["svg","png"], ⟨3 unchanged words⟩ :{"description":"Walls: plan segments extrudedverticallyvertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1 ⟨27 unchanged words⟩ "items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","type":"number"},"mur":{"description" ⟨54 unchanged words⟩ ,"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":[" ⟨438 unchanged words⟩
⟨2 unchanged words⟩ {"description":"Boxes (furniture, volumes):centerax,yrectangular+blockdimsplacedlby its CENTRE,pnot by a corner. Millimetres,h(mm)same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x ⟨262 unchanged words⟩ :{"description":"Walls: plan segments extrudedverticallyvertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1 ⟨27 unchanged words⟩ "items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","type":"number"},"mur":{"description" ⟨54 unchanged words⟩ ,"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":[" ⟨438 unchanged words⟩
⟨34 unchanged words⟩ {"description":"Boxes (furniture, volumes):centerax,yrectangular+blockdimsplacedlby its CENTRE,pnot by a corner. Millimetres,h(mm)same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x ⟨313 unchanged words⟩ :{"description":"Walls: plan segments extrudedverticallyvertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1 ⟨27 unchanged words⟩ "items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","type":"number"},"mur":{"description" ⟨54 unchanged words⟩ ,"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":[" ⟨506 unchanged words⟩
before
{"properties":{"boites":{"description":"Boxes (furniture, volumes): center x,y + dims l,p,h (mm)","items":{"properties":{"h":{"type":"number"},"l":{"type":"number"},"p":{"type":"number"},"rotation":{"default":0,"type":"number"},"x":{"type":"number"},"y":{"type":"number"},"z":{"default":0,"type":"number"}},"required":["x","y","l","p","h"],"type":"object"},"type":"array"},"cadence":{"description":"Pacing. Interior is a WALK: above ~1600 mm/s the video is unwatchable.","properties":{"hauteur_oeil_mm":{"default":1650,"type":"number"},"pose_piece_s":{"default":1.6,"description":"Dwell time at each room centre.","type":"number"},"vitesse_ext_mm_s":{"default":2600,"type":"number"},"vitesse_int_mm_s":{"default":1150,"type":"number"},"vitesse_transition_mm_s":{"default":950,"type":"number"}},"type":"object"},"cercles":{"description":"Circles on the 2D plan, alongside plan[] lines: each has a centre and a radius, in the same unit as the plan. Use for round shapes a polyline would render badly — fillets, posts, manholes.","items":{"properties":{"r":{"description":"Radius, same unit as plan[]","type":"number"},"x":{"description":"Centre X, same unit as plan[]","type":"number"},"y":{"description":"Centre Y, same unit as plan[]","type":"number"}},"required":["x","y","r"],"type":"object"},"type":"array"},"chemin":{"description":"OPTIONAL: your own waypoints — replaces the computed path.","items":{"properties":{"focale_mm":{"type":"number"},"plan":{"type":"string"},"pose_s":{"type":"number"},"position":{"properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}},"type":"object"},"vise":{"properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}},"type":"object"}},"type":"object"},"type":"array"},"decoration":{"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"},"duree_s":{"description":"Video length, 8–900 s (default 60). A real estate walkthrough runs 480–600 s; the path is ENRICHED with extra exterior revolutions to fill it with movement rather than slowed down.","type":"number"},"electricite":{"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"},"fps":{"default":30,"description":"Images par seconde de la visite. 24 à 30 pour un rendu naturel ; au-delà, le fichier grossit sans gain visible.","enum":[24,25,30,60],"type":"integer"},"mode":{"default":"deco","description":"'deco' = furnished as modelled; 'nu' = bare shell (plaster).","enum":["deco","nu"],"type":"string"},"murs":{"description":"Walls: plan segments extruded vertically","items":{"properties":{"epaisseur":{"default":200,"type":"number"},"hauteur":{"default":2500,"type":"number"},"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"required":["x1","y1","x2","y2"],"type":"object"},"type":"array"},"objectif":{"description":"Lens, full-frame equivalent mm. 20 = interior standard, 35 = exterior, 50 = closing shot. Below 16 mm the image goes fisheye.","properties":{"adaptatif":{"default":true,"type":"boolean"},"focale_cloture_mm":{"default":50,"type":"number"},"focale_entree_mm":{"default":24,"type":"number"},"focale_escalier_mm":{"default":20,"type":"number"},"focale_exterieur_mm":{"default":35,"type":"number"},"focale_interieur_mm":{"default":20,"type":"number"},"focale_max_mm":{"default":28,"type":"number"},"focale_min_mm":{"default":16,"type":"number"}},"type":"object"},"ouvertures":{"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"},"plan":{"description":"2D reference lines","items":{"properties":{"x1":{"type":"number"},"x2":{"type":"number"},"y1":{"type":"number"},"y2":{"type":"number"}},"required":["x1","y1","x2","y2"],"type":"object"},"type":"array"},"plomberie":{"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"},"reseaux":{"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"},"resolution":{"default":"4k","description":"Définition du rendu — « 1080p » ou « 4k ». La 4K quadruple le temps de calcul.","enum":["1080p","1440p","4k"],"type":"string"},"toitures":{"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"}},"type":"object"}after
{"properties":{"boites":{"description":"Boxes (furniture, volumes): a rectangular block placed by its CENTRE, not by a corner. Millimetres, same frame as murs[].","items":{"properties":{"h":{"description":"Height along Z (mm)","type":"number"},"l":{"description":"Length along X before rotation (mm)","type":"number"},"p":{"description":"Depth along Y before rotation (mm)","type":"number"},"rotation":{"default":0,"description":"Rotation around the box centre, in DEGREES counter-clockwise (not radians). Default 0","type":"number"},"x":{"description":"Centre X of the box (mm) — not a corner","type":"number"},"y":{"description":"Centre Y of the box (mm) — not a corner","type":"number"},"z":{"default":0,"description":"Underside height above the floor (mm). 0 = resting on the floor; raise it for a wall unit or a shelf","type":"number"}},"required":["x","y","l","p","h"],"type":"object"},"type":"array"},"cadence":{"description":"Pacing. Interior is a WALK: above ~1600 mm/s the video is unwatchable.","properties":{"hauteur_oeil_mm":{"default":1650,"type":"number"},"pose_piece_s":{"default":1.6,"description":"Dwell time at each room centre.","type":"number"},"vitesse_ext_mm_s":{"default":2600,"type":"number"},"vitesse_int_mm_s":{"default":1150,"type":"number"},"vitesse_transition_mm_s":{"default":950,"type":"number"}},"type":"object"},"cercles":{"description":"Circles on the 2D plan, alongside plan[] lines: each has a centre and a radius, in the same unit as the plan. Use for round shapes a polyline would render badly — fillets, posts, manholes.","items":{"properties":{"r":{"description":"Radius, same unit as plan[]","type":"number"},"x":{"description":"Centre X, same unit as plan[]","type":"number"},"y":{"description":"Centre Y, same unit as plan[]","type":"number"}},"required":["x","y","r"],"type":"object"},"type":"array"},"chemin":{"description":"OPTIONAL: your own waypoints — replaces the computed path.","items":{"properties":{"focale_mm":{"type":"number"},"plan":{"type":"string"},"pose_s":{"type":"number"},"position":{"properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}},"type":"object"},"vise":{"properties":{"x":{"type":"number"},"y":{"type":"number"},"z":{"type":"number"}},"type":"object"}},"type":"object"},"type":"array"},"decoration":{"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"},"duree_s":{"description":"Video length, 8–900 s (default 60). A real estate walkthrough runs 480–600 s; the path is ENRICHED with extra exterior revolutions to fill it with movement rather than slowed down.","type":"number"},"electricite":{"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"},"fps":{"default":30,"description":"Images par seconde de la visite. 24 à 30 pour un rendu naturel ; au-delà, le fichier grossit sans gain visible.","enum":[24,25,30,60],"type":"integer"},"mode":{"default":"deco","description":"'deco' = furnished as modelled; 'nu' = bare shell (plaster).","enum":["deco","nu"],"type":"string"},"murs":{"description":"Walls: plan segments extruded vertically. Every coordinate in this whole scene is in MILLIMETRES, in a single plan frame whose origin you choose — X to the right, Y upward, Z up from the floor. Keep one consistent origin across murs/boites/plan: the generators never recentre anything for you.","items":{"properties":{"epaisseur":{"default":200,"description":"Wall thickness (mm), spread evenly on both sides of the axis — the axis is the centreline, not a face. Default 200","type":"number"},"hauteur":{"default":2500,"description":"Wall height (mm) from floor level. Default 2500, a usual French ceiling height","type":"number"},"x1":{"description":"Start point X of the wall axis (mm)","type":"number"},"x2":{"description":"End point X of the wall axis (mm)","type":"number"},"y1":{"description":"Start point Y of the wall axis (mm)","type":"number"},"y2":{"description":"End point Y of the wall axis (mm)","type":"number"}},"required":["x1","y1","x2","y2"],"type":"object"},"type":"array"},"objectif":{"description":"Lens, full-frame equivalent mm. 20 = interior standard, 35 = exterior, 50 = closing shot. Below 16 mm the image goes fisheye.","properties":{"adaptatif":{"default":true,"type":"boolean"},"focale_cloture_mm":{"default":50,"type":"number"},"focale_entree_mm":{"default":24,"type":"number"},"focale_escalier_mm":{"default":20,"type":"number"},"focale_exterieur_mm":{"default":35,"type":"number"},"focale_interieur_mm":{"default":20,"type":"number"},"focale_max_mm":{"default":28,"type":"number"},"focale_min_mm":{"default":16,"type":"number"}},"type":"object"},"ouvertures":{"description":"Doors/windows embedded in a wall — used only by cao_pdf (elevations + axonometric view), no effect on dxf/metres.","items":{"properties":{"hauteur":{"description":"Opening height (mm), measured up from `z`. `z + hauteur` must stay under the wall height","type":"number"},"largeur":{"description":"Opening width (mm) measured along the wall, from `position`. Must fit inside the wall segment","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"},"plan":{"description":"2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks.","items":{"properties":{"x1":{"description":"Start X (mm), same frame as murs[]","type":"number"},"x2":{"description":"End X (mm), same frame as murs[]","type":"number"},"y1":{"description":"Start Y (mm), same frame as murs[]","type":"number"},"y2":{"description":"End Y (mm), same frame as murs[]","type":"number"}},"required":["x1","y1","x2","y2"],"type":"object"},"type":"array"},"plomberie":{"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"},"reseaux":{"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"},"resolution":{"default":"4k","description":"Définition du rendu — « 1080p » ou « 4k ». La 4K quadruple le temps de calcul.","enum":["1080p","1440p","4k"],"type":"string"},"toitures":{"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"}},"type":"object"}QUAND il faut rendre compte au maître d'ouvrage de l'avancement d'un chantierauaprèsclient.uneCompte-renduvisited'avancement— le document qui trace les réserves et les engage. À distinguer de bon_intervention (apponChantiercommandeIAune réparation) et de fiche_mission (on cadre une intervention à venir).POSTRenvoie/api/v1/documents/compte-rendu-chantier.lepoints[]compte=rendu{libelleen HTML complet dans la réponse : aucun fichier,statutaucune URL,notes}.rien n'est enregistré ni transmis au client.
⟨77 unchanged words⟩ pendant la visite, avec leur suite à donner. Un point par ligne du compte rendu ; l'ordre est conservé tel quel.","items":{"properties":{"libelle":{"description":"Le point constaté, en une ligne — « Cloison axe B, doublage posé ».","type":"string"},"notes":{"description":"Précision utile au client : cause d'un retard, décision prise, qui doit agir ensuite.","type":"string"},"statut":{"description":"Où en est ce point : « fait », « en cours », « en attente » ou « réserve ».","type":"string"}},"required":["libelle"],"type":"object"},"type":"array" ⟨49 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}QUAND un rendez-vous est déjà pris et doit être confirmé parécrit.écritConfirmationau client — visite, état des lieux, signature derendez-vousbail.(appCetAgenda).outilPOSTne/api/v1/documents/confirmation-rdv.réserve rien et ne consulte aucun agenda : il rédige la lettre de confirmation d'un créneau que vous lui donnez. Renvoie le courrier en HTML complet dans la réponse, sans fichier ni URL, et n'envoie rien au destinataire.
⟨26 unchanged words⟩ : RC Pro, décennale, URSSAF, KBIS.POSTMet/api/v1/documents/conformite-artisan.en forme les pièces que VOUS fournissez : rien n'est vérifié auprès de l'URSSAF ou d'un greffe, aucune attestation n'est authentifiée — c'est une checklist, pas un contrôle. Renvoie le document en HTML complet dans la réponse : ni fichier, ni URL, ni PDF. pieces[] = {type, statut, numero, date_expiration}.
⟨13 unchanged words⟩ sa demande). COMPTE RENDU DE GESTION simplifiépour,lerenvoyépropriétaireen(HTML;complet dans la réponse : ni fichier, ni URL, ni PDF,viaetPOSTrien/api/v1/documents/crg).n'est enregistré ni envoyé. Destinataire = propriétaire (fenêtre droite). Recettes/dépenses/honoraires/solde ⟨16 unchanged words⟩
QUAND un artisan chiffre des travauxavantAVANT accord duclient.client — rien n'est commandé à ce stade, contrairement à bon_intervention. Devis travaux (app Factures). Renvoie le devis en HTML;complet dans la réponse : ni fichier, ni URL, ni PDF,viaetPOSTrien/api/v1/documents/devis-travaux.n'est enregistré ni envoyé au client. lignes[] = {libelle, quantite, prix_unitaire, tva}.PuisUnefacture_facturx.fois le devis accepté, facture_facturx produit la facture conforme.
⟨26 unchanged words⟩ d'entrée ou de sortie (décret 2016-382). Renvoie l'état des lieux en HTML complet dans la réponse — ni fichier, ni URL, ni PDFvia;POSTrien/api/v1/documents/edl.n'est enregistré, donc conservez-le vous-même : c'est l'état des lieux d'ENTRÉE qu'il faudra comparer à la sortie. Renseignez pieces[], compteurs[],et cles[].— un poste omis ne pourra pas être retenu plus tard sur le dépôt de garantie.
⟨8 unchanged words⟩ facturation électronique française (réforme e-facture, EN 16931).— le seul outil de ce serveur qui produise un vrai PDF ; tous les autres documents sortent en HTML. Facture Factur-X (PDF/A-3 + XML EN 16931).POSTAttention/api/v1/documents/facturx.à la forme du retour : un objet JSON {_mcp_pdf_base64, _mcp_mime}, donc le PDF arrive encodé en base64 DANS du texte — décodez-le avant de l'écrire, ne l'affichez pas tel quel. Rien n'est enregistré ni transmis à l'administration : le dépôt reste votre geste. seller{}, buyer{}, lines[] ( ⟨11 unchanged words⟩
QUAND un artisan prépare une intervention ou unchantier.chantier — le cadrage AVANT d'y aller, là où compte_rendu_chantier rend compte APRÈS. Fiche mission / chantier (app Missions). Renvoie la fiche en HTML;completvialaPOSTréponse/api/v1/documents/fiche-mission.: ni fichier, ni URL, ni PDF. Dossier local — pas d'accès au portail SaaS.
QUAND les déplacements doivent être justifiés(barèmeau BARÈME kilométrique).— pour des frais réels sur justificatif, c'est note_frais. Journal kilométrique + indemnités (app Kilométrique).POSTRenvoie/api/v1/documents/journal-kilometrique.le journal en HTML complet dans la réponse : ni fichier, ni URL, ni PDF. trajets[] = {date, depart, arrivee, km, motif}. Optionnel :taux_km.taux_km — sans lui, le barème par défaut du serveur s'applique.
QUAND il faut préparer lesachatsACHATS d'unchantier.chantierListe—matériauxla/listepanierqu'on(appemportePanier).chezPOSTle/api/v1/documents/liste-materiaux.fournisseur, pas un chiffrage client : pour cela, devis_travaux. Si la scène est déjà dessinée, cao_metres calcule les quantités à reprendre ici. Renvoie la liste en HTML complet dans la réponse : ni fichier, ni URL, ni PDF, et aucune commande n'est passée. articles[] = {libelle, quantite, unite, prix}.
⟨21 unchanged words⟩ Rédige un MANDAT DE GESTION (loi Hoguet), renvoyé en HTML—completvialaPOSTréponse/api/v1/documents/mandat-gerance.: ni fichier, ni URL, ni PDF. L'agent le fait signer et le stocke dans ⟨24 unchanged words⟩
⟨19 unchanged words⟩ (checklist + solde de tout compte). Renvoie le document en HTML complet dans la réponse — ni fichier, ni URL, ni PDFvia;POSTrien/api/v1/documents/mouvement-locataire.n'esttype=entree|sortie.enregistré. Le champ `type` (entree|sortie) décide des rubriques imprimées : c'est le même outil pour les deux sens.
QUAND des frais professionnels doivent être remboursés oujustifiés.justifiés — dépenses réelles sur justificatif, là où journal_kilometrique applique le barème kilométrique. Note de frais (app Frais).POSTRenvoie/api/v1/documents/note-frais.la note en HTML complet dans la réponse : ni fichier, ni URL, ni PDF, et aucun remboursement n'est déclenché. lignes[] = {date, libelle, montant, mission, justificatif}.
⟨26 unchanged words⟩ (art. 21 loi 89-462), HTML imprimable(renvoyé en HTML complet dans la réponse — ni fichier, ni URL, ni PDF,viaetPOSTrien/api/v1/documents/quittance).n'est enregistré ni envoyé au locataire. TOUJOURS mis en page pour ENVELOPPE À FENÊTRE ⟨31 unchanged words⟩
⟨29 unchanged words⟩ niveaux 1–4. Différent de relance_impaye (locatif).POSTRenvoie/api/v1/documents/relance-facture-client.la relance en HTML complet dans la réponse : ni fichier, ni URL, ni PDF, et rien n'est expédié.
⟨28 unchanged words⟩ impayé niveaux 1–5 (amiable → pré-contentieux). Renvoie le courrier en HTML;complet dans la réponse — ni fichier, ni URL, ni PDFvia;POSTrien/api/v1/documents/relance.n'est enregistré ni expédié. Mention art. 24 loi 89-462 dès niveau 3. ⟨17 unchanged words⟩