|
1 | 1 |
|
| 2 | +# IncreaseInsulationRValueForRoofs |
2 | 3 |
|
3 | | -###### (Automatically generated documentation) |
| 4 | +This measure upgrades roof insulation to a target R-value, estimates added embodied carbon from EC3 EPD data, and estimates added installed cost using RSMeans (or user-provided custom cost inputs). |
4 | 5 |
|
5 | | -# Increase R-value of Insulation for Roofs to a Specific Value |
6 | | - |
7 | | -## Description |
8 | | - |
9 | | - |
10 | | -## Modeler Description |
11 | | - |
12 | | - |
13 | | -## Measure Type |
14 | | -ModelMeasure |
15 | | - |
16 | | -## Taxonomy |
| 6 | +## What It Does |
17 | 7 |
|
| 8 | +- Identifies roof constructions and computes the insulation delta required to hit the target R-value. |
| 9 | +- Applies insulation updates on cloned constructions, leaving the original unchanged. |
| 10 | +- Aggregates added insulation quantities and embodied carbon (GWP) from EC3 EPDs. |
| 11 | +- Runs RSMeans lookup for retrofit materials and stores full match/search diagnostics. |
| 12 | +- Writes standardized outputs into model-level AdditionalProperties buckets. |
18 | 13 |
|
19 | 14 | ## Arguments |
20 | 15 |
|
21 | | - |
22 | | -### Insulation R-value (ft^2*h*R/Btu). |
23 | | - |
24 | | -**Name:** r_value, |
25 | | -**Type:** Double, |
26 | | -**Units:** , |
27 | | -**Required:** true, |
28 | | -**Model Dependent:** false |
29 | | - |
30 | | -### Allow both increase and decrease in R-value to reach requested target? |
31 | | - |
32 | | -**Name:** allow_reduction, |
33 | | -**Type:** Boolean, |
34 | | -**Units:** , |
35 | | -**Required:** true, |
36 | | -**Model Dependent:** false |
37 | | - |
38 | | -### Increase in Material and Installation Costs for Construction per Area Used ($/ft^2). |
39 | | - |
40 | | -**Name:** material_cost_increase_ip, |
41 | | -**Type:** Double, |
42 | | -**Units:** , |
43 | | -**Required:** true, |
44 | | -**Model Dependent:** false |
45 | | - |
46 | | -### One Time Retrofit Cost to Add Insulation to Construction ($/ft^2). |
47 | | - |
48 | | -**Name:** one_time_retrofit_cost_ip, |
49 | | -**Type:** Double, |
50 | | -**Units:** , |
51 | | -**Required:** true, |
52 | | -**Model Dependent:** false |
53 | | - |
54 | | -### Year to Incur One Time Retrofit Cost (whole years). |
55 | | - |
56 | | -**Name:** years_until_retrofit_cost, |
57 | | -**Type:** Integer, |
58 | | -**Units:** , |
59 | | -**Required:** true, |
60 | | -**Model Dependent:** false |
61 | | - |
| 16 | +| Argument | Type | Default | Description | |
| 17 | +|---|---|---|---| |
| 18 | +| `r_value` | Double | 30.0 | Target R-value (ft²·h·°F/Btu) | |
| 19 | +| `analysis_period` | Integer | 30 | Analysis period for embodied carbon (years) | |
| 20 | +| `gwp_statistic` | Choice | median | Statistic for EPD GWP values (min/max/mean/median) | |
| 21 | +| `api_key` | String | — | EC3 API token | |
| 22 | +| `insulation_material_type` | Choice | Fiberglass Batts | Material for EPD lookup and RSMeans search | |
| 23 | +| `insulation_material_lifetime` | Integer | 30 | Fallback lifetime if EPD has none (years) | |
| 24 | +| `insulation_thermal_conductivity` | Double | 0.0 | 0 = use typical value for selected material (W/m·K) | |
| 25 | +| `insulation_material_density` | Double | 0.0 | 0 = use typical or EPD-derived value (kg/m³) | |
| 26 | +| `calculate_costs` | Boolean | true | Enable cost calculation (RSMeans or custom) | |
| 27 | +| `use_custom_costs` | Boolean | false | Skip RSMeans; use custom cost inputs instead | |
| 28 | +| `use_exact_costline_id` | Boolean | false | Force RSMeans to use the exact `exact_costline_id` | |
| 29 | +| `exact_costline_id` | String | "" | Exact RSMeans unit costline ID | |
| 30 | +| `custom_cost_per_cf` | Double | 0.0 | Custom insulation cost per cubic foot ($/CF) | |
| 31 | +| `labor_cost_multiplier` | Double | 1.0 | Multiplier on custom material cost to derive labor cost | |
| 32 | +| `overhead_profit_percent` | Double | 10.0 | Overhead + profit applied on top of RSMeans cost (%) | |
| 33 | + |
| 34 | +## AdditionalProperties Bucket Map |
| 35 | + |
| 36 | +| OpenStudio Object | Variable | Contents | |
| 37 | +|---|---|---| |
| 38 | +| Building | `basic_input` | Measure name, analysis period, GWP statistic, construction names | |
| 39 | +| Site | `reno_detail` | Target R-value, material type, total renovated area | |
| 40 | +| Facility | `factors` | Mirrored cost totals, cost source, cost basis metadata, GWP factors | |
| 41 | +| SimulationControl | `results` | All cost fields + RSMeans diagnostics JSON payloads | |
| 42 | +| SizingParameters | `mtrl_prop` | Material density, conductivity, lifetime, RSMeans extracted hints | |
| 43 | + |
| 44 | +## Cost Source Modes |
| 45 | + |
| 46 | +- `rsmeans_api` — RSMeans closest-match or exact-ID lookup succeeded. |
| 47 | +- `custom_input` — custom volume-based cost mode used. |
| 48 | +- `none` — costing disabled or unresolved. |
| 49 | + |
| 50 | +Cost basis is persisted as: |
| 51 | +- `roof_insulation_cost_factor_basis` (e.g. `cost_per_volume`, `cost_per_area`, `custom_cost_per_volume`) |
| 52 | +- `roof_insulation_cost_unit_basis` (e.g. `CF`, `SF`) |
| 53 | + |
| 54 | +## Quick Start |
| 55 | + |
| 56 | +```powershell |
| 57 | +cd lib/measures/IncreaseInsulationRValueForRoofs |
| 58 | +./setup_environment.ps1 |
| 59 | +python apply_measure.py |
| 60 | +``` |
| 61 | + |
| 62 | +Outputs are written to: |
| 63 | +- `tests/output/DOE_small_office_roof_insulation_upgraded.osm` |
| 64 | +- `tests/output/apply_measure_results.json` |
| 65 | + |
| 66 | +## Documentation |
| 67 | + |
| 68 | +- [docs/Increase_Insulation_Roofs.md](docs/Increase_Insulation_Roofs.md) — full measure guide |
| 69 | +- [docs/RSMEANS_SEARCH_STRATEGY.md](docs/RSMEANS_SEARCH_STRATEGY.md) — RSMeans search and scoring details |
| 70 | +- [docs/ENVIRONMENT_SETUP.md](docs/ENVIRONMENT_SETUP.md) — environment setup and troubleshooting |
62 | 71 |
|
63 | 72 |
|
64 | 73 |
|
0 commit comments