openstudio-standards 0.6.0.rc2 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/standards/export_OpenStudio_libraries.rb +2 -2
- data/data/standards/manage_OpenStudio_Standards.rb +2 -2
- data/lib/openstudio-standards/btap/btap_result.rb +0 -2
- data/lib/openstudio-standards/btap/envelope.rb +1 -1
- data/lib/openstudio-standards/create_typical/create_typical.rb +1 -1
- data/lib/openstudio-standards/geometry/create_bar.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +11 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +11 -7
- data/lib/openstudio-standards/schedules/parametric.rb +5 -0
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +11 -4
- data/lib/openstudio-standards/standards/Standards.Model.rb +20 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +9 -5
- data/lib/openstudio-standards/standards/deer/data/deer.constructions.json +4 -4
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +17 -10
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +0 -4
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +1 -1
- data/lib/openstudio-standards/version.rb +1 -1
- metadata +104 -92
- data/data/standards/OpenStudio_Standards-deer-comstock.xlsx +0 -0
- data/data/standards/openstudio_standards_duplicates_log.csv +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36e7f523d2cb10126059ecdf5e1284b63aa700608bdb4a9244d799836bdaf3af
|
4
|
+
data.tar.gz: afb385431a40c8a890e10374ee3512c4e539f2eaeaf73e817b53afcbdeb00e98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b57b01c010bd7c8b6a3b5c7c291cec14073974a8128fc9eb48dc11f51cec9ff605848cae2ade96947eee9c77fd1f50d17f7962c25b7c7b96c20f1e6b419debcd
|
7
|
+
data.tar.gz: a3d1ec5b7bf7ad1c986c2b4b26ac39d99f8ae60411b0efcf8a5a84e6819c1c19cade76921293c13fb70e2c80740219a216442f23519e3c706df1e8081f3c6dc6
|
@@ -438,9 +438,9 @@ def export_openstudio_libraries
|
|
438
438
|
|
439
439
|
# Save the library
|
440
440
|
pkg_dir = "#{__dir__}/../../pkg"
|
441
|
-
Dir.mkdir(pkg_dir) unless Dir.
|
441
|
+
Dir.mkdir(pkg_dir) unless Dir.exist?(pkg_dir)
|
442
442
|
osm_lib_dir = "#{pkg_dir}/libraries"
|
443
|
-
Dir.mkdir(osm_lib_dir) unless Dir.
|
443
|
+
Dir.mkdir(osm_lib_dir) unless Dir.exist?(osm_lib_dir)
|
444
444
|
library_path = "#{osm_lib_dir}/#{template_name.gsub(/\W/,'_')}.osm"
|
445
445
|
puts "* Saving library #{library_path}"
|
446
446
|
model.save(OpenStudio::Path.new(library_path), true)
|
@@ -204,7 +204,7 @@ end
|
|
204
204
|
def check_google_drive_configuration
|
205
205
|
require 'google_drive'
|
206
206
|
client_config_path = File.join(Dir.home, '.credentials', "client_secret.json")
|
207
|
-
unless File.
|
207
|
+
unless File.exist? client_config_path
|
208
208
|
puts "Unable to locate client_secret.json file at #{client_config_path}."
|
209
209
|
return false
|
210
210
|
end
|
@@ -228,7 +228,7 @@ end
|
|
228
228
|
def download_google_spreadsheets(spreadsheet_titles)
|
229
229
|
require 'google_drive'
|
230
230
|
client_config_path = File.join(Dir.home, '.credentials', "client_secret.json")
|
231
|
-
unless File.
|
231
|
+
unless File.exist? client_config_path
|
232
232
|
puts "Unable to locate client_secret.json file at #{client_config_path}."
|
233
233
|
return false
|
234
234
|
end
|
@@ -25,8 +25,6 @@ module BTAP
|
|
25
25
|
# Create hash to store all the collected data.
|
26
26
|
qaqc = {}
|
27
27
|
error_warning=[]
|
28
|
-
qaqc[:os_standards_revision] = OpenstudioStandards::git_revision
|
29
|
-
qaqc[:os_standards_version] = OpenstudioStandards::VERSION
|
30
28
|
# Store Building data.
|
31
29
|
qaqc[:building] = {}
|
32
30
|
qaqc[:building][:name] = model.building.get.name.get
|
@@ -909,7 +909,7 @@ module BTAP
|
|
909
909
|
#@return [Boolean] optional_construction_set
|
910
910
|
def self.get_construction_set_from_library(construction_library_file, construction_set_name)
|
911
911
|
#Load Contruction osm library.
|
912
|
-
if File.
|
912
|
+
if File.exist?(construction_library_file)
|
913
913
|
construction_lib = BTAP::FileIO::load_osm(construction_library_file)
|
914
914
|
#Get construction set..
|
915
915
|
optional_construction_set = construction_lib.getDefaultConstructionSetByName(construction_set_name)
|
@@ -144,7 +144,7 @@ module OpenstudioStandards
|
|
144
144
|
|
145
145
|
# check that weekday start time plus duration does not exceed 24 hrs
|
146
146
|
if (wkdy_op_hrs_start_time_hr + wkdy_op_hrs_duration_hr + (wkdy_op_hrs_start_time_min + wkdy_op_hrs_duration_min) / 60.0) > 24.0
|
147
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CreateTypical', "Weekday start time of #{
|
147
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CreateTypical', "Weekday start time of #{wkdy_op_hrs_start_time} plus duration of #{wkdy_op_hrs_duration} is more than 24 hrs, hours of operation overlap midnight.")
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
@@ -190,7 +190,7 @@ module OpenstudioStandards
|
|
190
190
|
building_overhang_area_w = 0.0
|
191
191
|
|
192
192
|
# loop through stories based on mine z height of surfaces.
|
193
|
-
sorted_stories =
|
193
|
+
sorted_stories = OpenstudioStandards::Geometry.model_sort_building_stories_and_get_min_multiplier(model).sort_by { |k, v| v }
|
194
194
|
sorted_stories.each do |story, story_min_z|
|
195
195
|
story_min_multiplier = nil
|
196
196
|
story_footprint = nil
|
@@ -365,10 +365,10 @@ module OpenstudioStandards
|
|
365
365
|
end
|
366
366
|
end
|
367
367
|
|
368
|
-
envelope_data_hash[:building_overhang_proj_factor_n] = building_overhang_area_n / ext_surfaces_hash['
|
369
|
-
envelope_data_hash[:building_overhang_proj_factor_s] = building_overhang_area_s / ext_surfaces_hash['
|
370
|
-
envelope_data_hash[:building_overhang_proj_factor_e] = building_overhang_area_e / ext_surfaces_hash['
|
371
|
-
envelope_data_hash[:building_overhang_proj_factor_w] = building_overhang_area_w / ext_surfaces_hash['
|
368
|
+
envelope_data_hash[:building_overhang_proj_factor_n] = building_overhang_area_n / ext_surfaces_hash['north_window']
|
369
|
+
envelope_data_hash[:building_overhang_proj_factor_s] = building_overhang_area_s / ext_surfaces_hash['south_window']
|
370
|
+
envelope_data_hash[:building_overhang_proj_factor_e] = building_overhang_area_e / ext_surfaces_hash['east_window']
|
371
|
+
envelope_data_hash[:building_overhang_proj_factor_w] = building_overhang_area_w / ext_surfaces_hash['west_window']
|
372
372
|
|
373
373
|
# warn for spaces that are not on a story (in future could infer stories for these)
|
374
374
|
model.getSpaces.sort.each do |space|
|
@@ -390,7 +390,7 @@ module OpenstudioStandards
|
|
390
390
|
bounding_length = envelope_data_hash[:building_max_xyz][0] - envelope_data_hash[:building_min_xyz][0]
|
391
391
|
bounding_width = envelope_data_hash[:building_max_xyz][1] - envelope_data_hash[:building_min_xyz][1]
|
392
392
|
bounding_area = bounding_length * bounding_width
|
393
|
-
footprint_area = envelope_data_hash[:building_floor_area] / envelope_data_hash[:
|
393
|
+
footprint_area = envelope_data_hash[:building_floor_area] / (envelope_data_hash[:effective_num_stories_above_grade]. + envelope_data_hash[:effective_num_stories_below_grade].to_f)
|
394
394
|
area_multiplier = footprint_area / bounding_area
|
395
395
|
edge_multiplier = Math.sqrt(area_multiplier)
|
396
396
|
bar[:length] = bounding_length * edge_multiplier
|
@@ -408,7 +408,7 @@ module OpenstudioStandards
|
|
408
408
|
|
409
409
|
bounding_length = envelope_data_hash[:building_max_xyz][0] - envelope_data_hash[:building_min_xyz][0]
|
410
410
|
bounding_width = envelope_data_hash[:building_max_xyz][1] - envelope_data_hash[:building_min_xyz][1]
|
411
|
-
footprint_area = envelope_data_hash[:building_floor_area] / envelope_data_hash[:
|
411
|
+
footprint_area = envelope_data_hash[:building_floor_area] / (envelope_data_hash[:effective_num_stories_above_grade]. + envelope_data_hash[:effective_num_stories_below_grade].to_f)
|
412
412
|
|
413
413
|
if bounding_length >= bounding_width
|
414
414
|
bar[:length] = bounding_length
|
@@ -430,7 +430,7 @@ module OpenstudioStandards
|
|
430
430
|
|
431
431
|
bounding_length = envelope_data_hash[:building_max_xyz][0] - envelope_data_hash[:building_min_xyz][0]
|
432
432
|
bounding_width = envelope_data_hash[:building_max_xyz][1] - envelope_data_hash[:building_min_xyz][1]
|
433
|
-
a = envelope_data_hash[:building_floor_area] / envelope_data_hash[:
|
433
|
+
a = envelope_data_hash[:building_floor_area] / (envelope_data_hash[:effective_num_stories_above_grade]. + envelope_data_hash[:effective_num_stories_below_grade].to_f)
|
434
434
|
p = envelope_data_hash[:building_perimeter]
|
435
435
|
|
436
436
|
if bounding_length >= bounding_width
|
@@ -119,12 +119,19 @@ class Standard
|
|
119
119
|
|
120
120
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(full_htg_sens_eff)
|
121
121
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(full_htg_lat_eff)
|
122
|
-
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(part_htg_sens_eff)
|
123
|
-
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(part_htg_lat_eff)
|
124
122
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(full_cool_sens_eff)
|
125
123
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(full_cool_lat_eff)
|
126
|
-
|
127
|
-
|
124
|
+
if model.version < OpenStudio::VersionString.new('3.8.0')
|
125
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(part_htg_sens_eff)
|
126
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(part_htg_lat_eff)
|
127
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(part_cool_sens_eff)
|
128
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(part_cool_lat_eff)
|
129
|
+
else
|
130
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(part_htg_sens_eff) unless part_htg_sens_eff.zero?
|
131
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(part_htg_lat_eff) unless part_htg_lat_eff.zero?
|
132
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(part_cool_sens_eff) unless part_cool_sens_eff.zero?
|
133
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(part_cool_lat_eff) unless part_cool_lat_eff.zero?
|
134
|
+
end
|
128
135
|
|
129
136
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.HeatExchangerSensLat', "For #{heat_exchanger_air_to_air_sensible_and_latent.name}: Set sensible and latent effectiveness calculated by using ERR.")
|
130
137
|
return true
|
@@ -5173,16 +5173,18 @@ class Standard
|
|
5173
5173
|
space.surfaces.each do |surface|
|
5174
5174
|
if radiant_type == 'floor'
|
5175
5175
|
if surface.surfaceType == 'Floor'
|
5176
|
-
if surface.outsideBoundaryCondition
|
5176
|
+
if surface.outsideBoundaryCondition.include? 'Ground'
|
5177
5177
|
surface.setConstruction(radiant_ground_slab_construction)
|
5178
5178
|
elsif surface.outsideBoundaryCondition == 'Outdoors'
|
5179
5179
|
surface.setConstruction(radiant_exterior_slab_construction)
|
5180
5180
|
else # interior floor
|
5181
5181
|
surface.setConstruction(radiant_interior_floor_slab_construction)
|
5182
5182
|
|
5183
|
-
# also assign
|
5184
|
-
|
5185
|
-
|
5183
|
+
# also assign construction to adjacent surface
|
5184
|
+
if surface.adjacentSurface.is_initialized
|
5185
|
+
adjacent_surface = surface.adjacentSurface.get
|
5186
|
+
adjacent_surface.setConstruction(rev_radiant_interior_floor_slab_construction)
|
5187
|
+
end
|
5186
5188
|
end
|
5187
5189
|
end
|
5188
5190
|
elsif radiant_type == 'ceiling'
|
@@ -5192,9 +5194,11 @@ class Standard
|
|
5192
5194
|
else # interior ceiling
|
5193
5195
|
surface.setConstruction(radiant_interior_ceiling_slab_construction)
|
5194
5196
|
|
5195
|
-
# also assign
|
5196
|
-
|
5197
|
-
|
5197
|
+
# also assign construction to adjacent surface
|
5198
|
+
if surface.adjacentSurface.is_initialized
|
5199
|
+
adjacent_surface = surface.adjacentSurface.get
|
5200
|
+
adjacent_surface.setConstruction(rev_radiant_interior_ceiling_slab_construction)
|
5201
|
+
end
|
5198
5202
|
end
|
5199
5203
|
end
|
5200
5204
|
end
|
@@ -1341,6 +1341,11 @@ module OpenstudioStandards
|
|
1341
1341
|
|
1342
1342
|
# Tell EnergyPlus to interpolate schedules to timestep so that it doesn't have to be done in this code
|
1343
1343
|
# sch_day.setInterpolatetoTimestep(true)
|
1344
|
+
# if model.version < OpenStudio::VersionString.new('3.8.0')
|
1345
|
+
# day_sch.setInterpolatetoTimestep(true)
|
1346
|
+
# else
|
1347
|
+
# day_sch.setInterpolatetoTimestep('Average')
|
1348
|
+
# end
|
1344
1349
|
|
1345
1350
|
return schedule_day
|
1346
1351
|
end
|
@@ -11,12 +11,19 @@ class Standard
|
|
11
11
|
|
12
12
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(full_htg_sens_eff)
|
13
13
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(full_htg_lat_eff)
|
14
|
-
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(part_htg_sens_eff)
|
15
|
-
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(part_htg_lat_eff)
|
16
14
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(full_cool_sens_eff)
|
17
15
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(full_cool_lat_eff)
|
18
|
-
heat_exchanger_air_to_air_sensible_and_latent.
|
19
|
-
|
16
|
+
if heat_exchanger_air_to_air_sensible_and_latent.model.version < OpenStudio::VersionString.new('3.8.0')
|
17
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(part_htg_sens_eff)
|
18
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(part_htg_lat_eff)
|
19
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(part_cool_sens_eff)
|
20
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(part_cool_lat_eff)
|
21
|
+
else
|
22
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(part_htg_sens_eff) unless part_htg_sens_eff.zero?
|
23
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(part_htg_lat_eff) unless part_htg_lat_eff.zero?
|
24
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(part_cool_sens_eff) unless part_cool_sens_eff.zero?
|
25
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(part_cool_lat_eff) unless part_cool_lat_eff.zero?
|
26
|
+
end
|
20
27
|
|
21
28
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.HeatExchangerSensLat', "For #{heat_exchanger_air_to_air_sensible_and_latent.name}: Set sensible and latent effectiveness.")
|
22
29
|
|
@@ -2791,6 +2791,11 @@ class Standard
|
|
2791
2791
|
day_sch = sch_ruleset.defaultDaySchedule
|
2792
2792
|
day_sch.setName("#{schedule_name} Default")
|
2793
2793
|
model_add_vals_to_sch(model, day_sch, sch_type, values)
|
2794
|
+
if model.version < OpenStudio::VersionString.new('3.8.0')
|
2795
|
+
day_sch.setInterpolatetoTimestep(false)
|
2796
|
+
else
|
2797
|
+
day_sch.setInterpolatetoTimestep('No')
|
2798
|
+
end
|
2794
2799
|
end
|
2795
2800
|
|
2796
2801
|
# Winter Design Day
|
@@ -2800,6 +2805,11 @@ class Standard
|
|
2800
2805
|
day_sch = sch_ruleset.winterDesignDaySchedule
|
2801
2806
|
day_sch.setName("#{schedule_name} Winter Design Day")
|
2802
2807
|
model_add_vals_to_sch(model, day_sch, sch_type, values)
|
2808
|
+
if model.version < OpenStudio::VersionString.new('3.8.0')
|
2809
|
+
day_sch.setInterpolatetoTimestep(false)
|
2810
|
+
else
|
2811
|
+
day_sch.setInterpolatetoTimestep('No')
|
2812
|
+
end
|
2803
2813
|
end
|
2804
2814
|
|
2805
2815
|
# Summer Design Day
|
@@ -2809,6 +2819,11 @@ class Standard
|
|
2809
2819
|
day_sch = sch_ruleset.summerDesignDaySchedule
|
2810
2820
|
day_sch.setName("#{schedule_name} Summer Design Day")
|
2811
2821
|
model_add_vals_to_sch(model, day_sch, sch_type, values)
|
2822
|
+
if model.version < OpenStudio::VersionString.new('3.8.0')
|
2823
|
+
day_sch.setInterpolatetoTimestep(false)
|
2824
|
+
else
|
2825
|
+
day_sch.setInterpolatetoTimestep('No')
|
2826
|
+
end
|
2812
2827
|
end
|
2813
2828
|
|
2814
2829
|
# Other days (weekdays, weekends, etc)
|
@@ -2827,6 +2842,11 @@ class Standard
|
|
2827
2842
|
day_sch = sch_rule.daySchedule
|
2828
2843
|
day_sch.setName("#{schedule_name} #{day_types} Day")
|
2829
2844
|
model_add_vals_to_sch(model, day_sch, sch_type, values)
|
2845
|
+
if model.version < OpenStudio::VersionString.new('3.8.0')
|
2846
|
+
day_sch.setInterpolatetoTimestep(false)
|
2847
|
+
else
|
2848
|
+
day_sch.setInterpolatetoTimestep('No')
|
2849
|
+
end
|
2830
2850
|
|
2831
2851
|
# Set the dates when the rule applies
|
2832
2852
|
sch_rule.setStartDate(OpenStudio::Date.new(OpenStudio::MonthOfYear.new(start_date.month.to_i), start_date.day.to_i))
|
@@ -808,12 +808,14 @@ class NRELZNEReady2017 < ASHRAE901
|
|
808
808
|
if erv_type == 'HRV'
|
809
809
|
erv.setSensibleEffectivenessat100HeatingAirFlow(0.865)
|
810
810
|
erv.setLatentEffectivenessat100HeatingAirFlow(0.0)
|
811
|
-
erv.setSensibleEffectivenessat75HeatingAirFlow(0.887)
|
812
|
-
erv.setLatentEffectivenessat75HeatingAirFlow(0.0)
|
813
811
|
erv.setSensibleEffectivenessat100CoolingAirFlow(0.865)
|
814
812
|
erv.setLatentEffectivenessat100CoolingAirFlow(0.0)
|
813
|
+
erv.setSensibleEffectivenessat75HeatingAirFlow(0.887)
|
815
814
|
erv.setSensibleEffectivenessat75CoolingAirFlow(0.887)
|
816
|
-
erv.
|
815
|
+
if erv.model.version < OpenStudio::VersionString.new('3.8.0')
|
816
|
+
erv.setLatentEffectivenessat75HeatingAirFlow(0.0)
|
817
|
+
erv.setLatentEffectivenessat75CoolingAirFlow(0.0)
|
818
|
+
end
|
817
819
|
else
|
818
820
|
erv.setSensibleEffectivenessat100HeatingAirFlow(0.755)
|
819
821
|
erv.setLatentEffectivenessat100HeatingAirFlow(0.564)
|
@@ -829,11 +831,13 @@ class NRELZNEReady2017 < ASHRAE901
|
|
829
831
|
erv.setSensibleEffectivenessat100HeatingAirFlow(0.75)
|
830
832
|
erv.setLatentEffectivenessat100HeatingAirFlow(0.0)
|
831
833
|
erv.setSensibleEffectivenessat75HeatingAirFlow(0.79)
|
832
|
-
erv.setLatentEffectivenessat75HeatingAirFlow(0.0)
|
833
834
|
erv.setSensibleEffectivenessat100CoolingAirFlow(0.75)
|
834
835
|
erv.setLatentEffectivenessat100CoolingAirFlow(0.0)
|
835
836
|
erv.setSensibleEffectivenessat75CoolingAirFlow(0.78)
|
836
|
-
erv.
|
837
|
+
if erv.model.version < OpenStudio::VersionString.new('3.8.0')
|
838
|
+
erv.setLatentEffectivenessat75HeatingAirFlow(0.0)
|
839
|
+
erv.setLatentEffectivenessat75CoolingAirFlow(0.0)
|
840
|
+
end
|
837
841
|
else
|
838
842
|
erv.setSensibleEffectivenessat100HeatingAirFlow(0.75)
|
839
843
|
erv.setLatentEffectivenessat100HeatingAirFlow(0.74)
|
@@ -344,20 +344,20 @@
|
|
344
344
|
"name": "DEER Metal Framed Window",
|
345
345
|
"intended_surface_type": "ExteriorWindow",
|
346
346
|
"standards_construction_type": "Nonmetal framing (all)",
|
347
|
-
"insulation_layer":
|
347
|
+
"insulation_layer": null,
|
348
348
|
"skylight_framing": null,
|
349
349
|
"materials": [
|
350
|
-
"Simple Glazing"
|
350
|
+
"Simple Glazing U 1.23 SHGC 0.61 VT 0.25"
|
351
351
|
]
|
352
352
|
},
|
353
353
|
{
|
354
354
|
"name": "DEER Skylight",
|
355
355
|
"intended_surface_type": "ExteriorWindow",
|
356
356
|
"standards_construction_type": "Nonmetal framing (all)",
|
357
|
-
"insulation_layer":
|
357
|
+
"insulation_layer": null,
|
358
358
|
"skylight_framing": null,
|
359
359
|
"materials": [
|
360
|
-
"Simple Glazing"
|
360
|
+
"Simple Glazing U 1.23 SHGC 0.61 VT 0.25"
|
361
361
|
]
|
362
362
|
},
|
363
363
|
{
|
@@ -383,12 +383,19 @@ class NECB2011
|
|
383
383
|
heat_exchanger_air_to_air_sensible_and_latent.setHeatExchangerType(erv_info['HeatExchangerType'])
|
384
384
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(erv_info['SensibleEffectivenessat100HeatingAirFlow'])
|
385
385
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(erv_info['LatentEffectivenessat100HeatingAirFlow'])
|
386
|
-
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(erv_info['SensibleEffectivenessat75HeatingAirFlow'])
|
387
|
-
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(erv_info['LatentEffectivenessat75HeatingAirFlow'])
|
388
386
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(erv_info['SensibleEffectivenessat100CoolingAirFlow'])
|
389
387
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(erv_info['LatentEffectivenessat100CoolingAirFlow'])
|
390
|
-
heat_exchanger_air_to_air_sensible_and_latent.
|
391
|
-
|
388
|
+
if heat_exchanger_air_to_air_sensible_and_latent.model.version < OpenStudio::VersionString.new('3.8.0')
|
389
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(erv_info['SensibleEffectivenessat75HeatingAirFlow'])
|
390
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(erv_info['LatentEffectivenessat75HeatingAirFlow'])
|
391
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(erv_info['SensibleEffectivenessat75CoolingAirFlow'])
|
392
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(erv_info['LatentEffectivenessat75CoolingAirFlow'])
|
393
|
+
else
|
394
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(erv_info['SensibleEffectivenessat75HeatingAirFlow']) unless erv_info['SensibleEffectivenessat75HeatingAirFlow'].zero?
|
395
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(erv_info['LatentEffectivenessat75HeatingAirFlow']) unless erv_info['LatentEffectivenessat75HeatingAirFlow'].zero?
|
396
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(erv_info['SensibleEffectivenessat75CoolingAirFlow']) unless erv_info['SensibleEffectivenessat75CoolingAirFlow'].zero?
|
397
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(erv_info['LatentEffectivenessat75CoolingAirFlow']) unless erv_info['LatentEffectivenessat75CoolingAirFlow'].zero?
|
398
|
+
end
|
392
399
|
heat_exchanger_air_to_air_sensible_and_latent.setSupplyAirOutletTemperatureControl(erv_info['SupplyAirOutletTemperatureControl'])
|
393
400
|
heat_exchanger_air_to_air_sensible_and_latent.setFrostControlType(erv_info['FrostControlType'])
|
394
401
|
heat_exchanger_air_to_air_sensible_and_latent.setEconomizerLockout(erv_info['EconomizerLockout'])
|
@@ -1816,19 +1823,19 @@ class NECB2011
|
|
1816
1823
|
# Determine if space is heated or cooled via spacetype heating or cooling setpoints also checking if the space is
|
1817
1824
|
# a plenum by checking if there is a hvac system associtated with it
|
1818
1825
|
if sp_type_info['heating_setpoint_schedule'].nil?
|
1819
|
-
heated =
|
1826
|
+
heated = false
|
1820
1827
|
else
|
1821
|
-
heated =
|
1828
|
+
heated = true
|
1822
1829
|
end
|
1823
1830
|
if sp_type_info['cooling_setpoint_schedule'].nil?
|
1824
|
-
cooled =
|
1831
|
+
cooled = false
|
1825
1832
|
else
|
1826
|
-
cooled =
|
1833
|
+
cooled = true
|
1827
1834
|
end
|
1828
1835
|
if (sp_type_info['necb_hvac_system_selection_type'] == '- undefined -') || /undefined/.match(sp_type_info['necb_hvac_system_selection_type'])
|
1829
|
-
not_plenum =
|
1836
|
+
not_plenum = false
|
1830
1837
|
else
|
1831
|
-
not_plenum =
|
1838
|
+
not_plenum = true
|
1832
1839
|
end
|
1833
1840
|
# If the spaces are heated or cooled and are not a plenum then continue
|
1834
1841
|
if (heated || cooled) && not_plenum
|
@@ -224,10 +224,6 @@ class NECB2011
|
|
224
224
|
qaqc = {}
|
225
225
|
qaqc[:sql_data] = get_sql_tables_to_json(model)
|
226
226
|
error_warning = []
|
227
|
-
qaqc[:os_standards_revision] = OpenstudioStandards.git_revision
|
228
|
-
qaqc[:os_standards_version] = OpenstudioStandards::VERSION
|
229
|
-
qaqc[:openstudio_version] = os_version.strip
|
230
|
-
qaqc[:energyplus_version] = eplus_version.strip
|
231
227
|
# Store Building data.
|
232
228
|
qaqc[:building] = {}
|
233
229
|
qaqc[:building][:name] = model.building.get.name.get
|
@@ -112,7 +112,7 @@ class BTAPDatapoint
|
|
112
112
|
epw_file = @options[:epw_file]
|
113
113
|
epw_dir = nil
|
114
114
|
local_epw_file_path = File.join(input_folder_cache,@options[:epw_file])
|
115
|
-
epw_dir = input_folder_cache if File.
|
115
|
+
epw_dir = input_folder_cache if File.exist? local_epw_file_path
|
116
116
|
weather_file_path = OpenstudioStandards::Weather.get_standards_weather_file_path(epw_file)
|
117
117
|
OpenstudioStandards::Weather.model_set_building_location(model, weather_file_path: weather_file_path)
|
118
118
|
else
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstudio-standards
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Adams
|
@@ -39,274 +39,288 @@ authors:
|
|
39
39
|
autorequire:
|
40
40
|
bindir: bin
|
41
41
|
cert_chain: []
|
42
|
-
date: 2024-
|
42
|
+
date: 2024-05-17 00:00:00.000000000 Z
|
43
43
|
dependencies:
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
45
|
+
name: bundler
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
|
-
- -
|
48
|
+
- - "~>"
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
50
|
+
version: 2.4.10
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
|
-
- -
|
55
|
+
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version:
|
57
|
+
version: 2.4.10
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
59
|
+
name: nokogiri
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- - "
|
62
|
+
- - "~>"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
64
|
+
version: '1.16'
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- - "
|
69
|
+
- - "~>"
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
71
|
+
version: '1.16'
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
73
|
+
name: parallel_tests
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
|
-
- - "
|
76
|
+
- - "~>"
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
78
|
+
version: 3.7.0
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- - "
|
83
|
+
- - "~>"
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: 3.7.0
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
|
-
name:
|
87
|
+
name: aes
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - '='
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
92
|
+
version: 0.5.0
|
93
93
|
type: :development
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- -
|
97
|
+
- - '='
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
99
|
+
version: 0.5.0
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
|
-
name:
|
101
|
+
name: codecov
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- - "
|
104
|
+
- - ">="
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version: '
|
106
|
+
version: '0'
|
107
107
|
type: :development
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- - "
|
111
|
+
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
113
|
+
version: '0'
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
|
-
name:
|
115
|
+
name: google_drive
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
|
-
- - "
|
118
|
+
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
120
|
+
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
|
-
- - "
|
125
|
+
- - ">="
|
126
126
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
127
|
+
version: '0'
|
128
128
|
- !ruby/object:Gem::Dependency
|
129
|
-
name:
|
129
|
+
name: minitest
|
130
130
|
requirement: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
132
132
|
- - "~>"
|
133
133
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
134
|
+
version: 5.14.0
|
135
135
|
type: :development
|
136
136
|
prerelease: false
|
137
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
139
|
- - "~>"
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
141
|
+
version: 5.14.0
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
143
|
+
name: minitest-ci
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
requirements:
|
146
|
-
- - "
|
146
|
+
- - ">="
|
147
147
|
- !ruby/object:Gem::Version
|
148
|
-
version: '0
|
148
|
+
version: '0'
|
149
149
|
type: :development
|
150
150
|
prerelease: false
|
151
151
|
version_requirements: !ruby/object:Gem::Requirement
|
152
152
|
requirements:
|
153
|
-
- - "
|
153
|
+
- - ">="
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version: '0
|
155
|
+
version: '0'
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
|
-
name:
|
157
|
+
name: minitest-parallel_fork
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
|
-
- -
|
160
|
+
- - ">="
|
161
161
|
- !ruby/object:Gem::Version
|
162
|
-
version: 0
|
162
|
+
version: '0'
|
163
163
|
type: :development
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
166
166
|
requirements:
|
167
|
-
- -
|
167
|
+
- - ">="
|
168
168
|
- !ruby/object:Gem::Version
|
169
|
-
version: 0
|
169
|
+
version: '0'
|
170
170
|
- !ruby/object:Gem::Dependency
|
171
|
-
name:
|
171
|
+
name: minitest-reporters
|
172
172
|
requirement: !ruby/object:Gem::Requirement
|
173
173
|
requirements:
|
174
174
|
- - "~>"
|
175
175
|
- !ruby/object:Gem::Version
|
176
|
-
version:
|
176
|
+
version: 1.4.2
|
177
177
|
type: :development
|
178
178
|
prerelease: false
|
179
179
|
version_requirements: !ruby/object:Gem::Requirement
|
180
180
|
requirements:
|
181
181
|
- - "~>"
|
182
182
|
- !ruby/object:Gem::Version
|
183
|
-
version:
|
183
|
+
version: 1.4.2
|
184
184
|
- !ruby/object:Gem::Dependency
|
185
|
-
name:
|
185
|
+
name: openstudio-api-stubs
|
186
186
|
requirement: !ruby/object:Gem::Requirement
|
187
187
|
requirements:
|
188
|
-
- - "
|
188
|
+
- - ">="
|
189
189
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
190
|
+
version: '0'
|
191
191
|
type: :development
|
192
192
|
prerelease: false
|
193
193
|
version_requirements: !ruby/object:Gem::Requirement
|
194
194
|
requirements:
|
195
|
-
- - "
|
195
|
+
- - ">="
|
196
196
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
197
|
+
version: '0'
|
198
198
|
- !ruby/object:Gem::Dependency
|
199
|
-
name:
|
199
|
+
name: rake
|
200
200
|
requirement: !ruby/object:Gem::Requirement
|
201
201
|
requirements:
|
202
202
|
- - "~>"
|
203
203
|
- !ruby/object:Gem::Version
|
204
|
-
version: '
|
204
|
+
version: '13.0'
|
205
205
|
type: :development
|
206
206
|
prerelease: false
|
207
207
|
version_requirements: !ruby/object:Gem::Requirement
|
208
208
|
requirements:
|
209
209
|
- - "~>"
|
210
210
|
- !ruby/object:Gem::Version
|
211
|
-
version: '
|
211
|
+
version: '13.0'
|
212
212
|
- !ruby/object:Gem::Dependency
|
213
|
-
name:
|
213
|
+
name: rest-client
|
214
214
|
requirement: !ruby/object:Gem::Requirement
|
215
215
|
requirements:
|
216
|
-
- - "
|
216
|
+
- - "~>"
|
217
217
|
- !ruby/object:Gem::Version
|
218
|
-
version:
|
218
|
+
version: 2.0.2
|
219
219
|
type: :development
|
220
220
|
prerelease: false
|
221
221
|
version_requirements: !ruby/object:Gem::Requirement
|
222
222
|
requirements:
|
223
|
-
- - "
|
223
|
+
- - "~>"
|
224
224
|
- !ruby/object:Gem::Version
|
225
|
-
version:
|
225
|
+
version: 2.0.2
|
226
226
|
- !ruby/object:Gem::Dependency
|
227
|
-
name:
|
227
|
+
name: roo
|
228
228
|
requirement: !ruby/object:Gem::Requirement
|
229
229
|
requirements:
|
230
|
-
- -
|
230
|
+
- - '='
|
231
231
|
- !ruby/object:Gem::Version
|
232
|
-
version:
|
232
|
+
version: 2.7.1
|
233
233
|
type: :development
|
234
234
|
prerelease: false
|
235
235
|
version_requirements: !ruby/object:Gem::Requirement
|
236
236
|
requirements:
|
237
|
-
- -
|
237
|
+
- - '='
|
238
238
|
- !ruby/object:Gem::Version
|
239
|
-
version:
|
239
|
+
version: 2.7.1
|
240
240
|
- !ruby/object:Gem::Dependency
|
241
|
-
name:
|
241
|
+
name: rubocop
|
242
242
|
requirement: !ruby/object:Gem::Requirement
|
243
243
|
requirements:
|
244
|
-
- -
|
244
|
+
- - '='
|
245
245
|
- !ruby/object:Gem::Version
|
246
|
-
version: '
|
246
|
+
version: '1.50'
|
247
247
|
type: :development
|
248
248
|
prerelease: false
|
249
249
|
version_requirements: !ruby/object:Gem::Requirement
|
250
250
|
requirements:
|
251
|
-
- -
|
251
|
+
- - '='
|
252
252
|
- !ruby/object:Gem::Version
|
253
|
-
version: '
|
253
|
+
version: '1.50'
|
254
254
|
- !ruby/object:Gem::Dependency
|
255
|
-
name:
|
255
|
+
name: rubocop-checkstyle_formatter
|
256
256
|
requirement: !ruby/object:Gem::Requirement
|
257
257
|
requirements:
|
258
|
-
- -
|
258
|
+
- - "~>"
|
259
259
|
- !ruby/object:Gem::Version
|
260
|
-
version:
|
260
|
+
version: 0.6.0
|
261
261
|
type: :development
|
262
262
|
prerelease: false
|
263
263
|
version_requirements: !ruby/object:Gem::Requirement
|
264
264
|
requirements:
|
265
|
-
- -
|
265
|
+
- - "~>"
|
266
266
|
- !ruby/object:Gem::Version
|
267
|
-
version:
|
267
|
+
version: 0.6.0
|
268
268
|
- !ruby/object:Gem::Dependency
|
269
|
-
name:
|
269
|
+
name: ruby-progressbar
|
270
270
|
requirement: !ruby/object:Gem::Requirement
|
271
271
|
requirements:
|
272
|
-
- -
|
272
|
+
- - ">="
|
273
273
|
- !ruby/object:Gem::Version
|
274
|
-
version: 0
|
274
|
+
version: '0'
|
275
275
|
type: :development
|
276
276
|
prerelease: false
|
277
277
|
version_requirements: !ruby/object:Gem::Requirement
|
278
278
|
requirements:
|
279
|
-
- -
|
279
|
+
- - ">="
|
280
280
|
- !ruby/object:Gem::Version
|
281
|
-
version: 0
|
281
|
+
version: '0'
|
282
282
|
- !ruby/object:Gem::Dependency
|
283
|
-
name:
|
283
|
+
name: rubyXL
|
284
|
+
requirement: !ruby/object:Gem::Requirement
|
285
|
+
requirements:
|
286
|
+
- - "~>"
|
287
|
+
- !ruby/object:Gem::Version
|
288
|
+
version: '3.4'
|
289
|
+
type: :development
|
290
|
+
prerelease: false
|
291
|
+
version_requirements: !ruby/object:Gem::Requirement
|
292
|
+
requirements:
|
293
|
+
- - "~>"
|
294
|
+
- !ruby/object:Gem::Version
|
295
|
+
version: '3.4'
|
296
|
+
- !ruby/object:Gem::Dependency
|
297
|
+
name: simplecov
|
284
298
|
requirement: !ruby/object:Gem::Requirement
|
285
299
|
requirements:
|
286
300
|
- - '='
|
287
301
|
- !ruby/object:Gem::Version
|
288
|
-
version:
|
302
|
+
version: 0.22.0
|
289
303
|
type: :development
|
290
304
|
prerelease: false
|
291
305
|
version_requirements: !ruby/object:Gem::Requirement
|
292
306
|
requirements:
|
293
307
|
- - '='
|
294
308
|
- !ruby/object:Gem::Version
|
295
|
-
version:
|
309
|
+
version: 0.22.0
|
296
310
|
- !ruby/object:Gem::Dependency
|
297
|
-
name:
|
311
|
+
name: yard
|
298
312
|
requirement: !ruby/object:Gem::Requirement
|
299
313
|
requirements:
|
300
|
-
- - "
|
314
|
+
- - "~>"
|
301
315
|
- !ruby/object:Gem::Version
|
302
|
-
version: '0'
|
316
|
+
version: '0.9'
|
303
317
|
type: :development
|
304
318
|
prerelease: false
|
305
319
|
version_requirements: !ruby/object:Gem::Requirement
|
306
320
|
requirements:
|
307
|
-
- - "
|
321
|
+
- - "~>"
|
308
322
|
- !ruby/object:Gem::Version
|
309
|
-
version: '0'
|
323
|
+
version: '0.9'
|
310
324
|
- !ruby/object:Gem::Dependency
|
311
325
|
name: tbd
|
312
326
|
requirement: !ruby/object:Gem::Requirement
|
@@ -640,7 +654,6 @@ files:
|
|
640
654
|
- data/geometry/DOERefWarehouse.json
|
641
655
|
- data/geometry/DOERefWarehouse.osm
|
642
656
|
- data/inventory/thermal_bridging.csv
|
643
|
-
- data/standards/OpenStudio_Standards-deer-comstock.xlsx
|
644
657
|
- data/standards/exclude_list.csv
|
645
658
|
- data/standards/export_OpenStudio_libraries.rb
|
646
659
|
- data/standards/legacy_dd_results.csv
|
@@ -650,7 +663,6 @@ files:
|
|
650
663
|
- data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv
|
651
664
|
- data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1space_types.csv
|
652
665
|
- data/standards/metadata_units_OpenStudio_Standards-deer-ALL-comstockspace_types.csv
|
653
|
-
- data/standards/openstudio_standards_duplicates_log.csv
|
654
666
|
- data/standards/templates_to_climate_zones.json
|
655
667
|
- data/standards/test_performance_expected_dd_results.csv
|
656
668
|
- data/weather/ARCATA_725945_CZ2010.ddy
|
@@ -2516,7 +2528,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2516
2528
|
- !ruby/object:Gem::Version
|
2517
2529
|
version: 1.3.6
|
2518
2530
|
requirements: []
|
2519
|
-
rubygems_version: 3.
|
2531
|
+
rubygems_version: 3.4.10
|
2520
2532
|
signing_key:
|
2521
2533
|
specification_version: 4
|
2522
2534
|
summary: Creates OpenStudio models of typical buildings, creates standard baselines
|
Binary file
|
@@ -1,5 +0,0 @@
|
|
1
|
-
Spreadsheet Name,Worksheet Name,Object Index in Worksheet,Similarity of Duplicate,Duplicate Object
|
2
|
-
OpenStudio_Standards-ashrae_90_1,refrigerated_cases,38,different,90.1-2004|Any|Service Deli Cases|
|
3
|
-
OpenStudio_Standards-ashrae_90_1,refrigerated_cases,80,different,90.1-2007|Any|Service Deli Cases|
|
4
|
-
OpenStudio_Standards-ashrae_90_1,refrigerated_cases,122,different,90.1-2010|Any|Service Deli Cases|
|
5
|
-
OpenStudio_Standards-ashrae_90_1,refrigerated_cases,164,different,90.1-2013|Any|Service Deli Cases|
|