Method: OpenStudio::Workflow::Util::Measure#validate_measures
- Defined in:
- lib/openstudio/workflow/util/measure.rb
#validate_measures(registry, logger) ⇒ true
Determine if a given workflow can find and load all measures defined in steps
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/openstudio/workflow/util/measure.rb', line 87 def validate_measures(registry, logger) logger = registry[:logger] if logger.nil? workflow_json = registry[:workflow_json] state = 'ModelMeasure'.to_MeasureType steps = workflow_json.workflowSteps steps.each_with_index do |step, index| begin logger.debug "Validating step #{index}" if @registry[:openstudio_2] if !step.to_MeasureStep.empty? step = step.to_MeasureStep.get end end # Verify the existence of the required files measure_dir_name = step.measureDirName measure_dir = workflow_json.findMeasure(measure_dir_name) fail "Cannot find measure #{measure_dir_name}" if measure_dir.empty? measure_dir = measure_dir.get measure = OpenStudio::BCLMeasure.load(measure_dir) fail "Cannot load measure at #{measure_dir}" if measure.empty? measure = measure.get class_name = measure.className measure_instance_type = measure.measureType # Ensure that measures are in order, i.e. no OS after E+, E+ or OS after Reporting if measure_instance_type == 'ModelMeasure'.to_MeasureType fail "OpenStudio measure #{measure_dir} called after transition to EnergyPlus." if state != 'ModelMeasure'.to_MeasureType elsif measure_instance_type == "EnergyPlusMeasure".to_MeasureType state = 'EnergyPlusMeasure'.to_MeasureType if state == 'ModelMeasure'.to_MeasureType fail "EnergyPlus measure #{measure_dir} called after Energyplus simulation." if state == 'ReportingMeasure'.to_MeasureType elsif measure_instance_type == 'ReportingMeasure'.to_MeasureType state = 'ReportingMeasure'.to_MeasureType if state == 'EnergyPlusMeasure'.to_MeasureType else fail "Error: MeasureType #{measure_instance_type.valueName} of measure #{measure_dir} is not supported" end logger.debug "Validated step #{index}" end end end |