Module: MediumOfficeDetailed
- Defined in:
- lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb
Overview
Custom changes for the MediumOffice prototype. These are changes that are inconsistent with other prototype building types.
AirTerminalSingleDuctVAVReheat collapse
- 
  
    
      #air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Set the initial minimum damper position based on OA rate of the space and the template. 
Instance Method Summary collapse
- 
  
    
      #add_door_infiltration(climate_zone, model)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    add door infiltration. 
- 
  
    
      #model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    geometry adjustments specific to the prototype model. 
- 
  
    
      #model_custom_hvac_tweaks(model, building_type, climate_zone, prototype_input)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    hvac adjustments specific to the prototype model. 
- 
  
    
      #model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    swh adjustments specific to the prototype model. 
- 
  
    
      #update_waterheater_loss_coefficient(model)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    update water heater loss coefficient. 
Instance Method Details
#add_door_infiltration(climate_zone, model) ⇒ Boolean
add door infiltration
| 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | # File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb', line 41 def add_door_infiltration(climate_zone, model) # add extra infiltration for entry door in m3/s (there is no attic in 'DOE Ref Pre-1980') return false if template == 'DOE Ref 1980-2004' || template == 'DOE Ref Pre-1980' entry_space = model.getSpaceByName('Lounge_Bot').get infiltration_entrydoor = OpenStudio::Model::SpaceInfiltrationDesignFlowRate.new(model) infiltration_entrydoor.setName('entry door Infiltration') infiltration_per_zone_entrydoor = 0 if template == '90.1-2004' infiltration_per_zone_entrydoor = 1.04300287 infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeMedium INFIL_Door_Opening_SCH')) elsif template == '90.1-2007' || template == '90.1-2010' || template == '90.1-2013' || template == '90.1-2016' || template == '90.1-2019' case climate_zone when 'ASHRAE 169-2006-1A', 'ASHRAE 169-2006-2A', 'ASHRAE 169-2006-1B', 'ASHRAE 169-2006-2B' infiltration_per_zone_entrydoor = 1.04300287 infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeMedium INFIL_Door_Opening_SCH')) else infiltration_per_zone_entrydoor = 0.678659786 infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeMedium INFIL_Door_Opening_SCH')) end end infiltration_entrydoor.setDesignFlowRate(infiltration_per_zone_entrydoor) infiltration_entrydoor.setSpace(entry_space) return true end | 
#air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area) ⇒ Boolean
Set the initial minimum damper position based on OA rate of the space and the template. Zones with low OA per area get lower initial guesses. Final position will be adjusted upward as necessary by Standards.AirLoopHVAC.apply_minimum_vav_damper_positions
| 177 178 179 180 181 182 183 184 | # File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb', line 177 def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area) min_damper_position = template == '90.1-2010' || template == '90.1-2013' || template == '90.1-2016' || template == '90.1-2019' ? 0.2 : 0.3 # Set the minimum flow fraction air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position) return true end | 
#model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
geometry adjustments specific to the prototype model
| 163 164 165 166 167 | # File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb', line 163 def model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input) # Set original building North axis OpenstudioStandards::Geometry.model_set_building_north_axis(model, 0.0) return true end | 
#model_custom_hvac_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
hvac adjustments specific to the prototype model
| 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | # File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb', line 11 def model_custom_hvac_tweaks(model, building_type, climate_zone, prototype_input) OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started building type specific adjustments') model.getSpaces.sort.each do |space| if space.name.get.to_s == 'Lobby_Bot' model_add_elevator(model, space, prototype_input['number_of_elevators'], prototype_input['elevator_type'], prototype_input['elevator_schedule'], prototype_input['elevator_fan_schedule'], prototype_input['elevator_fan_schedule'], building_type) end end OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished building type specific adjustments') # add extra infiltration for entry door add_door_infiltration(climate_zone, model) OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Added door infiltration') return true end | 
#model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
swh adjustments specific to the prototype model
| 150 151 152 153 154 | # File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb', line 150 def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) update_waterheater_loss_coefficient(model) return true end | 
#update_waterheater_loss_coefficient(model) ⇒ Boolean
update water heater loss coefficient
| 132 133 134 135 136 137 138 139 140 141 | # File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb', line 132 def update_waterheater_loss_coefficient(model) case template when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019', 'NECB2011' model.getWaterHeaterMixeds.sort.each do |water_heater| water_heater.setOffCycleLossCoefficienttoAmbientTemperature(7.561562668) water_heater.setOnCycleLossCoefficienttoAmbientTemperature(7.561562668) end end return true end |