Module: College

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

Overview

Custom changes for the College 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) ⇒ Boolean

add door infiltration

Parameters:

  • climate_zone (String)

    ASHRAE climate zone, e.g. ‘ASHRAE 169-2013-4A’

  • model (OpenStudio::Model::Model)

    OpenStudio model object

Returns:

  • (Boolean)

    returns true if successful, false if not



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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb', line 41

def add_door_infiltration(climate_zone, model)
  return false if template == 'DOE Ref 1980-2004' || template == 'DOE Ref Pre-1980'

  entry_space = model.getSpaceByName('CB_ENTRANCE_LOBBY_F1').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 = 4.566024
    infiltration_entrydoor.setSchedule(model_add_schedule(model, 'College INFIL_Door_Opening_SCH'))
  elsif template == '90.1-2007'
    case climate_zone
    when 'ASHRAE 169-2006-3A',
      'ASHRAE 169-2006-3B',
      'ASHRAE 169-2006-3C',
      'ASHRAE 169-2006-4A',
      'ASHRAE 169-2006-4B',
      'ASHRAE 169-2006-4C'
      infiltration_per_zone_entrydoor = 3.204085
      infiltration_entrydoor.setSchedule(model_add_schedule(model, 'College INFIL_Door_Opening_SCH'))
    else
      infiltration_per_zone_entrydoor = 4.566024
      infiltration_entrydoor.setSchedule(model_add_schedule(model, 'College INFIL_Door_Opening_SCH'))
    end
  elsif template == '90.1-2010' || template == '90.1-2013'
    case climate_zone
    when 'ASHRAE 169-2006-3A',
      'ASHRAE 169-2006-3B',
      'ASHRAE 169-2006-3C'
      infiltration_per_zone_entrydoor = 3.204085
      infiltration_entrydoor.setSchedule(model_add_schedule(model, 'College INFIL_Door_Opening_SCH'))
    else
      infiltration_per_zone_entrydoor = 4.566024
      infiltration_entrydoor.setSchedule(model_add_schedule(model, 'College INFIL_Door_Opening_SCH'))
    end
  end
  infiltration_entrydoor.setDesignFlowRate(infiltration_per_zone_entrydoor)
  infiltration_entrydoor.setSpace(entry_space)
  return true
end

#model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean

geometry adjustments specific to the prototype model

Parameters:

  • model (OpenStudio::Model::Model)

    OpenStudio model object

  • building_type (String)

    the building type

  • climate_zone (String)

    ASHRAE climate zone, e.g. ‘ASHRAE 169-2013-4A’

  • prototype_input (Hash)

    hash of prototype inputs

Returns:

  • (Boolean)

    returns true if successful, false if not



100
101
102
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb', line 100

def model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input)
  return true
end

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

hvac adjustments specific to the prototype model

Parameters:

  • model (OpenStudio::Model::Model)

    OpenStudio model object

  • building_type (String)

    the building type

  • climate_zone (String)

    ASHRAE climate zone, e.g. ‘ASHRAE 169-2013-4A’

  • prototype_input (Hash)

    hash of prototype inputs

Returns:

  • (Boolean)

    returns true if successful, false if not



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.College.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.each do |space|
    if space.name.get.to_s == 'CB_PUBLIC_ELEVATORS_F1'
      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

Parameters:

  • model (OpenStudio::Model::Model)

    OpenStudio model object

  • building_type (String)

    the building type

  • climate_zone (String)

    ASHRAE climate zone, e.g. ‘ASHRAE 169-2013-4A’

  • prototype_input (Hash)

    hash of prototype inputs

Returns:

  • (Boolean)

    returns true if successful, false if not



89
90
91
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb', line 89

def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input)
  return true
end