honeybee-openstudio 2.31.12 → 2.32.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee8eec97c23c887d5b2dd7b58552f50263b297d8e742026ed6d1fc570ba62877
4
- data.tar.gz: 0d308433a4b52972492f5ad5681fd255244b029481eee40eafa219f9c1cf4402
3
+ metadata.gz: 1927df270811214605f2db5ed8f390dfff4213b4b8e749c6049ddf074a8be94d
4
+ data.tar.gz: 0b01e83fac83f8e9950627ce130fbfbb194288230fd2c36c11f6d3b988fb2e34
5
5
  SHA512:
6
- metadata.gz: b0cef0873f51d1f92b7c0051721552a0439581e266c2b2c11a7908effea697957136c1860a04d80e8d7a314d41757fae1ca490a20bfcc83f63b22b75c3af0efc
7
- data.tar.gz: 201801ee7a4ce00794c9358e879f5fdc0116e97d33181587e9f3e1bb1940d336ace21ef5253731e4caecf611f749a055aafdbb4433803cfdf3d9505252b8ff72
6
+ metadata.gz: 672dc0bca8b45b6cf45f0af19225d86ee828ecc27c62c65d8231627ef6c0ddb677cc32a8d2c4b3364fbe51eacbbc4bdcfa84b7d3dc129b6941e8fec0416f1c0c
7
+ data.tar.gz: 20c019e91bbf78bd27c009d48db0305b5bfc0cf97f7e80868c54172e0d8409a83b892ed41b806c6225fcd77a2a8376b5a01f0cd08958d27c3bcbf96fd9c3851e
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'honeybee-openstudio'
7
- spec.version = '2.31.12'
7
+ spec.version = '2.32.0'
8
8
  spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
9
9
  spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
10
10
 
@@ -9,7 +9,7 @@ if allow_local && File.exist?('../openstudio-common-measures-gem')
9
9
  elsif allow_local
10
10
  gem 'openstudio-common-measures', github: 'NREL/openstudio-common-measures-gem', branch: 'develop'
11
11
  else
12
- gem 'openstudio-common-measures', '~> 0.6.0'
12
+ gem 'openstudio-common-measures', '~> 0.6.1'
13
13
  end
14
14
 
15
15
  if allow_local && File.exist?('../openstudio-model-articulation-gem')
@@ -25,7 +25,7 @@ if allow_local && File.exist?('../urbanopt-geojson-gem')
25
25
  elsif allow_local
26
26
  gem 'urbanopt-geojson', github: 'URBANopt/urbanopt-geojson-gem', branch: 'develop'
27
27
  else
28
- gem 'urbanopt-geojson', '~> 0.8.0'
28
+ gem 'urbanopt-geojson', '~> 0.8.1'
29
29
  end
30
30
 
31
31
  if allow_local && File.exist?('../urbanopt-reporting-gem')
@@ -33,7 +33,7 @@ if allow_local && File.exist?('../urbanopt-reporting-gem')
33
33
  elsif allow_local
34
34
  gem 'urbanopt-reporting', github: 'URBANopt/urbanopt-reporting-gem', branch: 'develop'
35
35
  else
36
- gem 'urbanopt-reporting', '~> 0.6.0'
36
+ gem 'urbanopt-reporting', '~> 0.6.1'
37
37
  end
38
38
 
39
39
  # include the honeybee-openstudio-gem
@@ -125,6 +125,17 @@ module Honeybee
125
125
  result = {type: 'Ground'}
126
126
  elsif surface_bc == 'Adiabatic'
127
127
  result = {type: 'Adiabatic'}
128
+ elsif surface_bc == 'OtherSideCoefficients'
129
+ result = {type: 'OtherSideTemperature'}
130
+ unless surface.surfacePropertyOtherSideCoefficients.empty?
131
+ srf_prop = surface.surfacePropertyOtherSideCoefficients.get
132
+ if !srf_prop.isConstantTemperatureDefaulted
133
+ result[:temperature] = srf_prop.constantTemperature
134
+ end
135
+ unless srf_prop.combinedConvectiveRadiativeFilmCoefficient.empty?
136
+ result[:heat_transfer_coefficient] = srf_prop.combinedConvectiveRadiativeFilmCoefficient.get
137
+ end
138
+ end
128
139
  else
129
140
  sun_exposure = (surface.sunExposure == 'SunExposed')
130
141
  wind_exposure = (surface.windExposure == 'WindExposed')
@@ -103,7 +103,7 @@ module Honeybee
103
103
  end
104
104
 
105
105
  # assign the boundary condition
