cao_verifier
WHEN a scene is composed and BEFORE cao_pdf / cao_generer_dxf / cao_rendu / cao_visite_plan / cao_visite_studio — the cheap check that stops a wrong plan or broken 4K visit from being delivered. FREE geometric audit of a CAO scene (no API key, 0 units). Detects the mistakes that make planches loo...
This record as markdown: /tools/fr-synergieloc-immobilier/cao-verifier.md
What cao_verifier does on Immobilier
AI agents call cao_verifier to permanently remove resources in Immobilier, typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.
| Parameter | Type | Required | Description |
|---|---|---|---|
murs | array | — | 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 righ |
plan | array | — | 2D reference lines — drawn flat, never extruded and never counted in the quantities. Use them for axes, plot limits or setting-out marks. |
boites | array | — | Boxes (furniture, volumes): a rectangular block placed by its CENTRE, not by a corner. Millimetres, same frame as murs[]. |
georef | object | — | 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 |
cercles | array | — | 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 |
reseaux | array | — | Plumbing pipe runs (EF/EC/EU/EV/EP/chauffage) — used only by cao_pdf (technical plan + linear-meter quantities per type). |
toitures | array | — | 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 |
plomberie | array | — | Sanitary fixtures (sink, WC, shower…) — used only by cao_pdf. Same positioning as electricite. |
decoration | array | — | 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 |
ouvertures | array | — | Doors/windows embedded in a wall — used only by cao_pdf (elevations + axonometric view), no effect on dxf/metres. |
electricite | array | — | Electrical symbols (outlets, switches, lights…) — used only by cao_pdf (dedicated technical plan + quantities), no effect on dxf/metres/render. Position: attach |
compositions | object | — | Named wall/slab layer sets declared by the project. A key that matches an inferred kind (mur_exterieur, refend, cloison, plancher, toiture) or murs[].compositio |
Parameters from the server's own tool schema.
Why cao_verifier is rated Critical
An AI agent that decides to call cao_verifier doesn't hesitate, doesn't double-check, and doesn't stop at one. Whatever it removes from Immobilier is gone. There is no undo for destructive operations.
Risk signalsHigh parameter count (94 properties) · Bulk/mass operation — affects multiple targets
Attacks that exploit this kind of access
The rule that runs cao_verifier safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Immobilier, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For cao_verifier, this is the rule to start with:
cao_verifier is removed from the agent's tool list entirely, so the agent never calls it. The rest of the server keeps working.
The button opens the PolicyLayer dashboard: create your workspace, connect Immobilier, apply this rule, and every cao_verifier call is checked against it from then on.
Questions about cao_verifier
WHEN a scene is composed and BEFORE cao_pdf / cao_generer_dxf / cao_rendu / cao_visite_plan / cao_visite_studio — the cheap check that stops a wrong plan or broken 4K visit from being delivered. FREE geometric audit of a CAO scene (no API key, 0 units). Detects the mistakes that make planches look wrong: openings.z used as absolute altitude instead of relative sill (allège), chien_assis dormers floating outside the roof, upper storey walls with no windows, guardrails far from the building, missing stairs between floors, openings overflowing their wall. ALSO checks that a staircase actually leads somewhere (escalier_traverse_mur — the flight runs into a partition of its own level; escalier_arrivee_hors_batiment — it lands outside the walls). STAIRCASE PLACEMENT is checked in full, because a stair dropped in an absurd spot is the most visible flaw of an AI-composed model: escalier_depart_hors_batiment (it starts in the void), escalier_volee_hors_batiment (the flight leaves the building on the way up), escalier_bloque_ouverture (it seals a doorway), escalier_z_hors_niveau (it floats between two slabs), escalier_hauteur_incoherente (it stops short of the floor above), escalier_chevauche (two flights in the same footprint), and escalier_sans_appui (free-standing mid-room — a WARNING, not blocking: an open stairwell is a legitimate choice). Each one comes with a correctifs[] entry carrying a REAL replacement position (x/y/rotation): the closest valid spot to what you asked for, backed against a wall, arriving in clear space and blocking no door. Apply with REST /api/v1/cao/integrite {appliquer:true, revalider:true} — you never have to guess where to put it. ALSO checks that a dormer sits on the slope (lucarne_profondeur_courte / _longue / lucarne_trop_haute — depth must be ≈ height / roof pitch, otherwise its roof floats above the slope or overshoots the ridge). Returns {ok, erreurs_schema, alertes[{code,severite,message,corriger}], conseils, resume}. Fix severite=critique before delivery. ALSO runs a full STRUCTURAL INTEGRITY check (is the building really closed and roofed?): enveloppe_percee — a wall end joins nothing (T-junctions and door jambs are recognised, so no false alarms) — murs_composantes_isolees — closed wall clusters / pillars / low walls scattered OUTSIDE the main envelope (the 'murs en vrac' Visite 4K defect; correctifs propose null = delete that wall) — bande_ouverte_entre_niveaux, mur_etage_sans_appui, toit_ouvert, toiture_sous_les_murs, ouvertures_chevauchantes, and the VOLUME CLASHES the IFC clash detector sees: mur_en_double, murs_superposes, mur_dans_une_baie (correctif slides the opening clear), volume_traverse_un_mur, volume_traverse_le_plafond, murs_qui_se_croisent (warning); pipe × wall crossings come back in reservations (sleeves to plan, not clashes). ALSO dalle_flottante / pilier_detache on orphan boxes. It returns integrite.correctifs[]: the exact field to write and the value to write there, e.g. {cible:'murs[3].x2', actuel:10400, propose:11000, raison:…} or {cible:'murs[12]', propose:null} to remove clutter. REST /api/v1/cao/integrite runs that check alone and can APPLY the fixes for you (appliquer:true, revalider:true) — also free, no key. Response includes regles_archi (buildingSMART-inspired principles). ALSO checks DOCUMENT COMPLETENESS (documents): the PDF planche delivers one full plan PER STOREY — 4 storeys means 4 complete plans — so it flags element_hors_plan (a stair/guardrail whose z attaches to no storey: it would vanish from EVERY plan), niveau_non_desservi (no stair ARRIVES at that storey and no lift covers it), arrivee_sans_protection (stair head without guardrail, NF P01-012), hauteur_niveau_insuffisante (<2200 mm). documents.couverture is the announced table of contents of the planche. Standalone: REST /api/v1/cao/documents (free, supports appliquer/revalider too). REST equivalent: /api/v1/cao/verifier. It is categorised as a Destructive tool in the Immobilier MCP Server, which means it can permanently delete or destroy data. Block by default and require explicit approval.
cao_verifier accepts 12 parameters: murs, plan, boites, georef, cercles, reseaux, toitures, plomberie, decoration, ouvertures, electricite, compositions. The full parameter table on this page comes from the server's own tool schema.
Register the Immobilier MCP server in PolicyLayer and add a rule for cao_verifier: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Immobilier. Nothing to install.
cao_verifier is a Destructive tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.
Yes. Add a rate_limit block to the cao_verifier rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for cao_verifier. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
cao_verifier is provided by the Immobilier MCP server (https://synergieloc.fr/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Immobilier, and thousands of servers like it.
Across the catalogue