Class: RunEnergyPlusMeasures

Inherits:
OpenStudio::Workflow::Job show all
Includes:
OpenStudio::Workflow::Util::Measure, OpenStudio::Workflow::Util::Model
Defined in:
lib/openstudio/workflow/jobs/run_ep_measures.rb

Overview

This class runs all EnergyPlus measures defined in the OSW

Instance Method Summary collapse

Methods included from OpenStudio::Workflow::Util::Model

#load_idf, #load_osm, #save_epjson, #save_idf, #save_osm, #translate_idf_to_epjson, #translate_to_energyplus

Methods included from OpenStudio::Workflow::Util::Measure

#add_result_measure_info, #apply_arguments, #apply_arguments_2, #apply_measure, #apply_measures, #validate_measures

Constructor Details

#initialize(input_adapter, output_adapter, registry, options = {}) ⇒ RunEnergyPlusMeasures

Returns a new instance of RunEnergyPlusMeasures.



14
15
16
# File 'lib/openstudio/workflow/jobs/run_ep_measures.rb', line 14

def initialize(input_adapter, output_adapter, registry, options = {})
  super
end

Instance Method Details

#performObject



18
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
# File 'lib/openstudio/workflow/jobs/run_ep_measures.rb', line 18

def perform
  @logger.debug "Calling #{__method__} in the #{self.class} class"

  # halted workflow is handled in apply_measures

  # Ensure output_attributes is initialized in the registry
  @registry.register(:output_attributes) { {} } unless @registry[:output_attributes]

  # Apply the EnergyPlus measures
  @options[:output_adapter] = @output_adapter
  @logger.info 'Beginning to execute EnergyPlus measures.'
  apply_measures('EnergyPlusMeasure'.to_MeasureType, @registry, @options)
  @logger.info('Finished applying EnergyPlus measures.')

  # Send the measure output attributes to the output adapter
  @logger.debug 'Communicating measure output attributes to the output adapter'
  @output_adapter.communicate_measure_attributes @registry[:output_attributes]

  # Save both the OSM and IDF if the :debug option is true
  return nil unless @options[:debug]

  @registry[:time_logger]&.start('Saving IDF')
  idf_name = save_idf(@registry[:model_idf], @registry[:root_dir])
  @registry[:time_logger]&.stop('Saving IDF')
  @logger.debug "Saved IDF as #{idf_name}"

  nil
end