106
- boundary_condition = (@hash[:boundary_condition][:type])
106
+ boundary_condition = @hash[:boundary_condition][:type]
107
107
  case boundary_condition
108
108
  when 'Outdoors'
109
109
  if @hash[:boundary_condition][:sun_exposure] == false
@@ -129,9 +129,28 @@ module Honeybee
129
129
  surface = surface_object.get
130
130
  os_surface.setAdjacentSurface(surface)
131
131
  end
132
+ when 'OtherSideTemperature'
133
+ srf_prop = OpenStudio::Model::SurfacePropertyOtherSideCoefficients.new(openstudio_model)
134
+ srf_prop.setName(@hash[:identifier] + '_OtherTemp')
135
+ if @hash[:boundary_condition][:heat_transfer_coefficient].is_a? Numeric
136
+ srf_prop.setCombinedConvectiveRadiativeFilmCoefficient(
137
+ @hash[:boundary_condition][:heat_transfer_coefficient])
138
+ else
139
+ srf_prop.setCombinedConvectiveRadiativeFilmCoefficient(0)
140
+ end
141
+ if @hash[:boundary_condition][:temperature].is_a? Numeric
142
+ srf_prop.setConstantTemperature(@hash[:boundary_condition][:temperature])
143
+ srf_prop.setConstantTemperatureCoefficient(1)
144
+ srf_prop.setExternalDryBulbTemperatureCoefficient(0)
145
+ else
146
+ srf_prop.setConstantTemperatureCoefficient(0)
147
+ srf_prop.setExternalDryBulbTemperatureCoefficient(1)
148
+ end
149
+ os_surface.setSurfacePropertyOtherSideCoefficients(srf_prop)
132
150
  end
133
- unless @hash[:boundary_condition][:type] == 'Surface'
134
- os_surface.setOutsideBoundaryCondition(@hash[:boundary_condition][:type])
151
+
152
+ unless boundary_condition == 'Surface' || boundary_condition == 'OtherSideTemperature'
153
+ os_surface.setOutsideBoundaryCondition(boundary_condition)
135
154
  end
136
155
 
137
156
  # assign apertures if they exist
@@ -211,6 +211,11 @@ module Honeybee
211
211
  os_surface.setConstruction(interior_construction)
212
212
  end
213
213
  end
214
+ elsif face[:boundary_condition][:type] == 'OtherSideTemperature'
215
+ interior_construction = closest_interior_construction(openstudio_model, os_space, face[:face_type])
216
+ unless interior_construction.nil?
217
+ os_surface.setConstruction(interior_construction)
218
+ end
214
219
  end
215
220
  end
216
221
 
@@ -312,10 +317,12 @@ module Honeybee
312
317
 
313
318
  # assign service hot water if it exists
314
319
  if @hash[:properties][:energy][:service_hot_water]
315
- shw_space = ServiceHotWaterAbridged.new(@hash[:properties][:energy][:service_hot_water])
316
- os_shw_space = shw_space.to_openstudio(
317
- openstudio_model, os_space, @hash[:properties][:energy][:shw])
318
- $shw_for_plant = shw_space
320
+ if @hash[:properties][:energy][:service_hot_water][:flow_per_area].to_f != 0
321
+ shw_space = ServiceHotWaterAbridged.new(@hash[:properties][:energy][:service_hot_water])
322
+ os_shw_space = shw_space.to_openstudio(
323
+ openstudio_model, os_space, @hash[:properties][:energy][:shw])
324
+ $shw_for_plant = shw_space
325
+ end
319
326
  end
320
327
 
321
328
  # assign infiltration if it exists
@@ -454,10 +454,12 @@ module Honeybee
454
454
  program_type_id = room[:properties][:energy][:program_type]
455
455
  shw_hash = $programtype_shw_hash[program_type_id]
456
456
  unless shw_hash.nil?
457
- shw_object = ServiceHotWaterAbridged.new(shw_hash)
458
- openstudio_shw = shw_object.to_openstudio(
459
- @openstudio_model, openstudio_room, room[:properties][:energy][:shw])
460
- $shw_for_plant = shw_object
457
+ if shw_hash[:flow_per_area].to_f != 0
458
+ shw_object = ServiceHotWaterAbridged.new(shw_hash)
459
+ openstudio_shw = shw_object.to_openstudio(
460
+ @openstudio_model, openstudio_room, room[:properties][:energy][:shw])
461
+ $shw_for_plant = shw_object
462
+ end
461
463
  end
462
464
  end
463
465
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybee-openstudio
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.31.12
4
+ version: 2.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanushree Charan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2022-07-25 00:00:00.000000000 Z
14
+ date: 2022-09-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler