lib/openstudio/geb/run.rb in openstudio-geb-0.3.2 vs lib/openstudio/geb/run.rb in openstudio-geb-0.3.3
- old
+ new
@@ -75,9 +75,43 @@
# create osw_file
osw_path = File.join(osw_result_folder, "geb.osw")
steps = []
# measure_dict: hash of measures and their arguments => {measure_name: arguments}
+ # first adjust the measure sequence to be OpenStudio measure => EnergyPlus measure => Reporting measure
+ energyplus_measures = {}
+ report_measures = {}
+ @measure_dict.each_pair do |m_name, para_dict|
+ # get all EnergyPlus and Reporting measures out and remove original ones
+ File.open("#{para_dict['measure_dir_name']}/measure.rb", 'r') do |file|
+ file.each_line do |line|
+ if line =~ /class.+EnergyPlusMeasure/
+ energyplus_measures[m_name] = @measure_dict[m_name]
+ @measure_dict.delete(m_name)
+ break
+ elsif line =~ /class.+ReportingMeasure/
+ report_measures[m_name] = @measure_dict[m_name]
+ @measure_dict.delete(m_name)
+ break
+ end
+ end
+ end
+ end
+
+ # add back the EnergyPlusMeasures to the end of the measure list
+ unless energyplus_measures.empty?
+ energyplus_measures.each_key do |m_name|
+ @measure_dict[m_name] = energyplus_measures[m_name]
+ end
+ end
+ # add back the ReportingMeasures to the very end of the measure list
+ unless report_measures.empty?
+ report_measures.each_key do |m_name|
+ @measure_dict[m_name] = report_measures[m_name]
+ end
+ end
+
+ # add the final meausres to the osw steps in order
@measure_dict.each_pair do |m_name, para_dict|
measure = {}
measure['measure_dir_name'] = para_dict['measure_dir_name']
measure['arguments'] = para_dict['arguments']
steps << measure