Bỏ qua tới nội dung

architect-calculator

Seven Python-based architectural calculators for common design computations: area and density calculations (GFA, NGA, unit count, population, parking), thermal U-value analysis for multi-layer constructions, daylight factor estimation using BRE methodology, egress compliance checking (occupant load, exit width, travel distance), structural gravity load and tributary area calculations, annual energy demand estimation via degree-day method, and construction cost estimation by building type, quality, and region.

calculatorarea
Agent tương thích:
  • Claude Code

Xem trên GitHubmain @ b9d3cbbcập nhật 15/04/2026

Mô tả gốc (cho agent)

Seven Python-based architectural calculators for common design computations: area and density calculations (GFA, NGA, unit count, population, parking), thermal U-value analysis for multi-layer constructions, daylight factor estimation using BRE methodology, egress compliance checking (occupant load, exit width, travel distance), structural gravity load and tributary area calculations, annual energy demand estimation via degree-day method, and construction cost estimation by building type, quality, and region.

Architect Calculator

A suite of seven command-line Python calculators for rapid architectural design computations. Each calculator accepts parameters via command-line arguments, validates inputs, and produces either human-readable or JSON-structured output.

All scripts are located in the scripts/ directory and can be run with:

code
python scripts/<calculator_name>.py [arguments]

Add --json to any command for structured JSON output suitable for piping into other tools or automation workflows.


1. Area Calculator (area_calculator.py)

Calculates development density metrics from site area and floor area ratio (FAR), including gross floor area, net usable area, residential unit count, estimated population, and parking requirement.

Parameters

ParameterFlagDefaultUnitDescription
Site Area--site-areaRequiredm2Total site/plot area
Floor Area Ratio--farRequiredratioPermitted FAR / plot ratio
Net-to-Gross Ratio--ntg-ratio0.80ratioNGA as fraction of GFA (0.0-1.0)
Avg Unit Size--avg-unit-size85m2Average residential unit area
Persons per Unit--persons-per-unit2.5personsAverage household size
Parking Ratio--parking-ratio1.0spacesParking spaces per dwelling unit

Example

bash
python scripts/area_calculator.py --site-area 5000 --far 2.5 --ntg-ratio 0.82

Sample Output

code
=== Area & Density Calculator ===
Site Area:            5,000.00 m2
Floor Area Ratio:     2.50
---------------------------------------
Gross Floor Area:     12,500.00 m2
Net-to-Gross Ratio:   0.82
Net Gross Area:       10,250.00 m2
---------------------------------------
Average Unit Size:    85.00 m2
Estimated Units:      120
Persons per Unit:     2.50
Estimated Population: 300
---------------------------------------
Parking Ratio:        1.00 spaces/unit
Parking Spaces:       120

2. U-Value Calculator (uvalue_calculator.py)

Calculates the thermal transmittance (U-value) of a multi-layer wall, roof, or floor construction by summing thermal resistances of each layer plus surface resistances.

Parameters

ParameterFlagDefaultUnitDescription
Layers--layersRequiredJSON stringArray of layer objects
Rsi Internal--rsi-internal0.13m2K/WInternal surface resistance
Rsi External--rsi-external0.04m2K/WExternal surface resistance

Each layer object: {"name": "...", "thickness_mm": N, "conductivity": N}

Example

bash
python scripts/uvalue_calculator.py --layers '[
  {"name": "Brick", "thickness_mm": 102, "conductivity": 0.77},
  {"name": "Cavity air gap", "thickness_mm": 50, "conductivity": 0.18},
  {"name": "Mineral wool", "thickness_mm": 100, "conductivity": 0.035},
  {"name": "Concrete block", "thickness_mm": 140, "conductivity": 1.13},
  {"name": "Plaster", "thickness_mm": 13, "conductivity": 0.16}
]'

Sample Output

