openstudio-standards 0.6.0.rc2 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- 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|
|