Copy, align and group
arrangeOrganize furniture and room elements using array, align, distribute, flip, rotate, mirror, group, and front/back operations, all undoable in one step.
Instructions
Arrange elements in one undo step. array {ids,n,dx,dy,dz} adds n copies stepping by dx/dy/dz cm (rafters, columns); align {ids,axis,edge:low|middle|high,value} lines pieces up by an edge — backs on one line, fronts on another — instead of by centers you work out yourself; distribute {ids,axis,gap?} sets them side by side in the order given, from where the first one is (a run of joinery); flip {ids} turns a piece back to front, rebuilding what is inside it (mirror only swaps left and right and leaves the front where it was); rotate {ids,angle clockwise,about?,copy?}; mirror {ids,a,b,copy?} across the line a-b; group {ids,name?} joins pieces into one box that moves/hides together, ungroup {ids:[group]}; front/back {ids} draws rooms or pieces on top/underneath (pool over deck, rug under sofa). Returns new ids.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | mirror: the first point of the mirror line | |
| b | No | mirror: the second point of the mirror line | |
| n | No | array: number of copies (default 1) | |
| dx | No | array: step per copy along x, cm | |
| dy | No | array: step per copy along y, cm | |
| dz | No | array: step per copy upwards, cm (furniture and labels) | |
| gap | No | distribute: centimeters between one piece and the next (default 0) | |
| ids | Yes | The elements to act on (ungroup: the group) | |
| axis | No | align/distribute: `x` or `y` | |
| copy | No | rotate/mirror: keep the originals and transform a copy | |
| edge | No | align: which edge to line up — `low` (left, or top of the plan), `middle`, `high` | |
| name | No | group: its name | |
| about | No | rotate: pivot `[x,y]` (default the center of the elements) | |
| angle | No | rotate: clockwise degrees | |
| value | No | align: the coordinate, cm, to put that edge on | |
| action | Yes | `array` (copies in a row), `align`, `distribute`, `flip`, `rotate`, `mirror`, `group`, `ungroup`, `front`, `back` |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| v | No | Plan version written to, when there are several | |
| ok | Yes | Always true | |
| ids | No | Ids created or touched | |
| rev | No | Plan revision | |
| text | Yes | The reply as written |