Method: OpenStudio::Workflow::Util::Measure#apply_measures
- Defined in:
- lib/openstudio/workflow/util/measure.rb
#apply_measures(measure_type, registry, options = {}, energyplus_output_requests = false) ⇒ Void
Wrapper method around #apply_measure to allow all measures of a type to be executed
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 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 |
# File 'lib/openstudio/workflow/util/measure.rb', line 19 def apply_measures(measure_type, registry, = {}, energyplus_output_requests = false) # DLM: time_logger is in the registry but docs say it is in options? registry[:time_logger].start "#{measure_type.valueName}:apply_measures" if registry[:time_logger] logger = registry[:logger] workflow_json = registry[:workflow_json] workflow_steps = workflow_json.workflowSteps fail "The 'steps' array of the OSW is required." unless workflow_steps logger.debug "Finding measures of type #{measure_type.valueName}" workflow_steps.each_index do |step_index| step = workflow_steps[step_index] if @registry[:openstudio_2] if !step.to_MeasureStep.empty? step = step.to_MeasureStep.get end end measure_dir_name = step.measureDirName measure_dir = workflow_json.findMeasure(measure_dir_name) fail "Cannot find #{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 if measure_instance_type == measure_type if energyplus_output_requests logger.info "Found measure #{class_name} of type #{measure_type.valueName}. Collecting EnergyPlus Output Requests now." apply_measure(registry, step, , energyplus_output_requests) else logger.info "Found measure #{class_name} of type #{measure_type.valueName}. Applying now." # fast forward current step index to this index, skips any previous steps while workflow_json.currentStepIndex < step_index workflow_json.incrementStep end # DLM: why is output_adapter in options instead of registry? [:output_adapter].communicate_transition("Applying #{class_name}", :measure) if [:output_adapter] apply_measure(registry, step, ) [:output_adapter].communicate_transition("Applied #{class_name}", :measure) if [:output_adapter] end logger.info 'Moving to the next workflow step.' else logger.debug "Passing measure #{class_name} of type #{measure_type.valueName}" end end registry[:time_logger].stop "#{measure_type.valueName}:apply_measures" if registry[:time_logger] end |