code
=== U-Value Calculator ===
Layer                Thickness(mm)  Conductivity(W/mK)  R-value(m2K/W)
---------------------------------------------------------------------------
Rsi (internal)       --             --                   0.1300
Brick                102            0.770                0.1325
Cavity air gap       50             0.180                0.2778
Mineral wool         100            0.035                2.8571
Concrete block       140            1.130                0.1239
Plaster              13             0.160                0.0813
Rse (external)       --             --                   0.0400
---------------------------------------------------------------------------
Total R-value:       3.6425 m2K/W
U-value:             0.2745 W/m2K

Passive House target (wall):   0.15 W/m2K  -- DOES NOT MEET
Typical code target (wall):    0.30 W/m2K  -- MEETS TARGET

3. Daylight Calculator (daylight_calculator.py)

Estimates average daylight factor for a side-lit room using the BRE simplified formula.

Parameters

ParameterFlagDefaultUnit
Room Width--room-widthRequiredm
Room Depth--room-depthRequiredm
Room Height--room-heightRequiredm
Window Width--window-widthRequiredm
Window Height--window-heightRequiredm
Window Sill Height--window-sill-heightRequiredm
Glazing Transmittance--glazing-transmittance0.65ratio
Average Reflectance--average-reflectance0.50ratio

Example

bash
python scripts/daylight_calculator.py \
  --room-width 4.0 --room-depth 6.0 --room-height 3.0 \
  --window-width 2.5 --window-height 1.8 --window-sill-height 0.9

Sample Output

code
=== Daylight Factor Calculator ===
Room:     4.00m W x 6.00m D x 3.00m H
Window:   2.50m W x 1.80m H (sill at 0.90m)
---------------------------------------
Window Area:             4.50 m2
Total Room Surface Area: 96.00 m2
Window-to-Floor Ratio:   18.75%
Glazing Transmittance:   0.65
Average Reflectance:     0.50
Visible Sky Angle:       60.1 deg
---------------------------------------
Average Daylight Factor: 2.34%

Assessment: ADEQUATE (target >= 2.0% for habitable rooms)

4. Egress Calculator (egress_calculator.py)

Calculates occupant load, required number of exits, minimum exit widths, and travel distance compliance per IBC.

Parameters

ParameterFlagDefaultDescription
Floor Area--floor-areaRequiredNet floor area in m2
Occupancy Type--occupancy-typeRequiredIBC occupancy (A-1 to U)
Sprinklered--sprinkleredFalseFlag: building is sprinklered
Num Stories--num-stories1Number of stories

Example

bash
python scripts/egress_calculator.py --floor-area 800 --occupancy-type B --sprinklered --num-stories 4

Sample Output

code
=== Egress Calculator ===
Floor Area:        800.00 m2
Occupancy Type:    B (Business)
Sprinklered:       Yes
Number of Stories: 4
---------------------------------------
Occupant Load Factor:   9.3 m2/person
Occupant Load:          86 persons
---------------------------------------
Required Exits:         2
Min Exit Width (total): 1,376 mm
Width per Exit:         688 mm
Min Door Width:         813 mm (32 inches)
---------------------------------------
Max Travel Distance:    91.0 m (300 ft) [sprinklered]
Max Common Path:        23.0 m (75 ft)
Max Dead End:           15.0 m (50 ft)

COMPLIANCE: Review travel distances on plans.

5. Structural Load Calculator (structural_load_calculator.py)

Calculates tributary area gravity loads for preliminary structural sizing.

Parameters

ParameterFlagDefaultUnitDescription
Tributary Area--tributary-areaRequiredm2Column tributary area
Num Floors--num-floorsRequiredintegerNumber of supported floors
Dead Load--dead-load4.5kN/m2Dead load per floor
Live Load--live-loadautokN/m2Live load (auto per occ.)
Occupancy Type--occupancy-typeofficestringFor auto live load selection

Example

bash
python scripts/structural_load_calculator.py --tributary-area 36 --num-floors 8 --occupancy-type office

Sample Output

