Question-and-Answer Resource for the Building Energy Modeling Community
Get s tarted with the Help page

How to list and measure area surfaces

I have a large model (at least for my experience) with a conditioned area of more than 180 000 m2.

I only have a thermal zone for each floor to reduce simulation time now. I want to evaluate the savings due to the new constructions I have tested in the model so I need to know the outdoor surface area to calculate the costs. Do someone know how to list the outdoor surfaces (all these surfaces has Outside boundary condition as Outdoor) and measure the area?

I found the total floor area but I couldn't find a number for the outdoor surface area. One step forward would be to list the surfaces depending on the orientation too. I would appreciate if someone could help me.

P.S.:I'm using the Legacy Open Studio plug-in to generate the base IDF.

edit retag close merge delete

Sort by ยป oldest newest most voted

Here's an answer using eppy which might not be what you're looking for but might help someone in the same situation in the future.

from eppy.modeleditor import IDF

in_file = "eppy/resources/idffiles/V8_1_0/Boiler.idf"  # the path to your IDF
idd = "eppy/resources/iddfiles/Energy+V8_1_0.idd"  # or whatever IDD version you're using

IDF.setiddname(idd)
with open(in_file, 'r') as infile:
idf = IDF(infile)

# get the surfaces in the model, filtered by having Outdoors as the boundary condition
surfaces = [s for s in idf.idfobjects['BuildingSurface:Detailed'.upper()]
if s.Outside_Boundary_Condition == 'Outdoors']
total_external_area = sum(s.area for s in surfaces)

# get the glazing surfaces to remove from the total external areas
glazing = idf.idfobjects['FenestrationSurface:Detailed'.upper()]
total_glazing_area = sum(g.area for g in glazing)

# calculate the external areas by orientation
area_by_orientation = defaultdict(float)
for s in surfaces:
surface_area = s.area - sum(g.area for g in glazing
if g.Building_Surface_Name == s.Name)
area_by_orientation[s.azimuth] += surface_area

# print the results
print "Areas by orientation"
for area in area_by_orientation:
print "%s: %.2f m2" % (area, area_by_orientation[area])

print
print "Total area: %.2f" % total_external_area
print "Total glazed area: %.2f" % total_glazing_area


Areas by orientation

0.0: 125.77 m2

90.0: 28.80 m2

180.0: 33.60 m2

270.0: 30.72 m2

Total area: 226.58

Total glazed area: 7.68

more

1

May need to extend logic if model uses sub-surface or zone multipliers.

( 2016-03-10 08:48:56 -0500 )edit

Good point. I'll revise when I get a chance.

( 2016-03-11 11:36:25 -0500 )edit

That should work very well. But I can't find the "area" field... what am I missing?

( 2018-12-12 01:55:46 -0500 )edit
1

@Gio it's a calculated field, made available via a helper function which is added to surfaces when reading in the IDF.

( 2018-12-14 16:43:50 -0500 )edit

@Jamie Bull oh yes! That's great, thank you. This tool could be useful to calculate Ashrae unconditioned zones.

( 2018-12-15 05:16:43 -0500 )edit

The Opaque Exterior and Exterior Fenestration tables in the Envelope Summary Section of the tabular EnergyPlus output may give you what you need. You could past into spreadsheet to get totals for each construction. The opaque table does provide gross area, so you would need to do some work to get net (after deducting for fenestration).

more

Jamie's answer here is excellent and will give you the correct results. Of course, if you have never used python or never used eppy, you would be wondering how to start. Follow the steps below and the answer will be revealed. (I am assuming you are on a windows machine.)

go to python.org and install python 2.7

Open a dos window. You can do this by: clicking on the windows start button and running cmd

in the dos window type: pip install eppy and hit return this will install eppy (hopefully this works)

• Save the program Jamie has written here in a file (call the file eppyarea.py). Let us say you saved this file in c:/somewhere/eppyarea.py
• Change line 2 and 3 in this file by putting your file name and idd file name. Give the full path name to the file such as "c:/my_models/amazingmodel.idf". note the the slashes are frontslashes "/" not backslashes "\"
• the idd file is usually found in the folder c:/Energyplus8.0/E+.idd (I think)

go back to the dos window and type: python "c:/somewhere/eppyarea.py" (hopefully this works too :-)

If you have any problems with these steps, open an issue at https://github.com/santoshphilip/eppy/issues and we can use this opportunity to streamline the process, so it works for you and for others

more

Thanks @David Goldwasser @Jamie Bull @santoshphilip All the answers were useful: David's answer helped me to get what I want fast, Jamie's showed me a powerful tool and Santos' guided how to start with the tool.

more