Edit mesh
edit_meshEdits the shape (guid, guids or set) directly: move points of a tessellated body (each checked against the file), push one face, set the top onto a sloped plane, close a hole, stretch it at a plane (a window 20 cm wider, holes and all), set the corners of a profile polygon, turn a mesh prism into an extrusion, or colour single faces of a face set. New revision, effect report (n_changed, rejected, cloned, carried). A call that succeeds is not a job that's done. Target: guid, guids or a set from find_elements/get_selection, never a filter. Beyond the named: PLAN_REQUIRED, run its plan_id with expect_beyond. repair: weld, drop degenerate and duplicate faces, close each hole a cap closes without crossing, face outward; writes only when defects fall; reports what changed and whether the body is closed.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "edit_mesh"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | push_face: a point on the face; close_hole: a point on the hole rim | |
| by | No | push_face: m along the outward normal (negative pushes in); move_points: offset [x,y,z] m for every from | |
| op | No | What to edit; an IfcSpace takes set_profile (floor corners) and to_extrusion (a prism body) | |
| set | No | A set id from find_elements or get_selection: writes exactly the elements seen there, nothing that matches later. An element changed since reading is rejected alone; the others are written | |
| guid | No | One element (GlobalId) | |
| note | No | Your note, stored with the new revision | |
| faces | No | colour_faces: written as the IfcIndexedColourMap of a triangulated or polygonal face set, geometry unchanged; every other face keeps the colour it shows. get_element mesh face_colours reads it back | |
| guids | No | These elements (GlobalIds) | |
| level | No | A mapped shape: this occurrence (cloned) or the type | |
| plane | No | to_plane: three points; the upward faces move vertically onto it | |
| points | No | move_points: each point where it is and where it goes (to, or by for all) | |
| weld_m | No | repair: points closer than this are one, default 0.000001 | |
| dry_run | No | Preview: the planned effect and a plan_id, nothing written | |
| plan_id | No | Execute exactly the plan a dry_run returned, all or nothing; the plan holds target and fields. Plans that clone the same shared object (type, material) run one after the other: plan the second after the first ran, else PLAN_CHANGED | |
| profile | No | set_profile: corners in profile coordinates, at most 1000; replace the outer curve, arcs become edges (arcs_replaced), holes stay if inside. At an unfilled opening: [[u,v],...] m in the host as insert_in_host outline | |
| stretch | No | stretch: tessellated body only; the other side stays | |
| direction | No | to_extrusion: the extrusion direction, world vector; one of the candidates a refusal names | |
| request_id | No | Your id for this call: a repeat answers the first result and writes nothing | |
| expect_count | No | With set: how many elements the set holds - guards against a mixed-up set id | |
| profile_part | No | set_profile on a composite profile: the part by ProfileName or 0-based index | |
| expect_beyond | No | With plan_id: how many elements the plan reaches beyond those named (n_beyond of PLAN_REQUIRED or the dry_run) | |
| expect_contacts | No | Intended contacts: checks.contacts splits into as_expected, missing, surprises; an omitted kind is not judged |