code
=== Structural Load Calculator ===
Tributary Area:    36.00 m2
Number of Floors:  8
---------------------------------------
Dead Load:         4.50 kN/m2 per floor
Live Load:         2.50 kN/m2 per floor (office)
Total per Floor:   7.00 kN/m2
---------------------------------------
Load per Floor:    252.00 kN
Total Column Load: 2,016.00 kN (8 floors)
Factored Load:     2,822.40 kN (1.2D + 1.6L)
---------------------------------------
Preliminary Column: ~400x400 mm RC (fc'=35 MPa)

6. Energy Calculator (energy_calculator.py)

Estimates annual heating and cooling energy demand using the degree-day method.

Parameters

ParameterFlagDefaultUnitDescription
Floor Area--floor-areaRequiredm2Conditioned floor area
Envelope Area--envelope-areaRequiredm2Total envelope area
Average U-value--average-u-valueRequiredW/m2KArea-weighted average U
Heating Degree Days--heating-degree-daysRequiredKdAnnual HDD (base 18C)
Cooling Degree Days--cooling-degree-daysRequiredKdAnnual CDD (base 24C)
Ventilation Rate--ventilation-rate0.5ACHAir changes per hour
Internal Gains--internal-gains5.0W/m2Internal heat gains

Example

bash
python scripts/energy_calculator.py \
  --floor-area 500 --envelope-area 800 --average-u-value 0.35 \
  --heating-degree-days 3000 --cooling-degree-days 500

Sample Output

code
=== Energy Calculator ===
Floor Area:           500.00 m2
Envelope Area:        800.00 m2
Average U-value:      0.35 W/m2K
---------------------------------------
Heating Degree Days:  3,000 Kd
Cooling Degree Days:  500 Kd
Ventilation Rate:     0.50 ACH
Internal Gains:       5.00 W/m2
---------------------------------------
Transmission Loss:    6,720.00 kWh/yr
Ventilation Loss:     4,050.00 kWh/yr
Internal Gains:       -2,190.00 kWh/yr
Heating Demand:       8,580.00 kWh/yr
---------------------------------------
Cooling Demand:       2,356.00 kWh/yr
---------------------------------------
Total Demand:         10,936.00 kWh/yr
EUI:                  21.87 kWh/m2/yr

Passive House target: 15 kWh/m2/yr -- DOES NOT MEET

7. Cost Calculator (cost_calculator.py)

Estimates construction cost based on building type, quality level, and geographic region.

Parameters

ParameterFlagDefaultDescription
GFA--gfaRequiredGross floor area in m2
Building Type--building-typeRequiredresidential/office/retail/hospital/school/hotel
Quality--qualitystandardbasic/standard/premium
Region--regionnorth-americanorth-america/europe/middle-east/asia/australia
Include External--include-externalFalseFlag: include site works

Example

bash
python scripts/cost_calculator.py --gfa 5000 --building-type office --quality premium --region europe

Sample Output

code
=== Construction Cost Calculator ===
Gross Floor Area:   5,000.00 m2
Building Type:      Office
Quality Level:      Premium
Region:             Europe
---------------------------------------
Base Cost Rate:     2,800.00 USD/m2
Construction Cost:  14,000,000 USD
---------------------------------------
Professional Fees (12%):  1,680,000 USD
Contingency (7.5%):       1,050,000 USD
External Works:           --
---------------------------------------
Total Development Cost:   16,730,000 USD
Cost per m2 (total):      3,346.00 USD/m2

Methodology Reference

Detailed formulas and methodology for each calculator are documented in references/calculator-reference.md.

Error Handling

All calculators validate inputs and provide clear error messages:

  • Missing required parameters display usage help
  • Out-of-range values are rejected with explanatory messages
  • Invalid occupancy types list accepted values
  • Malformed JSON input shows expected format

Integration

JSON output (--json flag) enables integration with:

  • Other scripts in the pipeline
  • Spreadsheet tools (parse JSON)
  • Web dashboards
  • Automated reporting systems
  • BIM parameter injection