Skip to content

Commit 60f9f6f

Browse files
committed
Completes 'SEB' addSkylights unittest
1 parent a6bca1b commit 60f9f6f

File tree

1 file changed

+97
-1
lines changed

1 file changed

+97
-1
lines changed

tests/test_osut.py

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def test01_osm_instantiation(self):
5151
model = openstudio.model.Model()
5252
self.assertTrue(isinstance(model, openstudio.model.Model))
5353
del model
54-
54+
5555
def test02_tuples(self):
5656
self.assertEqual(len(osut.sidz()), 6)
5757
self.assertEqual(len(osut.mass()), 4)
@@ -5187,6 +5187,102 @@ def test34_generated_skylight_wells(self):
51875187
self.assertEqual(o.status(), 0)
51885188
del model
51895189

5190+
# --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- #
5191+
# SEB case (flat ceiling plenum).
5192+
path = openstudio.path("./tests/files/osms/out/seb2.osm")
5193+
model = translator.loadModel(path)
5194+
self.assertTrue(model)
5195+
model = model.get()
5196+
5197+
entry = model.getSpaceByName("Entry way 1")
5198+
office = model.getSpaceByName("Small office 1")
5199+
open = model.getSpaceByName("Open area 1")
5200+
utility = model.getSpaceByName("Utility 1")
5201+
plenum = model.getSpaceByName("Level 0 Ceiling Plenum")
5202+
self.assertTrue(entry)
5203+
self.assertTrue(office)
5204+
self.assertTrue(open)
5205+
self.assertTrue(utility)
5206+
self.assertTrue(plenum)
5207+
entry = entry.get()
5208+
office = office.get()
5209+
open = open.get()
5210+
utility = utility.get()
5211+
plenum = plenum.get()
5212+
self.assertFalse(plenum.partofTotalFloorArea())
5213+
self.assertFalse(osut.isUnconditioned(plenum))
5214+
5215+
# TOTAL plenum roof area (4x surfaces), no overhangs.
5216+
roofs = osut.facets(plenum, "Outdoors", "RoofCeiling")
5217+
total = sum([ruf.grossArea() for ruf in roofs])
5218+
self.assertAlmostEqual(total, 82.21, places=2)
5219+
5220+
# A single plenum above all 4 occupied rooms. Reports same GRA.
5221+
gra_seb1 = osut.grossRoofArea(model.getSpaces())
5222+
gra_seb2 = osut.grossRoofArea(entry)
5223+
self.assertAlmostEqual(gra_seb1, gra_seb2, places=2)
5224+
self.assertAlmostEqual(gra_seb1, total, places=2)
5225+
5226+
sky_area = srr * total
5227+
5228+
# Before adding skylight wells.
5229+
if version >= 350:
5230+
for sp in [plenum, entry, office, open, utility]:
5231+
self.assertTrue(sp.isEnclosedVolume())
5232+
self.assertTrue(sp.isVolumeDefaulted())
5233+
self.assertTrue(sp.isVolumeAutocalculated())
5234+
self.assertGreater(sp.volume(), 0)
5235+
5236+
zn = sp.thermalZone()
5237+
self.assertTrue(zn)
5238+
zn = zn.get()
5239+
self.assertTrue(zn.isVolumeDefaulted())
5240+
self.assertTrue(zn.isVolumeAutocalculated())
5241+
self.assertFalse(zn.volume())
5242+
5243+
# The method returns the GRA, calculated BEFORE adding skylights/wells.
5244+
rm2 = osut.addSkyLights(model.getSpaces(), dict(area=sky_area))
5245+
if o.logs(): print(o.logs())
5246+
self.assertAlmostEqual(rm2, total, places=2)
5247+
5248+
entry_skies = osut.facets(entry, "Outdoors", "Skylight")
5249+
office_skies = osut.facets(office, "Outdoors", "Skylight")
5250+
utility_skies = osut.facets(utility, "Outdoors", "Skylight")
5251+
open_skies = osut.facets(open, "Outdoors", "Skylight")
5252+
5253+
self.assertFalse(entry_skies)
5254+
self.assertFalse(office_skies)
5255+
self.assertFalse(utility_skies)
5256+
self.assertEqual(len(open_skies), 1)
5257+
open_sky = open_skies[0]
5258+
5259+
skm2 = open_sky.grossArea()
5260+
self.assertAlmostEqual(skm2 / rm2, srr, places=2)
5261+
5262+
# Assign construction to new skylights.
5263+
construction = osut.genConstruction(model, dict(type="skylight", uo=2.8))
5264+
self.assertTrue(open_sky.setConstruction(construction))
5265+
5266+
# No change after adding skylight wells.
5267+
if version >= 350:
5268+
for sp in [plenum, entry, office, open, utility]:
5269+
self.assertTrue(sp.isEnclosedVolume())
5270+
self.assertTrue(sp.isVolumeDefaulted())
5271+
self.assertTrue(sp.isVolumeAutocalculated())
5272+
self.assertGreater(sp.volume(), 0)
5273+
5274+
zn = sp.thermalZone()
5275+
self.assertTrue(zn)
5276+
zn = zn.get()
5277+
self.assertTrue(zn.isVolumeDefaulted())
5278+
self.assertTrue(zn.isVolumeAutocalculated())
5279+
self.assertFalse(zn.volume())
5280+
5281+
model.save("./tests/files/osms/out/seb_sky.osm", True)
5282+
5283+
self.assertEqual(o.status(), 0)
5284+
del model
5285+
51905286
def test35_facet_retrieval(self):
51915287
o = osut.oslg
51925288
self.assertEqual(o.status(), 0)

0 commit comments

Comments
 (0)