Lay a pipe run
edit_plumbingLay pipe runs for cold, hot, sewer, or vent plumbing from source to points via wall, floor, or ceiling; replaces prior runs and returns length, bends, and materials.
Instructions
Lay a pipe run of the plumbing project (plumbing reads it). route {kind: cold|hot|sewer|vent, ids?, via?: ceiling|floor|wall, from?, depth?} lays the run from its source to the points along and inside the walls, through the ceiling or under the floor, sharing the trunk; it replaces the earlier run of the same points and the lines drawn by hand to them (replaced_drawn) and answers {via, suggested, length_m, by_premise_m, bends, branches, materials: [[item, qty, unit]]}. Sewer runs only under the floor, by gravity (2 % fall up to 75 mm, 1 % above): the reply says needs_depth_cm, and with depth a run that does not fit is refused saying how much it needs. Without via the cheapest premise that can be built is taken; one that cannot is refused with why. Fittings and what is refused: rules topic=plumbing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | For `route`: the points; default every point of the kind | |
| via | No | For `route`: `ceiling`, `floor` or `wall`; omitted, the cheapest that can be built | |
| from | No | For `route`: the piece it starts from (a water meter, a valve, the heater, the inspection box or stack); default the nearest of its kind | |
| kind | No | For `route`: what the run carries | |
| depth | No | For `route` of sewer: the height free under the finished floor, cm (slab recess, or the ceiling void of the storey below) | |
| action | No | The change to make |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rev | Yes | ||
| run | Yes | ||
| via | Yes | ||
| bends | Yes | ||
| notes | No | ||
| branches | No | ||
| length_m | Yes | ||
| trunk_mm | No | ||
| materials | Yes | ||
| slope_pct | No | ||
| suggested | No | ||
| merged_into | No | ||
| by_premise_m | No | ||
| needs_depth_cm | No | ||
| replaced_drawn | No |