Change elements
updateChange properties of floor-plan elements by id — furniture, walls, rooms, labels — and bulk-rename by regex. Use dry run to preview changes before applying.
Instructions
Change fields of elements by id; fields must match the element kind (e.g. furniture mat/opacity/pitch, wall h_end, room auto/ceiling_flat, polyline divider); a part of a group takes name, brand, model_name and url on its own — its size and place belong to the group. anchor on a resize holds one face still (back/front/left/right of the piece, bottom/top, or a plan side) instead of growing around the center, so a run of joinery keeps its back on the wall. stretch=[part ids] on a group resize says what takes the change: the listed parts grow or shrink, every other part keeps its size and moves along (uprights stay 5.8 cm while the opening between them grows); without it all parts scale together. dry=true answers what it would do — changed fields, clearances around each piece it touches (negative: cm it would sit inside what it faces), findings resolved and created as issues_resolved/issues_new [{ids, kind, extent|cm|over}] with the same kind check_layout gives (only real defects: a piece resting or built in is never listed), and issues_changed for a clash that stays but grows or shrinks (extent_was) — without writing anything, so a size can be tried before it is applied; dry="summary" answers the same decision without listing the parts a group rebuilds. Otherwise the reply names what changed. rename {pattern, to, what: names|labels} renames in bulk by a regex (Rust syntax, (?i) for any case, $1 in to): every piece name — parts of groups included — or label text that matches, in one step; with dry it lists them first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| v | No | Plan version (tab) to write to; switches to it first | |
| dry | No | Try it without applying: reports what would change, the clearances around every piece it touches, and which layout and ergonomics findings it would resolve or create. Nothing is written and the user's window does not move | |
| items | No | The elements to change, one object each: `id` and the fields to set | |
| rename | No | Rename in bulk by a rule instead of listing items: every name (pieces and the parts of groups) or label text matching `pattern` has it replaced by `to`, in one undoable step |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| v | No | Plan version written to, when there are several | |
| ok | No | Always true | |
| dry | No | Nothing was written | |
| ids | No | Ids created or touched | |
| rev | No | Plan revision | |
| gone | No | Ids removed, or their count | |
| text | No | The reply as written | |
| added | No | Ids added, or their count | |
| score | No | Score [before, after] | |
| changed | No | {id, from, to} per element changed; a count past 20 | |
| resolved | No | Findings settled | |
| unchanged | No | Asked ids that came out as they were: {id, now} | |
| clearances | No | Free floor around touched pieces, by id | |
| issues_new | No | Layout issues created | |
| properties | No | Project properties changed | |
| added_count | No | Roots added | |
| annotations | No | Annotation switches {from, to} | |
| score_scope | No | Disciplines scored | |
| new_findings | No | Findings created | |
| changed_count | No | Roots changed | |
| issues_changed | No | Layout issues resized | |
| unchanged_note | No | Why they did not change | |
| issues_resolved | No | Layout issues settled | |
| findings_changed | No | Findings changed | |
| acceptance_cleanup | No | Acceptances orphaned, and the calls that clear them |