export_marked_pdf
Exports a distribution-ready PDF with takeoff shapes, legend, and sheet breakdown. Writes to disk, optionally overwriting existing files.
Instructions
The MARKED-UP PLANSET — the deliverable of every takeoff. Writes a distribution-ready PDF to disk: a legend cover (per-condition totals, swatches, a by-sheet breakdown) followed by every sheet that carries takeoff shapes or annotations, vector-copied from the source plan with the work burned in as drawn — condition colors and hatches, a quantity chip on every shape, annotation clouds/callouts/highlights, and approval marks (the estimator's APPROVED rings, the agent's AGENT diamonds — the cover tallies the split). Built by the same module as the canvas's MARKED SET button, so agent output and app output are one implementation. A construction takeoff is no good without markup: finish EVERY takeoff by writing this file and giving the user its path (export_report carries the numbers for pricing; this carries the evidence). When the shapes were machine-traced and unreviewed, the document says so on its last page — the review path is importing the export_takeoff payload into the app, where agent shapes arrive as pencil proposals. Default path: next to the loaded plan as " - marked set.pdf". Needs no native canvas — pure vector copy, so it works even where view_sheet cannot render.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Where to write the PDF (default: "<plan dir>/<plan> - marked set.pdf") | |
| overwrite | No | Replace the file at path even when it is not an OpenTakeoff export. Off by default: re-exporting over a previous export of your own already overwrites without this, so you only need it to deliberately destroy an unrelated file. | |
| project_name | No | Cover-page project name (default: the plan file's name) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| path | Yes | Absolute path of the written marked-set PDF — hand this to the user | |
| pages | Yes | Legend cover + one page per marked sheet | |
| shapes_drawn | Yes | ||
| sheets_marked | Yes | Sheets carrying shapes, annotations, or approval marks — unmarked sheets are omitted | |
| approvals_drawn | Yes | Approval-family glyphs burned in (#176) — estimator APPROVED rings + agent AGENT diamonds; the cover tallies the split when any exist | |
| annotations_drawn | Yes |