Module: HighriseApartment

Defined in:
lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb

Overview

Custom changes for the HighriseApartment prototype. These are changes that are inconsistent with other prototype building types.

Instance Method Summary collapse

Instance Method Details

#add_door_infiltration(climate_zone, model) ⇒ Object

add extra infiltration for ground floor corridor


66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb', line 66

def add_door_infiltration(climate_zone, model)
  g_corridor = model.getSpaceByName('G Corridor').get
  infiltration_g_corridor_door = OpenStudio::Model::SpaceInfiltrationDesignFlowRate.new(model)
  infiltration_g_corridor_door.setName('G Corridor door Infiltration')
  infiltration_g_corridor_door.setSpace(g_corridor)
  case template
    when '90.1-2004'
      infiltration_g_corridor_door.setDesignFlowRate(1.523916863)
      infiltration_g_corridor_door.setSchedule(model_add_schedule(model, 'ApartmentHighRise INFIL_Door_Opening_SCH_0.144'))
    when '90.1-2007', '90.1-2010', '90.1-2013'
      case climate_zone
        when 'ASHRAE 169-2006-1A', 'ASHRAE 169-2006-2A', 'ASHRAE 169-2006-2B'
          infiltration_g_corridor_door.setDesignFlowRate(1.523916863)
          infiltration_g_corridor_door.setSchedule(model_add_schedule(model, 'ApartmentHighRise INFIL_Door_Opening_SCH_0.144'))
        else
          infiltration_g_corridor_door.setDesignFlowRate(1.008078792)
          infiltration_g_corridor_door.setSchedule(model_add_schedule(model, 'ApartmentHighRise INFIL_Door_Opening_SCH_0.131'))
      end
  end
end

#add_extra_equip_corridor(model) ⇒ Object

add elevator and lights&fans for the top floor corridor


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb', line 18

def add_extra_equip_corridor(model)
  corridor_top_space = model.getSpaceByName('T Corridor').get
  elec_equip_def1 = OpenStudio::Model::ElectricEquipmentDefinition.new(model)
  elec_equip_def2 = OpenStudio::Model::ElectricEquipmentDefinition.new(model)
  elec_equip_def1.setName('T Corridor Electric Equipment Definition1')
  elec_equip_def2.setName('T Corridor Electric Equipment Definition2')
  elec_equip_def1.setFractionLatent(0)
  elec_equip_def1.setFractionRadiant(0)
  elec_equip_def1.setFractionLost(0.95)
  elec_equip_def2.setFractionLatent(0)
  elec_equip_def2.setFractionRadiant(0)
  elec_equip_def2.setFractionLost(0.95)
  elec_equip_def1.setDesignLevel(20_370)
  case template
    when '90.1-2013'
      elec_equip_def2.setDesignLevel(63)
    when '90.1-2010'
      elec_equip_def2.setDesignLevel(105.9)
    when '90.1-2004', '90.1-2007'
      elec_equip_def2.setDesignLevel(161.9)
  end
  # Create the electric equipment instance and hook it up to the space type
  elec_equip1 = OpenStudio::Model::ElectricEquipment.new(elec_equip_def1)
  elec_equip2 = OpenStudio::Model::ElectricEquipment.new(elec_equip_def2)
  elec_equip1.setName('T Corridor_Elevators_Equip')
  elec_equip2.setName('Elevators_Lights_Fan')
  elec_equip1.setSpace(corridor_top_space)
  elec_equip2.setSpace(corridor_top_space)
  elec_equip1.setSchedule(model_add_schedule(model, 'ApartmentMidRise BLDG_ELEVATORS'))
  case template
    when '90.1-2004', '90.1-2007'
      elec_equip2.setSchedule(model_add_schedule(model, 'ApartmentMidRise ELEV_LIGHT_FAN_SCH_24_7'))
    when '90.1-2010', '90.1-2013'
      elec_equip2.setSchedule(model_add_schedule(model, 'ApartmentMidRise ELEV_LIGHT_FAN_SCH_ADD_DF'))
  end
end

#model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object


6
7
8
9
10
11
12
13
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb', line 6

def model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model)
  # add elevator and lights&fans for the ground floor corridor
  add_extra_equip_corridor(model)
  # add extra infiltration for ground floor corridor
  add_door_infiltration(climate_zone, model)

  return true
end

#model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Object


94
95
96
97
98
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb', line 94

def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input)
  update_waterheater_loss_coefficient(model)

  return true
end

#model_update_fan_efficiency(model) ⇒ Object


87
88
89
90
91
92
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb', line 87

def model_update_fan_efficiency(model)
  model.getFanOnOffs.sort.each do |fan_onoff|
    fan_onoff.setFanEfficiency(0.53625)
    fan_onoff.setMotorEfficiency(0.825)
  end
end

#update_waterheater_loss_coefficient(model) ⇒ Object


55
56
57
58
59
60
61
62
63
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb', line 55

def update_waterheater_loss_coefficient(model)
  case template
    when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
      model.getWaterHeaterMixeds.sort.each do |water_heater|
        water_heater.setOffCycleLossCoefficienttoAmbientTemperature(46.288874618)
        water_heater.setOnCycleLossCoefficienttoAmbientTemperature(46.288874618)
      end
  end
end