Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

Many options - choices depend on e.g.:

  • number of fenestrated surfaces involved
  • preferences and familiarity with scripting (over GUIs).

For an overview of scripting options, check UMH posts here and here. As well as blog posts from @ericmartinpe here and Steven Firth here, both pointing namely to epJSON editing. LBNL/ETA's Python-based frads also seems nice - there's an example of how to edit fenestration surface parameters (hint: XYZ coordinates).


Whether it's editing a model through epJSON (using Ruby hashes or Python dictionaries), or using a Python package like frads, one solution would be to:

  1. loop through all walls and windows to tally existing WWR
  2. determine % reduction (or increase) of window area (desired WWR vs existing WWR)
  3. loop again through all windows: adjust window sill Z-axis coordinates to match desired % in STEP 2

That's a very basic step-by-step. Adapt if working with non-horizontal/non-vertical window edges. Riskier if increasing WWR (vs lowering WWR). And so on.


Many options - choices depend on e.g.:

  • number of fenestrated surfaces involved
  • preferences and familiarity with scripting (over GUIs).

For an overview of scripting options, check UMH posts here and here. As well as blog posts from @ericmartinpe here and Steven Firth here, both pointing namely to epJSON editing. LBNL/ETA's Python-based frads also seems nice - there's an example of how to edit fenestration surface parameters (hint: XYZ coordinates).


Whether it's editing a model through epJSON (using Ruby hashes or Python dictionaries), or using a Python package like frads, one solution would be to:

  1. loop through all walls and windows to tally existing WWR
  2. determine % reduction (or increase) of window area (desired WWR vs existing WWR)
  3. loop again through all windows: adjust window sill Z-axis coordinates to match desired % in STEP 2

That's a very basic step-by-step. Adapt if working with non-horizontal/non-vertical window edges. Riskier if increasing WWR (vs lowering WWR). And so on.on. Repeat something similar for shading.