Complete setup guide for the ArchiCAD BIM Takeoff & Construction Estimate Exporter. Covers Python installation, ArchiCAD API connection, model preparation, running the script, and reading the Excel output.
The script connects to a live ArchiCAD session, reads your BIM model, extracts element quantities by CSI division, and builds a formatted Excel estimate workbook. It covers Divisions 02 through 26 — site through electrical. You get two output tabs: a summary by CSI division and a detailed line-item estimate with unit costs, quantities, and totals.
Quantities come from the model directly where ArchiCAD can supply them — wall areas, floor areas, door and window counts, roof area, MEP fixture counts. Line items the model cannot quantify get area-based defaults from your total heated floor area. Those cells are flagged yellow in the output so you know which numbers came from the model and which are estimates.
Check your version first:
If Python is not installed:
brew install python — or download from python.orgThe script installs these automatically on first run. To install manually:
The script connects to ArchiCAD via the JSON API (localhost, port 19723 by default). ArchiCAD must be open with a project loaded before you run the script.
ArchiCAD 29 includes the JSON API as a built-in add-on. It should be active by default, but if the connection test above fails, check the following:
ACConnection.connect(port=19723)
Do these four things before running to get clean output:
studs, GWB, brick, insulation, sheathing, metal studs. If your composites are named generically ("Wall Type 1"), the parser skips sub-items and reports the assembly total only.
Save ArchDATUM_Takeoff.py to a folder you can find easily. A dedicated scripts folder works well:
~/Documents/ArchiCAD Scripts/C:\Users\YourName\Documents\ArchiCAD Scripts\Navigate to the folder containing the script:
Output saves to the same folder as the script with a timestamped filename: ArchDATUM_Takeoff_YYYYMMDD_HHMMSS.xlsx
archicad and openpyxl automatically if they are missing. This takes 15–30 seconds and only happens once. Subsequent runs start immediately.
The script prints progress to the terminal as it runs. A typical model takes 15 to 60 seconds depending on complexity.
One row per CSI division. Shows total estimated cost and percentage of the overall hard cost budget. Use it to sanity-check division proportions against your own cost benchmarks or historical project data.
| Column | What it shows |
|---|---|
| CSI | Division number, e.g. 06 00 00 |
| Description | Line item name |
| Unit | Unit of measure — SF, LF, EA, LS |
| Quantity | Model-extracted or area-based estimate |
| Unit Cost | 2025–2026 benchmark national average unit cost |
| Waste Factor | Applied waste percentage (0.10 = 10%) |
| Adj. Qty | Quantity × (1 + waste factor) |
| Total | Adjusted quantity × unit cost |
The script includes three fire suppression lines, all using the building's total heated floor area as the quantity. Delete the two lines that do not apply to your project type before presenting the estimate.
| Line item | Unit cost | Standard | Use for |
|---|---|---|---|
| Fire Sprinkler System - Commercial | $6.50/SF | NFPA 13 | Commercial and institutional occupancies |
| Fire Sprinkler System - Multifamily | $4.25/SF | NFPA 13R | Multifamily, 4 stories and under |
| Fire Sprinkler System - Residential | $3.25/SF | NFPA 13D | One- and two-family residential |
Unit costs are 2025–2026 benchmark national averages for a complete wet-pipe system including main, branch lines, heads, and inspector's test. Regional multipliers are not applied — adjust for your market.
All unit costs are 2025–2026 benchmark national averages. Multiply by a city cost index for your market to regionalize. Common adjustments:
| Market | Approximate multiplier |
|---|---|
| New York City | 1.35 – 1.45× |
| San Francisco / Bay Area | 1.30 – 1.40× |
| Chicago | 1.10 – 1.20× |
| Southeast (Atlanta, Nashville, Charlotte) | 0.85 – 0.95× |
| Jackson, MS / rural South | 0.78 – 0.88× |
| Rural areas generally | 0.78 – 0.90× |
City cost index multipliers are approximate. Update the unit cost column in the Excel output directly — changes carry through to the totals automatically.
ArchiCAD is not running, the JSON API add-on is not enabled, or the port does not match. Confirm ArchiCAD 29 is open and the API is active. See the Enabling the ArchiCAD JSON API section above.
The model may not have elements matching the expected property names. This happens most often with projects started in ArchiCAD 24 or earlier. Check that your template uses standard ArchiCAD built-in property names.
The script completed but found no elements. Check that the model is not in a hidden or filtered view state. Confirm you are connected to the correct project — the API connects to the frontmost open ArchiCAD window.
If you are using a virtual environment, activate it first, then install.
The output folder is write-protected or does not exist. Use the --output flag to point to a folder you own.
Email seaboldarch@gmail.com. Include the error message from the terminal and your ArchiCAD version.
| Version | Date | Notes |
|---|---|---|
| v6.0 | May 2026 | Full CSI Division 02–26 coverage. Composite name parser. Doors and windows by name and size. Finish allowances. MEP fixture counts from objects. NFPA 13 / 13R / 13D fire suppression lines added. |
| v5.x | 2025 | Door and window counts by type. Basic CSI summary. Materials by composite type (not parsed). Not distributed through this platform. |
| v4.x | 2024 | Wall and slab quantities only. |