# # ********************************************************************* # # * Copyright (c) 2008-2015, Natural Resources Canada # # * All rights reserved. # # * # # * This library is free software; you can redistribute it and/or # # * modify it under the terms of the GNU Lesser General Public # # * License as published by the Free Software Foundation; either # # * version 2.1 of the License, or (at your option) any later version. # # * # # * This library is distributed in the hope that it will be useful, # # * but WITHOUT ANY WARRANTY; without even the implied warranty of # # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # # * Lesser General Public License for more details. # # * # # * You should have received a copy of the GNU Lesser General Public # # * License along with this library; if not, write to the Free Software # # * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # **********************************************************************/ # # require "#{File.dirname(__FILE__)}/btap" # # module BTAP # module Resources #Resources # # This module contains methods that relate to Materials, Constructions and Construction Sets # # module SpaceTypes # BTAP::Resources::SpaceTypes # # #Test SpaceType Module # if __FILE__ == $0 # require 'test/unit' # class SpaceLoadsTests < Test::Unit::TestCase # #This method will take 0 variables and tests that the loads will be created correctly. # #@author phylroy.lopez@nrcan.gc.ca # def test_create_all_loads() # model = OpenStudio::Model::Model.new() # people_load = BTAP::Resources::SpaceLoads::create_people_load(model,"people_load_test") # lighting_load = BTAP::Resources::SpaceLoads::create_lighting_load(model,"lights_load_test") # electric_load = BTAP::Resources::SpaceLoads::create_electric_load(model,"electric_load_test") # hotwater_load = BTAP::Resources::SpaceLoads::create_hotwater_load(model,"hotwater_load_test") # oa_load = BTAP::Resources::SpaceLoads::create_oa_load(model,"oa_load_test") # infiltration_load = BTAP::Resources::SpaceLoads::create_infiltration_load(model,"infiltration_load_test") # default_schedule_set = nil # #Check to see if the objects were really created. # space_type = BTAP::Resources::SpaceTypes::create_space_type(model,"space type test",default_schedule_set,people_load,lighting_load,electric_load,hotwater_load,oa_load,infiltration_load) # assert( !(space_type.to_SpaceType.empty?)) # end # end # end # End Test SpaceType # # #This method will take 9 variables and returns the space type. # #@author phylroy.lopez@nrcan.gc.ca # #@param model [Object] # #@param space_type_name [String] # #@param default_schedule_set [OpenStudio::Model::DefaultScheduleSet] # #@param people_load [Array] # #@param lighting_load [Array] # #@param electric_load [Array] # #@param hotwater_load [Array] # #@param oa_load [Array] # #@param infiltration_load [Array] # #@return [OpenStudio::Model::SpaceType] spacetype # def self.create_space_type(model,space_type_name,default_schedule_set,people_load,lighting_load,electric_load,hotwater_load,oa_load,infiltration_load) # raise("SpaceType #{space_type_name} already exists. Please use a different name") unless model.getSpaceTypeByName(space_type_name).empty? # spacetype = OpenStudio::Model::SpaceType.new(model) # spacetype.setName(space_type_name) # spacetype.setDefaultScheduleSet(default_schedule_set) unless nil == default_schedule_set # BTAP::Common::validate_array(model,people_load,"People").first.setSpaceType(spacetype) unless nil == people_load # BTAP::Common::validate_array(model,lighting_load,"Lights").first.setSpaceType(spacetype) unless nil == lighting_load # BTAP::Common::validate_array(model,electric_load,"ElectricEquipment").first.setSpaceType(spacetype) unless nil == electric_load # BTAP::Common::validate_array(model,hotwater_load,"HotWaterEquipment").first.setSpaceType(spacetype) unless nil == hotwater_load # spacetype.setDesignSpecificationOutdoorAir(BTAP::Common::validate_array(model,oa_load,"DesignSpecificationOutdoorAir").first) unless nil == oa_load # BTAP::Common::validate_array(model,infiltration_load,"SpaceInfiltrationDesignFlowRate").first.setSpaceType(spacetype) unless nil == infiltration_load # #puts "Created spacetype #{spacetype.name} in model." # return spacetype # end # # #This method will take 2 variables and merge the space types. # #@author phylroy.lopez@nrcan.gc.ca # #@param model [Object] # #@param spacetype_precentage_array [Array] # def self.create_merged_space_type(model,spacetype_precentage_array) # new_spacetype = OpenStudio::Model::SpaceType.new(model) # spacetype_precentage_array.each do |spacetype_percentage| # spacetype = BTAP::Common::validate_array(model,spacetype_percentage[0],"SpaceType").first # spacetype.getDefaultSchedule() # spacetype.internalMass() # spacetype.people() # spacetype.lights() # spacetype.luminaires() # spacetype.electricEquipment() # spacetype.gasEquipment() # spacetype.hotWaterEquipment() # spacetype.steamEquipment() # spacetype.otherEquipment() # #A bit more tricky # spacetype.designSpecificationOutdoorAir() # spacetype.spaceInfiltrationDesignFlowRates() # end # end # # #This method will take 1 variable this method will attempt to find the dominant schedule of the surround spaces # #@author phylroy.lopez@nrcan.gc.ca # #@param model [Object] (description) # def self.set_wildcard_spacetype_schedules_to_dominant_schedule(model) # #1.Find all spaces with wildcard spaces. # #2.Iterate through spaces # #2.1 Find all adjacent spaces # #2.2 Determine dominant space type # #2.2 Set the appropriate schedule for occ, lighting, plugs and # end # end #module SpaceTypes # end #module Resources # end