diff --git a/lib/buildingsync/model_articulation/facility.rb b/lib/buildingsync/model_articulation/facility.rb
index 85b6f72a..62aa8cde 100644
--- a/lib/buildingsync/model_articulation/facility.rb
+++ b/lib/buildingsync/model_articulation/facility.rb
@@ -76,7 +76,6 @@ def initialize(base_xml, ns)
@measures = []
@contacts = []
- @systems_map = {}
# TODO: Go under Report
@utility_name = nil
@@ -84,8 +83,9 @@ def initialize(base_xml, ns)
@metering_configuration = nil
@spaces_excluded_from_gross_floor_area = nil
- @load_system = nil
- @hvac_system = nil
+ @hvac_systems = nil
+ @lighting_systems = nil
+ @load_systems = nil
# reading the xml
read_xml
@@ -210,25 +210,55 @@ def determine_open_studio_system_standard
# read systems
def read_and_create_initial_systems
systems_xml = xget_or_create('Systems')
- if !systems_xml.elements.empty?
- systems_xml.elements.each do |system_type|
- @systems_map[system_type.name] = []
- system_type.elements.each do |system_xml|
- if system_xml.name == 'HVACSystem'
- @systems_map[system_type.name] << BuildingSync::HVACSystem.new(system_xml, @ns)
- elsif system_xml.name == 'LightingSystem'
- @systems_map[system_type.name] << BuildingSync::LightingSystemType.new(system_xml, @ns)
- else
- @systems_map[system_type.name] << system_xml
- end
- end
- end
- else
+
+ init_hvac_systems(systems_xml.elements["#{@ns}:HVACSystems"])
+ init_lighting_systems(systems_xml.elements["#{@ns}:LightingSystems"])
+ init_load_systems(systems_xml.elements["#{@ns}:PlugLoads"]) # PlugLoad, not ProcessLoad
+
+ end
+
+ def init_hvac_systems(hvac_system_xmls)
+ # if theres no hvac_system_xmls, use a default
+ if hvac_system_xmls.nil? || !hvac_system_xmls.has_elements?
hvac_xml = @g.add_hvac_system_to_facility(@base_xml)
+ @hvac_systems = [ HVACSystem.new(hvac_xml, @ns)]
+
+ # else, use the hvac_system_xmls
+ else
+ @hvac_systems = []
+ hvac_system_xmls.elements.each do |hvac_system_xml|
+ @hvac_systems << BuildingSync::HVACSystem.new(hvac_system_xml, @ns)
+ end
+ end
+ end
+
+ def init_lighting_systems(lighting_system_xmls)
+ # if theres no lighting_system_xmls, use a default
+ if lighting_system_xmls.nil? || !lighting_system_xmls.has_elements?
lighting_xml = @g.add_lighting_system_to_facility(@base_xml)
- @hvac_system = HVACSystem.new(hvac_xml, @ns)
- @lighting_system = LightingSystemType.new(lighting_xml, @ns)
- @load_system = LoadsSystem.new
+ @lighting_systems = [LightingSystemType.new(lighting_xml, @ns)]
+
+ # else, use the lighting_system_xmls
+ else
+ @lighting_systems = []
+ lighting_system_xmls.elements.each do |lighting_system_xml|
+ @lighting_systems << BuildingSync::LightingSystemType.new(lighting_system_xml, @ns)
+ end
+ end
+ end
+
+ def init_load_systems(loads_system_xmls)
+ # if theres no loads_system_xmls, use a default
+ if loads_system_xmls.nil? || !loads_system_xmls.has_elements?
+ loads_system_xml = @g.add_plug_load_to_facility(@base_xml)
+ @load_systems = [BuildingSync::LoadsSystem.new(loads_system_xml, @ns)]
+
+ # else, use the lighting_system_xmls
+ else
+ @load_systems = []
+ loads_system_xmls.elements.each do |lighting_system_xml|
+ @load_systems << BuildingSync::LoadsSystem.new(lighting_system_xml, @ns)
+ end
end
end
@@ -248,13 +278,13 @@ def add_blank_lighting_system(premise_id, premise_type, lighting_system_id = 'Li
@g.add_linked_premise(lighting_system_xml, premise_id, premise_type)
# Create a new array if doesn't yet exist
- if !@systems_map.key?('LightingSystems')
- @systems_map['LightingSystems'] = []
+ if @lighting_systems.nil?
+ @lighting_systems = []
end
# Create new lighting system and add to array
new_system = BuildingSync::LightingSystemType.new(lighting_system_xml, @ns)
- @systems_map['LightingSystems'] << new_system
+ @lighting_systems << new_system
return new_system
end
@@ -308,13 +338,17 @@ def create_building_systems(main_output_dir:, zone_hash: nil, hvac_delivery_type
# add internal loads to space types
if add_space_type_loads
- @load_system.add_internal_loads(model, open_studio_system_standard, template, @site.get_building_sections, remove_objects)
+ @load_systems.each do |load_system|
+ load_system.add_internal_loads(model, open_studio_system_standard, template, @site.get_building_sections, remove_objects)
+ end
new_occupancy_peak = @site.get_peak_occupancy
new_occupancy_peak.each do |id, occupancy_peak|
floor_area = @site.get_floor_area[id]
if occupancy_peak && floor_area && floor_area > 0.0
puts "new peak occupancy value found: absolute occupancy: #{occupancy_peak} occupancy per area: #{occupancy_peak.to_f / floor_area.to_f} and area: #{floor_area} m2"
- @load_system.adjust_occupancy_peak(model, occupancy_peak, floor_area, @site.get_space_types_from_hash(id))
+ @load_systems.each do |load_system|
+ load_system.adjust_occupancy_peak(model, occupancy_peak, floor_area, @site.get_space_types_from_hash(id))
+ end
end
end
end
@@ -347,13 +381,15 @@ def create_building_systems(main_output_dir:, zone_hash: nil, hvac_delivery_type
# add elevators (returns ElectricEquipment object)
if add_elevators
- @load_system.add_elevator(model, open_studio_system_standard)
+ @load_systems.each do |load_system|
+ load_system.add_elevator(model, open_studio_system_standard)
+ end
end
# add exterior lights (returns a hash where key is lighting type and value is exteriorLights object)
if add_exterior_lights
- if !@systems_map['LightingSystems'].nil?
- @systems_map['LightingSystems'].each do |lighting_system|
+ if !@lighting_systems.empty?
+ @lighting_systems.each do |lighting_system|
lighting_system.add_exterior_lights(model, open_studio_system_standard, onsite_parking_fraction, exterior_lighting_zone, remove_objects)
end
else
@@ -364,7 +400,9 @@ def create_building_systems(main_output_dir:, zone_hash: nil, hvac_delivery_type
# add_exhaust
if add_exhaust
- @hvac_system.add_exhaust(model, open_studio_system_standard, 'Adjacent', remove_objects)
+ @hvac_systems.each do |hvac_system|
+ hvac_system.add_exhaust(model, open_studio_system_standard, 'Adjacent', remove_objects)
+ end
end
# add service water heating demand and supply
@@ -374,7 +412,9 @@ def create_building_systems(main_output_dir:, zone_hash: nil, hvac_delivery_type
end
# TODO: Make this better
- @lighting_system.add_daylighting_controls(model, open_studio_system_standard, template, main_output_dir)
+ @lighting_systems.each do |lighting_system|
+ lighting_system.add_daylighting_controls(model, open_studio_system_standard, template, main_output_dir)
+ end
# TODO: - add internal mass
# TODO: - add slab modeling and slab insulation
@@ -388,12 +428,16 @@ def create_building_systems(main_output_dir:, zone_hash: nil, hvac_delivery_type
# works by switching some fraction of electric loads to gas if requested (assuming base load is electric)
# add thermostats
if add_thermostat
- @hvac_system.add_thermostats(model, open_studio_system_standard, remove_objects)
+ @hvac_systems.each do |hvac_system|
+ hvac_system.add_thermostats(model, open_studio_system_standard, remove_objects)
+ end
end
# add hvac system
if add_hvac
- @hvac_system.add_hvac(model, zone_hash, open_studio_system_standard, system_type, hvac_delivery_type, htg_src, clg_src, remove_objects)
+ @hvac_systems.each do |hvac_system|
+ hvac_system.add_hvac(model, zone_hash, open_studio_system_standard, system_type, hvac_delivery_type, htg_src, clg_src, remove_objects)
+ end
end
# set hvac controls and efficiencies (this should be last model articulation element)
@@ -403,7 +447,9 @@ def create_building_systems(main_output_dir:, zone_hash: nil, hvac_delivery_type
objects_after_cleanup = initial_objects - model.getModelObjects.size
OpenStudio.logFree(OpenStudio::Warn, 'BuildingSync.Facility.create_building_system', "Removing #{objects_after_cleanup} objects from model")
end
- @hvac_system.apply_sizing_and_assumptions(model, main_output_dir, open_studio_system_standard, primary_bldg_type, system_type, climate_zone)
+ @hvac_systems.each do |hvac_system|
+ hvac_system.apply_sizing_and_assumptions(model, main_output_dir, open_studio_system_standard, primary_bldg_type, system_type, climate_zone)
+ end
end
# remove everything but spaces, zones, and stub space types (extend as needed for additional objects, may make bool arg for this)
@@ -434,6 +480,6 @@ def prepare_final_xml
@site.prepare_final_xml
end
- attr_reader :systems_map, :site, :report, :measures, :contacts
+ attr_reader :site, :report, :measures, :contacts, :hvac_systems, :lighting_systems, :load_systems
end
end
diff --git a/spec/files/v2.4.0/L200_Audit-1.0.0.xml b/spec/files/v2.4.0/L200_Audit-1.0.0.xml
new file mode 100644
index 00000000..1e08d4f1
--- /dev/null
+++ b/spec/files/v2.4.0/L200_Audit-1.0.0.xml
@@ -0,0 +1,2258 @@
+
+
+
+
+
+
+
+
+
+
+ Building Name
+
+
+ Problems or Needs
+ -----------------
+ Problems or needs identified in walkthrough survey,
+ including revisions to operations and maintenance procedures
+
+ Comfort or Health Concerns
+ -----------------
+ Comfort or health concerns, including indoor environmental quality (IEQ) deficiencies
+
+ Need for Repairs
+ -----------------
+ Need for repairs
+
+ Opportunities to Improve Maintenance Practices
+ -----------------
+ Opportunities to improve maintenance practices
+
+ Other Conditions Causing Unusual Operating Costs
+ -----------------
+ Other conditions causing unusual operating costs
+
+
+
+
+
+
+ 123 Main Street
+
+
+
+ Rome
+ GA
+ 30161
+
+
+ Mixed use commercial
+ Office
+
+
+
+
+ Apartment units
+ 1
+ 100
+
+
+
+
+ 2
+ 1
+ 1
+ 1
+ true
+
+ true
+
+
+
+ Gross
+ 5502
+
+
+
+
+
+ Conditioned
+ 5502
+
+
+
+
+
+ 123
+ 123
+ 0.2
+ 0.1
+
+ 1993
+
+ 2018
+
+ 2020-03-01
+
+ 2016
+
+
+
+ Space function
+ Office
+ Office
+
+
+
+
+ Peak total occupants
+ 123
+
+
+
+
+
+ 40
+ Hours per week
+
+
+
+ 30
+ Weeks per year
+
+
+
+
+
+ Gross
+ 123
+
+
+ Conditioned
+ 23
+
+
+ Single zone
+
+
+ Space function
+ Multifamily
+ Other
+
+
+
+
+ Peak total occupants
+ 123
+
+
+
+
+
+ 40
+ Hours per week
+
+
+
+ 30
+ Weeks per year
+
+
+
+
+
+ Gross
+ 10
+
+
+ Conditioned
+ 10
+
+
+ Single zone
+
+
+ Whole building
+ Rectangular
+
+
+ A1
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+ B1
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+ C1
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+ D1
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+ 123
+
+
+
+
+
+
+
+ 123
+ Excellent
+
+
+
+
+
+
+ 123
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 123
+ COP
+ 123
+ gpm
+
+ Good
+ 2020
+ Other
+ true
+
+
+
+
+
+
+
+
+
+ Single zone
+
+
+
+
+ Warm air
+
+
+ 123
+ COP
+ 123
+ 123
+ gpm
+ Good
+
+
+
+
+
+
+
+
+
+ 2020
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Central fan
+ CAV terminal box no reheat
+ None
+
+
+ None
+ Fixed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2020
+ 1
+ Good
+
+
+
+
+
+ Single
+ Excellent
+
+
+
+
+
+ Digital
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Spiral
+
+
+ Standard Electronic
+
+ .2
+
+ 100
+ 123
+ 123
+ 1
+ 1
+ 1
+ false
+
+
+
+
+
+
+ Photocell
+ Continuous
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Notes
+
+ 1
+ 123
+ Continuous
+ 123
+ 123
+
+ Looped
+ COP
+ 123
+ 123
+ 123
+ 123
+ 123
+ gpm
+
+
+
+
+
+
+
+
+
+ Electricity
+ Excellent
+
+
+
+
+
+
+
+
+
+ 123
+
+
+
+
+ 123
+ 123
+ 123
+ Constant Volume
+
+
+
+
+
+
+
+ 123
+ 123
+ 123
+ Stepped
+
+
+
+
+
+
+
+ Concrete poured
+ 1
+
+
+
+
+ Wood frame
+ 1
+
+
+
+
+
+
+
+ Steel
+ Clear uncoated
+ Single pane
+ 1.25
+ 0.5
+ 0.5
+
+
+
+
+
+ Steel
+ Low e
+ Triple pane
+ 0.25
+ 0.5
+ 0.5
+
+
+
+
+ Insulated metal
+ 0.5
+
+
+ Steel
+ 0.5
+
+
+
+
+
+
+
+ 0.5
+
+
+
+ Concrete poured
+
+
+
+
+
+ 123
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 123
+ 123
+
+
+
+
+
+
+
+
+
+
+ Microturbine
+ Electricity
+
+
+
+
+
+
+
+
+ Battery
+
+
+ 123
+ kW
+
+
+
+
+ Notes on the test conducted
+ Very Tight
+ 123
+ CFM25
+ Blower door
+
+
+
+
+
+
+
+
+
+ Notes on the test conducted
+
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ Occupied
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Weekend
+ Occupied
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Holiday
+ Occupied
+ 09:00:00
+ 17:00:00
+ 80
+
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ Lighting
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Weekend
+ Lighting
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Holiday
+ Lighting
+ 09:00:00
+ 17:00:00
+ 80
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ Lighting
+ 09:00:00
+ 17:00:00
+ 40
+
+
+ Weekend
+ Lighting
+ 09:00:00
+ 12:00:00
+ 40
+
+
+ Holiday
+ Lighting
+ 09:00:00
+ 17:00:00
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ HVAC equipment
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Weekend
+ HVAC equipment
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Holiday
+ HVAC equipment
+ 09:00:00
+ 17:00:00
+ 80
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ Miscellaneous equipment
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Weekend
+ Miscellaneous equipment
+ 09:00:00
+ 17:00:00
+ 80
+
+
+ Holiday
+ Miscellaneous equipment
+ 09:00:00
+ 17:00:00
+ 80
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lighting
+
+
+
+ Other
+
+
+
+ Individual system
+
+ Update lighting schedules
+
+ The current lighting schedule is set to be at 80% output during weekdays, weekends, and holidays from 9am - 5pm. This measure would implement a modified schedule to reduce default output to 40%, reducing scheduled on-period on weekends to 9am - 12pm, and having no required schedule on holidays.
+ 1
+ 123
+ 123
+ true
+ 2020-01-01
+ 2020-12-01
+
+
+
+
+
+
+
+
+
+
+
+
+ Fenestration
+
+
+
+ Replace windows
+
+
+
+ Entire building
+ 20
+ 123
+ 123
+ true
+ 2020-01-01
+ 2020-12-01
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Electricity
+
+ Sampling Methodology
+ -------------------
+ Notes on meter sampling methods (if sampling was used)
+
+ Irregularities
+ --------------
+ Notes on any irregularities in meter readings
+
+ kWh
+ All end uses
+ 52943.01
+ 180.65
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kW
+ 19.07
+ 5029.59
+
+
+
+
+
+ Natural gas
+
+ Sampling Methodology
+ -------------------
+ Notes on meter sampling methods (if sampling was used)
+
+ Irregularities
+ --------------
+ Notes on any irregularities in meter readings
+
+ MMBtu
+ All end uses
+ 0.22
+ 0.22
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 324
+
+
+
+
+
+ Electricity-Onsite generated
+
+ Sampling Methodology
+ -------------------
+ Notes on meter sampling methods (if sampling was used)
+
+ Irregularities
+ --------------
+ Notes on any irregularities in meter readings
+
+ kWh
+ All end uses
+ 5929
+ 20.21
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 543
+
+
+
+
+
+
+ Electricity
+ Total lighting
+ 123
+ 123
+
+
+
+ Electricity
+ Heating
+ 123
+ 123
+
+
+
+ Electricity
+ Cooling
+ 123
+ 123
+
+
+
+
+
+
+
+
+ Total
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 4102.51
+
+
+
+ Total
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 30
+ Day
+ Month
+ 3737.04
+
+
+
+ Total
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 4167.07
+
+
+
+ Total
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 3897.44
+
+
+
+ Total
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 4565.50
+
+
+
+ Total
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 4870.87
+
+
+
+ Total
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 4977.64
+
+
+
+ Total
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 5275.05
+
+
+
+ Total
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 4788.79
+
+
+
+ Total
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 4353.99
+
+
+
+ Total
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 4154.67
+
+
+
+ Total
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 4052.43
+
+
+
+
+ Peak
+ On-peak
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 14.78
+
+
+
+ Peak
+ On-peak
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 14.12
+
+
+
+ Peak
+ On-peak
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 14.36
+
+
+
+ Peak
+ On-peak
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 15.14
+
+
+
+ Peak
+ On-peak
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 16.41
+
+
+
+ Peak
+ On-peak
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 17.51
+
+
+
+ Peak
+ On-peak
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 18.14
+
+
+
+ Peak
+ On-peak
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 19.07
+
+
+
+ Peak
+ On-peak
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 17.85
+
+
+
+ Peak
+ On-peak
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 16.54
+
+
+
+ Peak
+ On-peak
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 15.19
+
+
+
+ Peak
+ On-peak
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 15.05
+
+
+
+
+ Cost
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 389.74
+
+
+
+ Cost
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 355.02
+
+
+
+ Cost
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 395.87
+
+
+
+ Cost
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 370.26
+
+
+
+ Cost
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 433.72
+
+
+
+ Cost
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 462.73
+
+
+
+ Cost
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 472.88
+
+
+
+ Cost
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 501.13
+
+
+
+ Cost
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 454.94
+
+
+
+ Cost
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 413.63
+
+
+
+ Cost
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 394.69
+
+
+
+ Cost
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 384.98
+
+
+
+
+ Load factor
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 0.373
+
+
+
+ Load factor
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 0.394
+
+
+
+ Load factor
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 0.390
+
+
+
+ Load factor
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 0.358
+
+
+
+ Load factor
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 0.374
+
+
+
+ Load factor
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 0.386
+
+
+
+ Load factor
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 0.369
+
+
+
+ Load factor
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 0.372
+
+
+
+ Load factor
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 0.373
+
+
+
+ Load factor
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 0.354
+
+
+
+ Load factor
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 0.380
+
+
+
+ Load factor
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 0.362
+
+
+
+
+ Total
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 0.1
+
+
+
+ Total
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 0.05
+
+
+
+ Total
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 0.01
+
+
+
+ Total
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 0
+
+
+
+ Total
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 0.06
+
+
+
+
+ Cost
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 27
+
+
+
+ Cost
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 27
+
+
+
+
+
+ Total
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 385
+
+
+
+ Total
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 436
+
+
+
+ Total
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 560
+
+
+
+ Total
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 532
+
+
+
+ Total
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 568
+
+
+
+ Total
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 590
+
+
+
+ Total
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 573
+
+
+
+ Total
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 543
+
+
+
+ Total
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 514
+
+
+
+ Total
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 461
+
+
+
+ Total
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 408
+
+
+
+ Total
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 359
+
+
+
+
+
+ Cost
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 35
+
+
+
+ Cost
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 40
+
+
+
+ Cost
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 51
+
+
+
+ Cost
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 49
+
+
+
+ Cost
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 52
+
+
+
+ Cost
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 54
+
+
+
+ Cost
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 53
+
+
+
+ Cost
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 50
+
+
+
+ Cost
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 47
+
+
+
+ Cost
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 42
+
+
+
+ Cost
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 37
+
+
+
+ Cost
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 33
+
+
+
+
+
+
+ 170870
+ 31.06
+ 191080
+ 34.73
+ 180.87
+ 20.21
+ 0
+ 10
+ 5896.59
+ 1.07
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 123
+ 123
+
+
+
+
+ 123
+ 123
+ 123
+ 123
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Portfolio Manager
+ 2020
+ 75
+
+
+
+
+ 123
+ 123
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Low-Cost or No-Cost
+ 123
+ 123
+
+
+ Electricity
+ kWh
+ 123
+
+
+ Natural gas
+ MMBtu
+ 0
+
+
+ 123
+ 123
+ 123
+ 123
+ 1
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --01-01
+ --12-01
+ --01-01
+ --12-01
+ 123
+ 123
+
+
+
+
+
+
+
+ 12345
+
+
+ 12345
+ Building Owner
+
+
+
+
+
+
+
+
+
+ --01-01
+ --12-01
+
+
+ 00:00:00
+ 12:00:00
+ 123
+
+
+ 12:00:00
+ 24:00:00
+ 123
+
+
+
+
+
+
+
+
+
+ 12345
+
+
+ 12345
+ Building Owner
+
+
+
+
+
+
+
+
+
+
+ --01-01
+ --12-01
+ --01-01
+ --12-01
+
+
+ 123
+ 123
+
+
+ 123
+ 123
+
+
+
+
+
+
+
+
+
+
+ 12345
+
+
+ 12345
+ Building Owner
+
+
+
+
+
+
+
+
+
+ Owner
+
+ Building Owner
+ Owner Company
+
+
+
+
+ 123-456-7890
+
+
+
+
+
+ owner@example.com
+
+
+
+
+
+
+ Energy Auditor
+
+ Building Auditor
+ Auditor Company
+
+
+
+
+ 123-456-7890
+
+
+
+
+
+ auditor@example.com
+
+
+
+
+
+
+
diff --git a/spec/files/v2.4.0/example-smalloffice-level1.xml b/spec/files/v2.4.0/example-smalloffice-level1.xml
new file mode 100644
index 00000000..79467b7a
--- /dev/null
+++ b/spec/files/v2.4.0/example-smalloffice-level1.xml
@@ -0,0 +1,1133 @@
+
+
+
+
+
+
+
+
+ Small Office Prototype
+ Here we record general problems / issues identified in a walkthrough survey.
+
+
+
+ 4055 Brooks Street
+
+
+ Missoula
+ MT
+ 59804
+
+ Commercial
+ Office
+
+ 1
+ 0
+ 1
+ 0
+ false
+
+
+ Gross
+ 5500.000000
+
+
+ Conditioned
+ 5500.000000
+
+
+ 2006
+ 2006
+ 2006
+
+
+ Space function
+ Office
+ Office
+
+
+ Peak total occupants
+ 31.000000
+
+
+
+
+ 40.000000
+ Hours per week
+
+
+ 50.000000
+ Weeks per year
+
+
+
+
+ Gross
+ 5500.000000
+
+
+ Conditioned
+ 5500.000000
+
+
+
+
+
+
+
+
+
+
+
+ Packaged Rooftop Heat Pump
+
+
+
+
+
+ Packaged Rooftop Heat Pump
+
+
+
+
+
+ Packaged Rooftop Heat Pump
+
+
+
+
+
+ Packaged Rooftop Heat Pump
+
+
+
+
+
+ Packaged Rooftop Heat Pump
+
+
+
+
+
+
+
+
+
+ T8
+
+
+ Standard Electronic
+
+
+
+
+
+
+
+ 0.630000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lighting
+
+
+
+ Retrofit with light emitting diode technologies
+
+
+
+ This measure is designed to replace all fluorescent bulbs with LEDs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fan
+
+
+
+ Add VSD motor controller
+
+
+
+ This measure is designed to retrofit all RTU fans with a VSD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Electricity
+ This is required for L1 to document irregularities in monthly energy patterns (Std 211 6.1.2.1.j). No irregularities found.
+ kWh
+ All end uses
+ 68516.730000
+ 234.000000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kW
+ 21.120000
+ 21.120000
+ 5304.000000
+
+
+
+
+
+
+
+ Indirect
+ CO2e
+ 25000.000000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Natural gas
+ No irregularities in monthly energy consumption found.
+ MMBtu
+ All end uses
+ 17.160000
+ 17.160000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 91.630000
+
+
+
+
+
+
+
+ Total
+ Energy
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ Month
+ 6792.890000
+
+
+
+ Total
+ Energy
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ Month
+ 5841.750000
+
+
+
+ Total
+ Energy
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ Month
+ 6025.190000
+
+
+
+ Total
+ Energy
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ Month
+ 4985.300000
+
+
+
+ Total
+ Energy
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ Month
+ 5184.040000
+
+
+
+ Total
+ Energy
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ Month
+ 5358.550000
+
+
+
+ Total
+ Energy
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ Month
+ 5755.670000
+
+
+
+ Total
+ Energy
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ Month
+ 5981.780000
+
+
+
+ Total
+ Energy
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ Month
+ 5401.940000
+
+
+
+ Total
+ Energy
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ Month
+ 5225.840000
+
+
+
+ Total
+ Energy
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ Month
+ 5672.150000
+
+
+
+ Total
+ Energy
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ Month
+ 6291.630000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ Month
+ 250.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ Month
+ 240.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ Month
+ 260.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ Month
+ 250.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ Month
+ 260.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ Month
+ 230.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ Month
+ 280.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ Month
+ 270.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ Month
+ 260.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ Month
+ 250.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ Month
+ 240.000000
+
+
+
+ Total
+ Greenhouse Gas Emissions
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ Month
+ 250.000000
+
+
+
+ Total
+ Energy
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ Month
+ 5.700000
+
+
+
+ Total
+ Energy
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ Month
+ 4.010000
+
+
+
+ Total
+ Energy
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ Month
+ 0.580000
+
+
+
+ Total
+ Energy
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ Month
+ 0.400000
+
+
+
+ Total
+ Energy
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ Month
+ 0.020000
+
+
+
+ Total
+ Energy
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ Month
+ 0.010000
+
+
+
+ Total
+ Energy
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ Month
+ 0.360000
+
+
+
+ Total
+ Energy
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ Month
+ 6.080000
+
+
+
+ Peak
+ Power
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ Month
+ 15.420000
+
+
+
+ Peak
+ Power
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ Month
+ 15.500000
+
+
+
+ Peak
+ Power
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ Month
+ 16.250000
+
+
+
+ Peak
+ Power
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ Month
+ 16.650000
+
+
+
+ Peak
+ Power
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ Month
+ 18.560000
+
+
+
+ Peak
+ Power
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ Month
+ 20.010000
+
+
+
+ Peak
+ Power
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ Month
+ 20.820000
+
+
+
+ Peak
+ Power
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ Month
+ 21.120000
+
+
+
+ Peak
+ Power
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ Month
+ 20.420000
+
+
+
+ Peak
+ Power
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ Month
+ 20.080000
+
+
+
+ Peak
+ Power
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ Month
+ 17.400000
+
+
+
+ Peak
+ Power
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ Month
+ 16.300000
+
+
+
+ Cost
+ Cost
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ Month
+ 520.480000
+
+
+
+ Cost
+ Cost
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ Month
+ 451.530000
+
+
+
+ Cost
+ Cost
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ Month
+ 464.830000
+
+
+
+ Cost
+ Cost
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ Month
+ 389.430000
+
+
+
+ Cost
+ Cost
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ Month
+ 403.840000
+
+
+
+ Cost
+ Cost
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ Month
+ 416.490000
+
+
+
+ Cost
+ Cost
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ Month
+ 445.290000
+
+
+
+ Cost
+ Cost
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ Month
+ 461.680000
+
+
+
+ Cost
+ Cost
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ Month
+ 419.640000
+
+
+
+ Cost
+ Cost
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ Month
+ 406.870000
+
+
+
+ Cost
+ Cost
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ Month
+ 439.230000
+
+
+
+ Cost
+ Cost
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ Month
+ 484.140000
+
+
+
+ Cost
+ Cost
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ Month
+ 30.440000
+
+
+
+ Cost
+ Cost
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ Month
+ 21.410000
+
+
+
+ Cost
+ Cost
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ Month
+ 3.100000
+
+
+
+ Cost
+ Cost
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ Month
+ 2.140000
+
+
+
+ Cost
+ Cost
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ Month
+ 0.110000
+
+
+
+ Cost
+ Cost
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Cost
+ Cost
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Cost
+ Cost
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Cost
+ Cost
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ Month
+ 0.000000
+
+
+
+ Cost
+ Cost
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ Month
+ 0.050000
+
+
+
+ Cost
+ Cost
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ Month
+ 1.920000
+
+
+
+ Cost
+ Cost
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ Month
+ 32.470000
+
+
+
+
+
+ 250953.500000
+ 45.600000
+ 759011.900000
+ 138.000000
+ 250953.500000
+ 45.600000
+ 250.953500
+ 0.000000
+ 0.000000
+ 0.000000
+ 5395.000000
+ 0.980000
+
+
+
+
+
+
+
+
+ 2021-03-24
+
+
+ Portfolio Manager
+ 2019
+ 56.000000
+
+
+
+
+ 274825.000000
+ 50.000000
+
+
+
+
+
+
+
+
+
+
+
+
+ 67181.500000
+ 931
+ 70.000000
+
+
+
+
+ 207643.500000
+ 37.800000
+ 4451.510000
+ 0.810000
+
+
+
+
+
+
+
+
+
+
+ Capital
+
+ Low
+ Medium
+ Medium
+ High
+ Medium
+
+
+
+
+
+
+
+
+
+
+
+ Capital
+
+ Low
+ Medium
+ Medium
+ High
+ Medium
+
+
+
+
+
+
+
+
+
+
+
+
+ Capital
+
+ Low
+ Medium
+ Medium
+ High
+ Medium
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --01-01
+ --01-01
+ --01-01
+ --01-01
+ 0.072500
+ 0.000000
+
+
+
+
+ https://missoulaelectric.com/member-care/billing-payment/rates/
+ 28.000000
+
+
+ 12692
+ Missoula Electric Cooperative
+ some-account-number
+
+
+
+
+
+
+
+
+ --01-01
+ --01-01
+ 5.500000
+
+
+
+
+ https://naturalgaslocal.com/states/montana/missoula/
+
+
+ NorthWestern Energy
+ some-other-account-number
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Owner
+
+ The dude
+ Some big company
+
+
+ the.dude@somebigco.net
+
+
+
+
+
+ Energy Auditor
+
+ The lady
+ Auditeers
+
+
+ the.lady@the-three-auditeers.com
+
+
+
+
+
+
+
diff --git a/spec/files/v2.4.0/example-smalloffice-level2.xml b/spec/files/v2.4.0/example-smalloffice-level2.xml
new file mode 100644
index 00000000..65a34d04
--- /dev/null
+++ b/spec/files/v2.4.0/example-smalloffice-level2.xml
@@ -0,0 +1,2733 @@
+
+
+
+
+
+
+
+
+ Prototype Small Office in Denver
+ Here we record general problems / issues identified in a walkthrough survey.
+
+
+ City Custom Building ID
+ some ID
+
+
+ Custom ID 1
+ some other ID
+
+
+
+
+
+ Some address
+
+
+ Denver
+ CO
+ 80014
+
+ -104.830000
+ 39.660000
+ Commercial
+ Office
+
+ 1
+ 0
+ 1
+ 0
+ true
+ false
+
+
+ Gross
+ 5500.000000
+
+
+
+
+
+ Conditioned
+ 5500.000000
+
+
+
+
+
+ 6500.000000
+ 0.000000
+ 0.213300
+ 0.050000
+ 2000
+ 2000
+ 2010
+ 2020-03-01
+ 2000
+
+
+ Space function
+ Office
+ Office
+
+
+ Peak total occupants
+ 31.000000
+
+
+
+
+ 40.000000
+ Hours per week
+
+
+ 50.000000
+ Weeks per year
+
+
+
+
+ Gross
+ 5500.000000
+
+
+ Conditioned
+ 5500.000000
+
+
+ Single zone
+
+
+ Whole building
+ Rectangular
+
+
+ A1
+
+
+ 909.012230
+
+
+
+
+ 180.187860
+
+
+
+
+ 42.086890
+
+
+
+
+ B1
+
+
+ 606.008200
+
+
+
+
+ 120.125240
+
+
+
+
+ 0.000000
+
+
+
+
+ C1
+
+
+ 909.012230
+
+
+
+
+ 180.187860
+
+
+
+
+ 0.000000
+
+
+
+
+ D1
+
+
+ 606.008200
+
+
+
+
+ 120.125240
+
+
+
+
+ 0.000000
+
+
+
+
+
+
+
+ 6444.999000
+ Good
+
+
+
+
+
+
+ 3891.153600
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Single zone
+
+
+
+
+ Packaged Unitary
+ Natural gas
+ 0.000000
+
+
+
+ 3.010000
+ COP
+ 10311.100000
+ 10311.100000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged Unitary
+ Natural gas
+ 0.000000
+
+
+
+ 3.010000
+ COP
+ 9801.300000
+ 9801.300000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged Unitary
+ Natural gas
+ 0.000000
+
+
+
+ 3.010000
+ COP
+ 7858.100000
+ 7858.100000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged Unitary
+ Natural gas
+ 0.000000
+
+
+
+ 3.010000
+ COP
+ 9067.800000
+ 9067.800000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged Unitary
+ Natural gas
+ 0.000000
+
+
+
+ 3.010000
+ COP
+ 9855.400000
+ 9855.400000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+
+
+ Packaged/unitary heat pump
+ Reciprocating
+ Single stage
+
+
+ 2.610000
+ COP
+ 10198.900000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged/unitary heat pump
+ Reciprocating
+ Single stage
+
+
+ 2.610000
+ COP
+ 9847.200000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged/unitary heat pump
+ Reciprocating
+ Single stage
+
+
+ 2.610000
+ COP
+ 7737.100000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged/unitary heat pump
+ Reciprocating
+ Single stage
+
+
+ 2.610000
+ COP
+ 9143.800000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+ Packaged/unitary heat pump
+ Reciprocating
+ Single stage
+
+
+ 2.610000
+ COP
+ 9847.200000
+ W
+ Good
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+
+
+ Central fan
+ CAV terminal box no reheat
+ None
+
+
+ None
+ Fixed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2000
+ 1
+ Good
+
+
+
+
+ Central fan
+ CAV terminal box no reheat
+ None
+
+
+ None
+ Fixed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2000
+ 1
+ Good
+
+
+
+
+ Central fan
+ CAV terminal box no reheat
+ None
+
+
+ None
+ Fixed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2000
+ 1
+ Good
+
+
+
+
+ Central fan
+ CAV terminal box no reheat
+ None
+
+
+ None
+ Fixed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2000
+ 1
+ Good
+
+
+
+
+ Central fan
+ CAV terminal box no reheat
+ None
+
+
+ None
+ Fixed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2000
+ 1
+ Good
+
+
+
+
+
+ Single
+ Good
+
+
+
+
+ Single
+ Good
+
+
+
+
+ Single
+ Good
+
+
+
+
+ Single
+ Good
+
+
+
+
+ Single
+ Good
+
+
+
+
+
+ Digital
+
+
+
+
+
+
+
+
+
+
+ T8
+
+
+ Standard Electronic
+
+ 0.200000
+
+ 100.000000
+ 5.500000
+ 32.000000
+ 4
+ 1.000000
+ 43
+ false
+
+
+
+
+
+
+ Programmable
+
+
+
+ false
+
+
+
+
+
+
+
+ T12
+
+
+ Standard Electronic
+ 100.000000
+ 1.582575
+ 316.516000
+ 1
+ 1.000000
+ 5
+ true
+
+
+
+
+
+
+ Programmable
+
+
+
+ false
+
+
+
+
+
+
+
+ LED
+
+
+ Standard Electronic
+
+ 0.100000
+
+ 100.000000
+ 2.752000
+ 16.000000
+ 4
+ 1.000000
+ 43
+ false
+
+
+
+
+
+
+ Photocell
+ Continuous
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ 40.000000
+ 123.000000
+
+
+ Notes
+
+ 1
+ 3.600000
+ Continuous
+ 123.000000
+ 1.870180
+
+ Looped
+ Thermal Efficiency
+ 1.000000
+ 40.000000
+ 140.000000
+ 1950.520000
+ 11722.840000
+ W
+
+
+
+
+
+
+
+
+
+ 2000
+ Electricity
+ Good
+
+
+
+
+
+
+ 1
+
+
+
+
+ 0.536000
+ 880.000000
+ 880.000000
+ Constant Volume
+
+
+
+
+
+ 0.536000
+ 872.000000
+ 872.000000
+ Variable Volume
+
+
+
+
+
+ 0.536000
+ 836.000000
+ 836.000000
+ Constant Volume
+
+
+
+
+
+ 0.536000
+ 830.000000
+ 830.000000
+ Variable Volume
+
+
+
+
+
+ 0.536000
+ 671.000000
+ 671.000000
+ Constant Volume
+
+
+
+
+
+ 0.536000
+ 664.000000
+ 664.000000
+ Variable Volume
+
+
+
+
+
+ 0.536000
+ 774.000000
+ 774.000000
+ Constant Volume
+
+
+
+
+
+ 0.536000
+ 766.000000
+ 766.000000
+ Variable Volume
+
+
+
+
+
+ 0.536000
+ 841.000000
+ 841.000000
+ Constant Volume
+
+
+
+
+
+ 0.536000
+ 833.000000
+ 833.000000
+ Variable Volume
+
+
+
+
+
+
+
+ Wood frame
+ 0.547000
+
+
+
+
+ Wood frame
+ 4.706000
+
+
+
+
+
+
+
+ Vinyl
+ Clear uncoated
+ Single pane
+ 3.241000
+ 0.391000
+ 0.391000
+
+
+
+
+
+ Vinyl
+ Low e
+ Triple pane
+ 0.300000
+ 0.391000
+ 0.391000
+
+
+
+
+ Insulated metal
+ 0.500000
+
+
+ Steel
+ 2.839000
+
+
+
+
+
+
+
+ 0.345000
+
+
+
+ Concrete poured
+
+
+
+
+ Miscellaneous Electric Load
+ 0.630000
+
+
+
+
+
+
+
+ Notes on test
+ Tight
+ 0.151000
+ ACHnatural
+ Blower door
+
+
+
+
+
+
+
+ Notes on test
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ Occupied
+ 00:00:00
+ 06:00:00
+ 0.000000
+
+
+ Weekday
+ Occupied
+ 06:00:00
+ 07:00:00
+ 11.000000
+
+
+ Weekday
+ Occupied
+ 07:00:00
+ 08:00:00
+ 21.000000
+
+
+ Weekday
+ Occupied
+ 08:00:00
+ 12:00:00
+ 100.000000
+
+
+ Weekday
+ Occupied
+ 12:00:00
+ 13:00:00
+ 53.000000
+
+
+ Weekday
+ Occupied
+ 13:00:00
+ 17:00:00
+ 100.000000
+
+
+ Weekday
+ Occupied
+ 17:00:00
+ 18:00:00
+ 32.000000
+
+
+ Weekday
+ Occupied
+ 18:00:00
+ 22:00:00
+ 11.000000
+
+
+ Weekday
+ Occupied
+ 22:00:00
+ 23:00:00
+ 5.000000
+
+
+ Weekday
+ Occupied
+ 23:00:00
+ 23:59:59
+ 0.000000
+
+
+ Weekend
+ Occupied
+ 00:00:00
+ 23:59:59
+ 0.000000
+
+
+ Holiday
+ Occupied
+ 00:00:00
+ 23:59:59
+ 0.000000
+
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ Lighting
+ 00:00:00
+ 05:00:00
+ 18.000000
+
+
+ Weekday
+ Lighting
+ 05:00:00
+ 07:00:00
+ 23.000000
+
+
+ Weekday
+ Lighting
+ 07:00:00
+ 08:00:00
+ 42.000000
+
+
+ Weekday
+ Lighting
+ 08:00:00
+ 12:00:00
+ 90.000000
+
+
+ Weekday
+ Lighting
+ 12:00:00
+ 13:00:00
+ 80.000000
+
+
+ Weekday
+ Lighting
+ 13:00:00
+ 17:00:00
+ 90.000000
+
+
+ Weekday
+ Lighting
+ 17:00:00
+ 18:00:00
+ 61.000000
+
+
+ Weekday
+ Lighting
+ 18:00:00
+ 20:00:00
+ 42.000000
+
+
+ Weekday
+ Lighting
+ 20:00:00
+ 22:00:00
+ 32.000000
+
+
+ Weekday
+ Lighting
+ 22:00:00
+ 23:00:00
+ 23.000000
+
+
+ Weekday
+ Lighting
+ 23:00:00
+ 23:59:59
+ 18.000000
+
+
+ Weekend
+ Lighting
+ 00:00:00
+ 23:59:59
+ 18.000000
+
+
+ Holiday
+ Lighting
+ 00:00:00
+ 23:59:59
+ 18.000000
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ Miscellaneous equipment
+ 00:00:00
+ 08:00:00
+ 50.000000
+
+
+ Weekday
+ Miscellaneous equipment
+ 08:00:00
+ 12:00:00
+ 100.000000
+
+
+ Weekday
+ Miscellaneous equipment
+ 12:00:00
+ 13:00:00
+ 94.000000
+
+
+ Weekday
+ Miscellaneous equipment
+ 13:00:00
+ 17:00:00
+ 100.000000
+
+
+ Weekday
+ Miscellaneous equipment
+ 17:00:00
+ 18:00:00
+ 50.000000
+
+
+ Weekday
+ Miscellaneous equipment
+ 18:00:00
+ 23:59:59
+ 20.000000
+
+
+ Weekend
+ Miscellaneous equipment
+ 00:00:00
+ 23:59:59
+ 20.000000
+
+
+ Holiday
+ Miscellaneous equipment
+ 00:00:00
+ 23:59:59
+ 20.000000
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ HVAC equipment
+ 00:00:00
+ 06:00:00
+ 0.000000
+
+
+ Weekday
+ HVAC equipment
+ 06:00:00
+ 19:00:00
+ 100.000000
+
+
+ Weekday
+ HVAC equipment
+ 19:00:00
+ 23:59:59
+ 0.000000
+
+
+ Weekend
+ HVAC equipment
+ 00:00:00
+ 23:59:59
+ 0.000000
+
+
+ Holiday
+ HVAC equipment
+ 00:00:00
+ 23:59:59
+ 0.000000
+
+
+
+
+
+
+
+
+
+
+
+ Weekday
+ HVAC equipment
+ 00:00:00
+ 06:00:00
+ 0.000000
+
+
+ Weekday
+ HVAC equipment
+ 06:00:00
+ 07:00:00
+ 60.000000
+
+
+ Weekday
+ HVAC equipment
+ 07:00:00
+ 12:00:00
+ 100.000000
+
+
+ Weekday
+ HVAC equipment
+ 12:00:00
+ 13:00:00
+ 80.000000
+
+
+ Weekday
+ HVAC equipment
+ 13:00:00
+ 18:00:00
+ 100.000000
+
+
+ Weekday
+ HVAC equipment
+ 18:00:00
+ 20:00:00
+ 60.000000
+
+
+ Weekday
+ HVAC equipment
+ 20:00:00
+ 23:59:59
+ 0.000000
+
+
+ Weekend
+ HVAC equipment
+ 00:00:00
+ 23:59:59
+ 0.000000
+
+
+ Holiday
+ HVAC equipment
+ 00:00:00
+ 23:59:59
+ 0.000000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lighting
+
+
+
+ Retrofit with light emitting diode technologies
+
+
+
+ Individual system
+ This measure is designed to replace all fluorescent bulbs with LEDs
+ 1
+ 50.000000
+ 774.000000
+ true
+ 2021-01-01
+ 2021-12-30
+
+
+
+
+
+
+
+
+
+
+ Fan
+
+
+
+ Add VSD motor controller
+
+
+
+ Individual system
+ This measure is designed to retrofit all RTU fans with a VSD
+ 1
+ 750.000000
+ 1250.000000
+ true
+ 2021-01-01
+ 2021-12-30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Electricity
+ This is required to document irregularities in monthly energy patterns (Std 211 6.1.2.1.j). No irregularities found.
+ kWh
+ All end uses
+ 67334.150000
+ 229.753657
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kW
+ 26.040000
+ 26.040000
+ 4613.820000
+
+
+
+
+
+ Natural gas
+ No irregularities in monthly energy consumption found.
+ MMBtu
+ All end uses
+ 8.720000
+ 8.720000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 540.830000
+
+
+
+
+
+ Electricity
+ kWh
+ Interior lighting
+ 28.705000
+ 20062.690000
+ 68.453898
+
+
+
+ Electricity
+ kWh
+ Heating
+ 6.722000
+ 4698.230000
+ 16.030361
+
+
+
+ Electricity
+ kWh
+ Cooling
+ 8.769000
+ 6128.870000
+ 20.911704
+
+
+
+ Electricity
+ kWh
+ Domestic hot water
+ 10.281000
+ 7185.370000
+ 24.516482
+
+
+
+ Electricity
+ kWh
+ Plug load
+ 21.379000
+ 14942.150000
+ 50.982616
+
+
+
+
+
+ Total
+ Energy
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 5933.100000
+
+
+
+ Total
+ Energy
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 5446.100000
+
+
+
+ Total
+ Energy
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 5736.490000
+
+
+
+ Total
+ Energy
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 4980.500000
+
+
+
+ Total
+ Energy
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 5187.210000
+
+
+
+ Total
+ Energy
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 5842.950000
+
+
+
+ Total
+ Energy
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 5801.730000
+
+
+
+ Total
+ Energy
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 6220.160000
+
+
+
+ Total
+ Energy
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 5682.870000
+
+
+
+ Total
+ Energy
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 5571.930000
+
+
+
+ Total
+ Energy
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 5525.150000
+
+
+
+ Total
+ Energy
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 5405.940000
+
+
+
+ Total
+ Energy
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 1.720000
+
+
+
+ Total
+ Energy
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 1.250000
+
+
+
+ Total
+ Energy
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 0.410000
+
+
+
+ Total
+ Energy
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 0.430000
+
+
+
+ Total
+ Energy
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 0.010000
+
+
+
+ Total
+ Energy
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 0.000000
+
+
+
+ Total
+ Energy
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 0.200000
+
+
+
+ Total
+ Energy
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 0.400000
+
+
+
+ Total
+ Energy
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 4.300000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 23.580000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 25.380000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 26.040000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 24.450000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 17.030000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 22.710000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 22.010000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 21.810000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 20.630000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 21.870000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 21.630000
+
+
+
+ Peak
+ On-peak
+ Power
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 21.780000
+
+
+
+ Load factor
+ Power
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 0.340000
+
+
+
+ Load factor
+ Power
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 0.320000
+
+
+
+ Load factor
+ Power
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 0.300000
+
+
+
+ Load factor
+ Power
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 0.280000
+
+
+
+ Load factor
+ Power
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 0.410000
+
+
+
+ Load factor
+ Power
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 0.360000
+
+
+
+ Load factor
+ Power
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 0.350000
+
+
+
+ Load factor
+ Power
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 0.380000
+
+
+
+ Load factor
+ Power
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 0.380000
+
+
+
+ Load factor
+ Power
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 0.340000
+
+
+
+ Load factor
+ Power
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 0.350000
+
+
+
+ Load factor
+ Power
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 0.330000
+
+
+
+ Cost
+ Cost
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 332.160000
+
+
+
+ Cost
+ Cost
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 306.290000
+
+
+
+ Cost
+ Cost
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 321.720000
+
+
+
+ Cost
+ Cost
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 281.540000
+
+
+
+ Cost
+ Cost
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 292.530000
+
+
+
+ Cost
+ Cost
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 534.100000
+
+
+
+ Cost
+ Cost
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 530.450000
+
+
+
+ Cost
+ Cost
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 567.490000
+
+
+
+ Cost
+ Cost
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 519.930000
+
+
+
+ Cost
+ Cost
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 312.970000
+
+
+
+ Cost
+ Cost
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 310.490000
+
+
+
+ Cost
+ Cost
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 304.150000
+
+
+
+ Cost
+ Cost
+ 2019-01-01T00:00:00
+ 2019-02-01T00:00:00
+ 31
+ Day
+ Month
+ 46.690000
+
+
+
+ Cost
+ Cost
+ 2019-02-01T00:00:00
+ 2019-03-01T00:00:00
+ 28
+ Day
+ Month
+ 45.930000
+
+
+
+ Cost
+ Cost
+ 2019-03-01T00:00:00
+ 2019-04-01T00:00:00
+ 31
+ Day
+ Month
+ 44.550000
+
+
+
+ Cost
+ Cost
+ 2019-04-01T00:00:00
+ 2019-05-01T00:00:00
+ 30
+ Day
+ Month
+ 44.580000
+
+
+
+ Cost
+ Cost
+ 2019-05-01T00:00:00
+ 2019-06-01T00:00:00
+ 31
+ Day
+ Month
+ 43.900000
+
+
+
+ Cost
+ Cost
+ 2019-06-01T00:00:00
+ 2019-07-01T00:00:00
+ 30
+ Day
+ Month
+ 43.880000
+
+
+
+ Cost
+ Cost
+ 2019-07-01T00:00:00
+ 2019-08-01T00:00:00
+ 31
+ Day
+ Month
+ 43.880000
+
+
+
+ Cost
+ Cost
+ 2019-08-01T00:00:00
+ 2019-09-01T00:00:00
+ 31
+ Day
+ Month
+ 43.880000
+
+
+
+ Cost
+ Cost
+ 2019-09-01T00:00:00
+ 2019-10-01T00:00:00
+ 30
+ Day
+ Month
+ 43.880000
+
+
+
+ Cost
+ Cost
+ 2019-10-01T00:00:00
+ 2019-11-01T00:00:00
+ 31
+ Day
+ Month
+ 44.210000
+
+
+
+ Cost
+ Cost
+ 2019-11-01T00:00:00
+ 2019-12-01T00:00:00
+ 30
+ Day
+ Month
+ 44.530000
+
+
+
+ Cost
+ Cost
+ 2019-12-01T00:00:00
+ 2020-01-01T00:00:00
+ 31
+ Day
+ Month
+ 50.920000
+
+
+
+
+
+ 238473.656550
+ 43.358800
+ 737088.900000
+ 134.000000
+ 238473.656550
+ 43.358800
+ 238.473657
+ 0.000000
+ 0.000000
+ 0.000000
+ 4952.480000
+ 0.900000
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022-06-01
+
+
+ Portfolio Manager
+ 2019
+ 80.000000
+
+
+
+
+ 238473.656550
+ 43.358800
+ 4952.480000
+
+
+
+
+
+
+
+
+
+
+
+
+ 39070.530000
+ 995
+ 89.000000
+
+
+
+
+ 190348.600000
+ 34.600000
+ 4846.040000
+ 0.881000
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TMY3
+ Finished
+
+
+
+
+
+
+ Electricity
+ kWh
+ All end uses
+ 67334.150000
+ 229.753657
+ kW
+ 26.040000
+ 26.040000
+
+
+ Natural gas
+ MMBtu
+ All end uses
+ 8.720000
+ 8.720000
+
+
+
+
+
+
+
+
+
+ POM-LEDs
+
+
+
+
+
+
+ Capital
+ 35.713000
+ 772
+
+
+ Electricity
+ kWh
+ 11524.540000
+
+
+ Natural gas
+ MMBtu
+ 0.000000
+
+
+ 3.220000
+ 0
+ 0.000000
+ 0.000000
+ 1
+ 824.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0
+ 0
+ 1.070000
+ 0.000000
+
+
+
+
+
+
+
+
+
+ POM-VSDs
+
+
+
+
+
+
+ Capital
+ 5.175000
+ 9
+
+
+ Electricity
+ kWh
+ 207.240000
+
+
+ Natural gas
+ MMBtu
+ 4.460000
+
+
+ 0.420000
+ 0
+ 0.000000
+ 0.000000
+ 1
+ 2000.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0
+ 0
+ 230.150000
+ 0.000000
+
+
+
+
+
+
+
+
+
+ POM-LEDs-VSDs
+
+
+
+
+
+
+
+ Capital
+ 41.827000
+ 781
+
+
+ Electricity
+ kWh
+ 11701.620000
+
+
+ Natural gas
+ MMBtu
+ 1.890000
+
+
+ 4.700000
+ 0
+ 0.000000
+ 0.000000
+ 1
+ 2824.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0.000000
+ 0
+ 0
+ 3.620000
+ 0.000000
+
+
+
+
+
+
+
+
+
+ Level 2: Energy Survey and Analysis
+
+
+
+
+
+
+
+
+ --06-01
+ --09-30
+ --06-01
+ --09-30
+ 0.088520
+ 0.000000
+
+
+ --01-01
+ --05-31
+ --01-01
+ --05-31
+ 0.053140
+ 0.000000
+
+
+ --10-01
+ --12-31
+ --10-01
+ --12-31
+ 0.053140
+ 0.000000
+
+
+
+
+ https://www.xcelenergy.com/company/rates_and_regulations/rates/rate_books
+ 16.880000
+
+
+ 12345
+ Xcel Energy
+
+ Some-meter-ID
+
+ some-account-number
+ Building Owner
+
+
+
+
+
+
+
+
+ --01-01
+ --12-31
+ 0.163600
+
+
+
+
+ https://www.xcelenergy.com/company/rates_and_regulations/rates/rate_books
+ 43.880000
+
+
+ Xcel Energy
+
+ Some-meter-ID
+
+ some-other-account-number
+ Building Owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Owner
+
+ The dude
+ Some big company
+
+
+ 123-456-7890
+
+
+
+
+ the.dude@somebigco.net
+
+
+
+
+
+ Energy Auditor
+
+ The lady
+ Auditeers
+
+
+ 123-456-7890
+
+
+
+
+ the.lady@the-three-auditeers.com
+
+
+
+
+
+
+
diff --git a/spec/tests/model_articulation_test/facility_spec.rb b/spec/tests/model_articulation_test/facility_spec.rb
index a0e77afd..93f4aea5 100644
--- a/spec/tests/model_articulation_test/facility_spec.rb
+++ b/spec/tests/model_articulation_test/facility_spec.rb
@@ -166,13 +166,13 @@
end
end
-RSpec.describe 'Facility Systems Mapping' do
+RSpec.describe 'Facility Systems' do
before(:all) do
# -- Setup
@ns = 'auc'
g = BuildingSync::Generator.new
doc = g.create_minimum_snippet('Retail')
- doc_no_systems = g.create_minimum_snippet('Retail)')
+ doc_no_systems = g.create_minimum_snippet('Retail')
@facility_no_systems_xml = g.get_first_facility_element(doc_no_systems)
g.add_hvac_system_to_first_facility(doc, 'HVACSystem-1', 'VAV with Hot Water Reheat')
@@ -184,33 +184,20 @@
@facility = BuildingSync::Facility.new(facility_xml, @ns)
end
describe 'with systems defined' do
- it 'should be of the correct data structure' do
- # -- Assert
- expect(@facility.systems_map).to be_an_instance_of(Hash)
- end
- it 'should have the correct keys' do
- # -- Assert correct keys get created
- expected_keys = ['HVACSystems', 'LightingSystems', 'PlugLoads']
- expected_keys.each do |k|
- expect(@facility.systems_map.key?(k)).to be true
- end
- end
-
it 'values should be of the correct type and size' do
# -- Assert values of keys are correct type and size
- expect(@facility.systems_map['HVACSystems']).to be_an_instance_of(Array)
- expect(@facility.systems_map['LightingSystems']).to be_an_instance_of(Array)
- expect(@facility.systems_map['PlugLoads']).to be_an_instance_of(Array)
- expect(@facility.systems_map['HVACSystems'].size).to eq(2)
- expect(@facility.systems_map['LightingSystems'].size).to eq(1)
- expect(@facility.systems_map['PlugLoads'].size).to eq(1)
+ expect(@facility.hvac_systems).to be_an_instance_of(Array)
+ expect(@facility.lighting_systems).to be_an_instance_of(Array)
+ expect(@facility.load_systems).to be_an_instance_of(Array)
+ expect(@facility.hvac_systems.size).to eq(2)
+ expect(@facility.lighting_systems.size).to eq(1)
+ expect(@facility.load_systems.size).to eq(1)
end
it 'values in array should be of the correct type' do
- # Only HVACSystem and LightingSystem should be typed as BSync element types (for now)
- expect(@facility.systems_map['HVACSystems'][0]).to be_an_instance_of(BuildingSync::HVACSystem)
- expect(@facility.systems_map['LightingSystems'][0]).to be_an_instance_of(BuildingSync::LightingSystemType)
- expect(@facility.systems_map['PlugLoads'][0]).to be_an_instance_of(REXML::Element)
+ expect(@facility.hvac_systems[0]).to be_an_instance_of(BuildingSync::HVACSystem)
+ expect(@facility.lighting_systems[0]).to be_an_instance_of(BuildingSync::LightingSystemType)
+ expect(@facility.load_systems[0]).to be_an_instance_of(BuildingSync::LoadsSystem)
end
end
describe 'with no systems defined' do
diff --git a/spec/tests/model_articulation_test/lighting_system_type_spec.rb b/spec/tests/model_articulation_test/lighting_system_type_spec.rb
index ba4bd474..ae1c71ba 100644
--- a/spec/tests/model_articulation_test/lighting_system_type_spec.rb
+++ b/spec/tests/model_articulation_test/lighting_system_type_spec.rb
@@ -73,7 +73,6 @@
@facility = BuildingSync::Facility.new(facility_xml, ns)
# -- Assert - No systems have been added
- expect(@facility.systems_map.empty?).to be true
@facility.determine_open_studio_standard(@std)
# Add a blank lighting system to the facility and link it to the building
@@ -81,10 +80,8 @@
@lighting_system = @facility.add_blank_lighting_system(building_id, 'Building')
# -- Assert Lighting System has been properly added
- expect(@facility.systems_map.key?('LightingSystems')).to be true
- expect(@facility.systems_map['LightingSystems'].size).to eq(1)
- expect(@facility.systems_map['LightingSystems'][0]).to be @lighting_system
- expect(@lighting_system.xget_linked_premises).to eq('Building' => ['Building1'])
+ expect(@facility.lighting_systems.size).to eq(2)
+ expect(@facility.lighting_systems[1].xget_linked_premises).to eq('Building' => ['Building1'])
# we need to create a site and call the generate_baseline_osm method in order to set the space types in the model, why are those really needed?
@facility.generate_baseline_osm(@epw_file_path, @output_path, @std)
diff --git a/spec/tests/translator_sizing_run_spec.rb b/spec/tests/translator_sizing_run_spec.rb
index 59fb2023..15091803 100644
--- a/spec/tests/translator_sizing_run_spec.rb
+++ b/spec/tests/translator_sizing_run_spec.rb
@@ -54,6 +54,10 @@
['building_151_n1.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
['building_151_n1.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
+ ## building_151_level1
+ ['building_151_level1.xml', ASHRAE90_1, nil, 'v2.4.0'],
+ ['building_151_level1.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
+
# Building 151 multifamily
['building_151_multifamily.xml', ASHRAE90_1, nil, 'v2.4.0'],
['building_151_multifamily.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
@@ -71,6 +75,14 @@
# BuildingSync Website Valid Schema
# None of these should work, see errors that get caught in next section.
+ # #####################################
+ # ## L100 Audit
+ # Trace/BPT trap: 5 gets hit for following 2 lines
+ # ['L100_Audit.xml', CA_TITLE24, nil, 'v2.4.0', "Error, cannot find local component for: 1ed4ea50-edc6-0131-1b8b-48e0eb16a403. Please try a different weather file."],
+ # ['L100_Audit.xml', ASHRAE90_1, nil, 'v2.4.0', "Error, cannot find local component for: 1ed4ea50-edc6-0131-1b8b-48e0eb16a403. Please try a different weather file."],
+ ['L100_Audit.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
+ ['L100_Audit.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
+
# L000_OpenStudio_Pre-Simulation-01
['L000_OpenStudio_Pre-Simulation_01.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
@@ -88,11 +100,16 @@
['L000_OpenStudio_Pre-Simulation_04.xml', ASHRAE90_1, nil, 'v2.4.0'],
['L000_OpenStudio_Pre-Simulation_04.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
['L000_OpenStudio_Pre-Simulation_04.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
+ ['example-smalloffice-level1.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
# Office_Carolina
['Office_Carolina.xml', ASHRAE90_1, nil, 'v2.4.0'],
['Office_Carolina.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
- ['Office_Carolina.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0']
+ ['Office_Carolina.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
+
+ #####################################
+ ## Golden File
+ ['Golden Test File.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0'],
]
tests_to_run.each do |test|
it "File: #{test[0]}. Standard: #{test[1]}. EPW_Path: #{test[2]}. File Schema Version: #{test[3]}" do
@@ -108,10 +125,8 @@
#####################################
## building_151_level1
- ['building_151_level1.xml', CA_TITLE24, nil, 'v2.4.0', "undefined method `add_internal_loads' for nil:NilClass"],
- ['building_151_level1.xml', ASHRAE90_1, nil, 'v2.4.0', "undefined method `add_internal_loads' for nil:NilClass"],
- ['building_151_level1.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "undefined method `add_internal_loads' for nil:NilClass"],
- ['building_151_level1.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "undefined method `add_internal_loads' for nil:NilClass"],
+ ['building_151_level1.xml', CA_TITLE24, nil, 'v2.4.0', "This is not a table"],
+ ['building_151_level1.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "This is not a table"],
#####################################
## BuildingSync Website Valid Schema
@@ -130,23 +145,14 @@
####################################
# DC GSA HeadquartersWithClimateZone
['DC GSA HeadquartersWithClimateZone.xml', CA_TITLE24, nil, 'v2.4.0', "BuildingSync.Building.determine_open_studio_standard: ERROR: Did not find a class called 'CBES Pre-1978_LargeOffice' to create in CaliforniaTitle24"],
- ['DC GSA HeadquartersWithClimateZone.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "BuildingSync.Building.determine_open_studio_standard: ERROR: Did not find a class called 'CBES Pre-1978_LargeOffice' to create in CaliforniaTitle24"],
-
- # #####################################
- # ## L100 Audit
- # Trace/BPT trap: 5 gets hit for following 2 lines
- # ['L100_Audit.xml', CA_TITLE24, nil, 'v2.4.0', "Error, cannot find local component for: 1ed4ea50-edc6-0131-1b8b-48e0eb16a403. Please try a different weather file."],
- # ['L100_Audit.xml', ASHRAE90_1, nil, 'v2.4.0', "Error, cannot find local component for: 1ed4ea50-edc6-0131-1b8b-48e0eb16a403. Please try a different weather file."],
- ['L100_Audit.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "undefined method `add_internal_loads' for nil:NilClass"],
- ['L100_Audit.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "undefined method `add_internal_loads' for nil:NilClass"],
+ ['DC GSA HeadquartersWithClimateZone.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "BuildingSync.Building.determine_open_studio_standard: ERROR: Did not find a class called 'CBES Pre-1978_LargeOffice' to create in CaliforniaTitle24"], # #####################################
# #####################################
# ## Golden File
# Trace/BPT trap: 5 gets hit for following 2 lines
# ['Golden Test File.xml', CA_TITLE24, nil, 'v2.4.0', "Error, cannot find local component for: fa8c9ff0-edc4-0131-a9f8-48e0eb16a403. Please try a different weather file."],
# ['Golden Test File.xml', ASHRAE90_1, nil, 'v2.4.0', "Error, cannot find local component for: fa8c9ff0-edc4-0131-a9f8-48e0eb16a403. Please try a different weather file."],
- ['Golden Test File.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "BuildingSync.Building.determine_open_studio_standard: ERROR: Did not find a class called 'CBES T24 2008_LargeOffice' to create in CaliforniaTitle24", false],
- ['Golden Test File.xml', ASHRAE90_1, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "undefined method `add_internal_loads' for nil:NilClass"],
+ ['Golden Test File.xml', CA_TITLE24, File.join(SPEC_WEATHER_DIR, 'USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'), 'v2.4.0', "BuildingSync.Building.determine_open_studio_standard: ERROR: Did not find a class called 'CBES T24 2008_LargeOffice' to create in CaliforniaTitle24"],
# #####################################
# L000_OpenStudio_Pre-Simulation-01