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

Calculate window to wall ratio (WWR) from IDF or OSM file

asked 2014-10-31 05:14:48 -0500

updated 2015-07-12 12:06:55 -0500

I have a set of EnergyPlus IDF files that I received from a third party and I'd simply like to extract the window to wall ratio (WWR) from the geometry-related objects in the models. Ideally, I'd like to do this without simulating all of them.

Anyone have a workflows, open studio scripts, or other methods to extract the WWR metric?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2014-10-31 09:10:12 -0500

updated 2014-10-31 09:14:09 -0500

You can call surface.windowToWallRatio on any surface in the model and it will give you the window to wall ratio for that surface. For the AEDG measures we made a helper method that lets you pass in an array of spaces (so it could be the entire building or portion of it). It returns the window to wall ratio. This for example excludes interior windows and does take zone multipliers into account.

Here is a link to one of those measures. There is also a more complex method that returns the window to wall ratio by orientation in the same OSLib_Geometry.rb file. The file is in the resources folder that comes with the measure. For reference the code to the more basic version is below.

def OsLib_Geometry.getExteriorWindowToWallRatio(spaceArray)

  # counters
  total_gross_ext_wall_area = 0
  total_ext_window_area = 0

  spaceArray.each do |space|

    #get surface area adjusting for zone multiplier
    zone = space.thermalZone
    if not zone.empty?
      zone_multiplier = zone.get.multiplier
      if zone_multiplier > 1
      zone_multiplier = 1 #space is not in a thermal zone

    space.surfaces.each do |s|
      next if not s.surfaceType == "Wall"
      next if not s.outsideBoundaryCondition == "Outdoors"

      surface_gross_area = s.grossArea * zone_multiplier

      #loop through sub surfaces and add area including multiplier
      ext_window_area = 0
      s.subSurfaces.each do |subSurface|
        ext_window_area = ext_window_area + subSurface.grossArea * subSurface.multiplier * zone_multiplier

      total_gross_ext_wall_area += surface_gross_area
      total_ext_window_area += ext_window_area
    end #end of surfaces.each do
  end # end of space.each do

  result = total_ext_window_area/total_gross_ext_wall_area
  return result

edit flag offensive delete link more



@Clayton Miller I just noticed that you have IDF files. You could write a script that runs on the IDF files directly, converts them to a temporary OpenStudio model in memory to extract the WWR, and then throws the model away. The script could batch run an a large set of IDF files without having to manually do anything in our GUI's.

David Goldwasser's avatar David Goldwasser  ( 2014-10-31 10:01:19 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer


Question Tools

1 follower


Asked: 2014-10-31 05:14:48 -0500

Seen: 1,422 times

Last updated: Oct 31 '14