You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b6cebec
Browse filesBrowse the repository at this point in the historyBrowse files
- extensions: packages in backend/app/extensions/<id> (API at /api/x/<id>/, own migrations recorded as
"<id>:NNNN") with screens in frontend/src/extensions/<id> (#/x/<id>, loaded when opened); the admin switches
them on and off in Settings → Extensions; the sidebar lists the ones that are on
- Blueprint takeoff: projects from a PDF drawing set (upload or a files table); sheets read from title blocks and
the drawing index (number, title, discipline) with their scales; include sheets by discipline, check them,
calibrate a scale from a known dimension
- legends and schedules read as tables (or boxed by hand) become items with their label, symbol and schedule
columns; items found on sheets by label (standing alone, not in sentences) or by symbol (OpenCV template
matching, four rotations, sizes ±10%), as suggestions to accept or reject; left-out areas
- counting and measuring runs and areas by hand with the sheet's scale; text search across sheets
- the takeoff: quantities by sheet, waste, unit cost; CSV, marked-up PDF, a Probyte table; schedules → tables
- tests: a made-up drawing set (tests/takeoff/drawing_set.py), API and browser tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+23-1Lines changed: 23 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -214,6 +214,24 @@ Connect an [ONLYOFFICE Docs](https://www.onlyoffice.com/docs) Document Server (t
214
214
215
215
Under **Network settings**, give *Probyte's address for the Document Server* (`http://probyte:8000` in the same Compose file, or `http://<this machine's IP>:<Probyte's port>` when the Document Server runs in another stack) when it can't use Probyte's public address. (In *Directly* mode, a Probyte served over HTTPS needs the Document Server on HTTPS too: browsers don't load an HTTP editor into an HTTPS page.)
216
216
217
+
## Extensions
218
+
219
+
Optional parts of Probyte, switched on by the server's admin in **Settings → Extensions** (off by default). An extension that's on shows in everyone's sidebar under **Extensions**; switched off, it's hidden and its data is kept. Each one is a package in `backend/app/extensions/<id>/` (its API at `/api/x/<id>/`, its own database migrations) with its screens in `frontend/src/extensions/<id>/`, loaded only when opened.
220
+
221
+
### Blueprint takeoff
222
+
223
+
Count, measure and list what's on a PDF drawing set, for estimates and takeoff sheets. Automatic results are always **suggestions**: you check them, correct them, accept or reject them, and only what's accepted is in the takeoff.
224
+
225
+
1. **Upload the drawing set** (or pick a PDF from a files table). Every page is read: its **sheet number** and **title** (from the title block and the drawing index on the cover), its **discipline** (E… electrical, A… architectural, M… mechanical, FA/FP/LS…) and the **scales** written on it (`1/4" = 1'-0"`, `1" = 20'`, `1:100`), the plan's first.
226
+
2. **Choose the sheets** (Sheets tab): include a whole discipline at once (e.g. all electrical sheets), correct a number, title or scale, and tick each sheet once it's right. A sheet whose scale is missing or wrong (a half-size print) is **calibrated** by clicking both ends of a known dimension.
227
+
3. **Items from the legends** (Items tab): **Read legends on this sheet** finds legends and schedules (light fixture schedules, symbol legends) and lists their entries with their symbol, their **label** (the fixture type written on the plan: A, B, EM-2, C48) and the schedule's other columns (manufacturer, catalog number, wattage…). Correct and choose them, and they become items. A legend that isn't a ruled table is boxed by hand (**Box a legend**). Items can also be added by hand: things to count, runs (length) and areas.
228
+
4. **Find them on the sheets**: by **label** (the label standing alone on the plan; the same word in a sentence of the notes doesn't count) or by **symbol** (its picture from the legend, found turned any of four ways and a little larger or smaller, with a likeness setting). Finds appear dashed on the sheets: click one to accept (A) or reject (R) it, accept all on a sheet, or every find at least 90% alike; **Next to review** steps through them. Legends and areas you box (notes, details) are left out of finds.
229
+
5. **Count and measure by hand**: click to count; click along a run or around an area (double-click to finish, Shift for straight lines). Lengths and areas use the sheet's scale; runs can add a length to every run (drops, makeup).
230
+
6. **Search** the sheets' text (GFCI, WP, EM-2…), go to each hit, and count the hits as an item.
231
+
7. **The takeoff** (Takeoff tab): each item's quantity by sheet and in all, waste % (counts rounded up), unit cost and extended cost. Export it as **CSV**, as the **drawing set marked up** (each mark in its item's color, with a key of quantities on every sheet), or into a **Probyte table** (to price, share and track it like any other table). Schedules on a sheet (panel, fixture, door schedules) can be copied into Probyte tables too.
232
+
233
+
Works best with drawing sets exported from CAD (they have real text and lines). Scanned drawings have no text: their labels and scales can't be read (count, calibrate and measure by hand; symbols can still be found). The drawing sets are kept in the data volume (`attachments/takeoff/`).
234
+
217
235
## Linked tables (from any Probyte server)
218
236
219
237
**A linked table behaves like the table it links to.** A linked files table opens files in the full-screen viewer with their details, uploads files (with **Upload** instead of New), and replaces and edits them; a linked contacts table imports and downloads vCards; a linked tasks & events table knows which field is a task's status or an event's start (the record panel, calendars and task rules work as in the source), and fields keep their formats (currency, dates…), descriptions and rules. Everything goes through the link, so it can only do what the link's owner allowed (view, add, edit, delete). In the sidebar, a small link mark shows which tables are linked.
@@ -463,7 +481,7 @@ KEEP_STACK=1 scripts/test.sh ... # leave the test stack running afterwards to
463
481
464
482
Tests run against a separate copy of the stack (Compose project `probyte-test`, ports 18080/15232, its own database and Radicale, plus throwaway S3 and WebDAV servers from `tests/docker-compose.storage.yml`), never your real data. Only Docker is needed. Failed browser tests leave a screenshot in `tests/.artifacts/`.
465
483
466
-
What's covered: every field type, formulas, links, lookups and rollups, type changes; records, views, filters, imports, bulk edits; users kept apart; the REST API, every MCP tool, OAuth and webhooks (filters, retries); public links and linked tables; two-way calendar and contacts sync (phones' items, conflicts, deletions, repeats, time zones); files tables on S3 and WebDAV (uploads, previews, renames, outside changes, the trash); ONLYOFFICE editing (against a stand-in Document Server; `ONLYOFFICE_TEST_URL` runs `tests/office` against a real one); live updates and the computed-value cache; and the app itself in a browser on a desktop and a phone (building tables, editing, filtering, board, calendar, import/export, settings).
484
+
What's covered: every field type, formulas, links, lookups and rollups, type changes; records, views, filters, imports, bulk edits; users kept apart; the REST API, every MCP tool, OAuth and webhooks (filters, retries); public links and linked tables; two-way calendar and contacts sync (phones' items, conflicts, deletions, repeats, time zones); files tables on S3 and WebDAV (uploads, previews, renames, outside changes, the trash); Blueprint takeoff (a made-up drawing set: sheets, scales, legends, finds by label and symbol, review, measuring, exports); ONLYOFFICE editing (against a stand-in Document Server; `ONLYOFFICE_TEST_URL` runs `tests/office` against a real one); live updates and the computed-value cache; and the app itself in a browser on a desktop and a phone (building tables, editing, filtering, board, calendar, import/export, settings).
0 commit comments