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.



44
45
46
# File 'lib/openstudio/workflow/jobs/run_ep_measures.rb', line 44

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

Instance Method Details

#performObject



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

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