feat(understand): the takeoff workbook and pipe_takeoff (SECTION 27 opens)

write_workbook builds the user's takeoff workbook from a result: Metraj (rows
with direct, continuity and unassigned lengths split, the allowance as its
own column, routed / unroutable / grand totals), Ozet (by service, diameter
and room), Kontrol (unassigned diameters and unroutable runs with the
reason) and Metodoloji, generated from the result: sources, the length
source and why, the scale-check verdict with its statistics, the units,
every rule and tolerance, and every warning. Headers and sentences in
Turkish, English or Russian. CSV always, one file per sheet; XLSX with
openpyxl, otherwise the xlsx_write refusal naming the office extra while
the CSV files are still written.

pipe_takeoff reads the P&ID and the layout once each (take_snapshot),
computes in a worker thread and never modifies either drawing. Tagged plant
and analysis; the plant pack is the integration task's. Alias record in
English, Turkish and Russian. Inventory regenerated; README snapshot 242
tools (237 advertised); registry snapshot analysis: 13.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
This commit is contained in:
Umut CAN
2026-09-24 12:22:15 +03:00
co-authored by Claude Opus 5.5
parent e640def4ff
commit 653535bcc1
9 changed files with 1147 additions and 8 deletions
+17 -2
View File
@@ -3,13 +3,13 @@
"schema_version": 1,
"package_version": "1.5.1",
"totals": {
"tools": 241,
"tools": 242,
"resources": 8,
"prompts": 5,
"groups": 26
},
"groups": {
"analysis": 12,
"analysis": 13,
"architecture": 12,
"batch": 3,
"blocks": 9,
@@ -2524,6 +2524,21 @@
"readOnlyHint": true
}
},
{
"name": "pipe_takeoff",
"group": "analysis",
"cost": "safe",
"summary": "Pipe takeoff from a P&ID and its layout: rows by room, service and diameter.",
"tags": [
"analysis",
"plant"
],
"annotations": {
"title": "Plant: Pipe Takeoff",
"readOnlyHint": false,
"destructiveHint": false
}
},
{
"name": "plot_style_list",
"group": "page_setup",