Run a takeoff
End-to-end: plan upload → AI assessment → review → approve → canvas symbols. The same sequence ships as an MCP prompt (takeoff_from_plans) and as an Arazzo workflow.
Steps
- Create a project (or use an existing one). Upload a plan PDF via
POST /v1/files+ the presigned R2 URL. POST /v1/projects/{id}/assessments— starts an async AI pass.- Poll
GET /v1/assessments/{id}untilstatus === "awaiting_approval". Or subscribe to theassessment.completedwebhook event. - Review
detectedElementswith the user. Only after explicit confirmation, callPOST /v1/assessments/{id}/approvewith the approved subset. - Approved elements become symbols. Use
GET /v1/projects/{id}/line-itemsto see what's now bound.
Don't
- Don't auto-approve detected elements — every downstream cost calculation derives from them. The system supports a human-in-the-loop step for a reason.
- Don't re-run the assessment to "refresh" quantities; re-count from the existing symbols instead, or it'll wipe user edits.