honeybee-openstudio 2.31.1 → 2.31.5

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: f9b620209ce330fea574204c6257db0a2e22f6e898de0d0b27a7d20360fd5296
4
- data.tar.gz: 3f294beea759ed0789cd3928d023edbd4f97697c2179cb77d5e7be971d4ed0a7
3
+ metadata.gz: 58dd2e87b690f4b71e259cf22dce6a44030c3b57a9142c6a361d6cfe68ae4260
4
+ data.tar.gz: 8d4e56c13e0892e3b7d4468e05e07cbe3720802d82bbc102385dfe71f0a99867
5
5
  SHA512:
6
- metadata.gz: dffa3a850ebe2f9b0bc03e67cba8329d1a8d7b4a4c7081cf0a751e3e423795dfb7b90028975efa92cf1d78405117b3dacd3d68e6f1e513ba93e772914ebe8475
7
- data.tar.gz: 1b244c65a2df322052c5d522564199a0ac0e49b7dc1aadb7d6c297c24e4ed48d26d19305e3ec49caee382939ea96b7ea3f54aff3d4b02b1127d904e394b1560f
6
+ metadata.gz: dabe27301e879bb2bd595a929f4f829f578063acaee934ae94dfd25c0c491ff64eb76092fe380225a64b4c489a4ada2b2f5fcd21b8cd48832873611ae9d1a26d
7
+ data.tar.gz: 708afc3119a473bbbe3a2f9acc3e3a6674140014dddefbbaae0b6b9b45f2bc9f893f08f1f06caa2471e85df38bc52d1fdaf85249f7295787e1414430aeb21b2c
@@ -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.1'
7
+ spec.version = '2.31.5'
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
 
@@ -79,13 +79,17 @@ module Honeybee
79
79
  # set room energy properties
80
80
  unless space.defaultConstructionSet.empty?
81
81
  const_set = space.defaultConstructionSet.get
82
- hash[:construction_set] = const_set.nameString
82
+ c_set_name = const_set.nameString
83
+ unless c_set_name == 'Default Generic Construction Set'
84
+ hash[:construction_set] = const_set.nameString
85
+ end
83
86
  end
84
87
  unless space.spaceType.empty?
85
88
  space_type = space.spaceType.get
86
89
  hash[:program_type] = space_type.nameString
87
90
  end
88
- # TODO: These are loads assigned to the space directly. How should duplicates created in programtype, if any, be handled?
91
+ # TODO: These are only loads assigned to the space directly.
92
+ # Duplicates and other definitions created in programtype should be summed
89
93
  unless space.people.empty?
90
94
  space.people.each do |people|
91
95
  people_def = people.peopleDefinition
@@ -100,6 +104,7 @@ module Honeybee
100
104
  end
101
105
  end
102
106
  end
107
+
103
108
  unless space.lights.empty?
104
109
  space.lights.each do |light|
105
110
  light_def = light.lightsDefinition
@@ -114,6 +119,7 @@ module Honeybee
114
119
  end
115
120
  end
116
121
  end
122
+
117
123
  unless space.electricEquipment.empty?
118
124
  space.electricEquipment.each do |electric_eq|
119
125
  electric_eq_def = electric_eq.electricEquipmentDefinition
@@ -128,6 +134,7 @@ module Honeybee
128
134
  end
129
135
  end
130
136
  end
137
+
131
138
  unless space.gasEquipment.empty?
132
139
  space.gasEquipment.each do |gas_eq|
133
140
  gas_eq_def = gas_eq.gasEquipmentDefinition
@@ -142,18 +149,7 @@ module Honeybee
142
149
  end
143
150
  end
144
151
  end
145
- unless space.otherEquipment.empty?
146
- hash[:process_loads] = []
147
- space.otherEquipment.each do |other_eq|
148
- other_eq_def = other_eq.otherEquipmentDefinition
149
- if !other_eq_def.designLevel.empty? && !other_eq.schedule.empty?
150
- sch = other_eq.schedule.get
151
- if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
152
- hash[:process_loads] << Honeybee::ProcessAbridged.from_load(other_eq)
153
- end
154
- end
155
- end
156
- end
152
+
157
153
  unless space.spaceInfiltrationDesignFlowRates.empty?
158
154
  space.spaceInfiltrationDesignFlowRates.each do |infiltration|
159
155
  # Only translate if flow per exterior area is specified
@@ -167,12 +163,41 @@ module Honeybee
167
163
  end
168
164
  end
169
165
  end
166
+
167
+ unless space.waterUseEquipment.empty?
168
+ space.waterUseEquipment.each do |shw_equipment|
169
+ # Check if schedule exists and is of the correct type
170
+ unless shw_equipment.flowRateFractionSchedule.empty?
171
+ sch = shw_equipment.flowRateFractionSchedule.get
172
+ if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
173
+ floor_area = space.floorArea # Get floor area
174
+ hash[:service_hot_water] = Honeybee::ServiceHotWaterAbridged.from_load(shw_equipment, floor_area)
175
+ end
176
+ end
177
+ end
178
+ end
179
+
170
180
  unless space.designSpecificationOutdoorAir.empty?
171
181
  hash[:ventilation] = Honeybee::VentilationAbridged.from_load(space.designSpecificationOutdoorAir.get)
172
182
  end
183
+
184
+ unless space.otherEquipment.empty?
185
+ hash[:process_loads] = []
186
+ space.otherEquipment.each do |other_eq|
187
+ other_eq_def = other_eq.otherEquipmentDefinition
188
+ if !other_eq_def.designLevel.empty? && !other_eq.schedule.empty?
189
+ sch = other_eq.schedule.get
190
+ if sch.to_ScheduleRuleset.is_initialized or sch.to_ScheduleFixedInterval.is_initialized
191
+ hash[:process_loads] << Honeybee::ProcessAbridged.from_load(other_eq)
192
+ end
193
+ end
194
+ end
195
+ end
196
+
173
197
  unless space.daylightingControls.empty?
174
198
  hash[:daylighting_control] = Honeybee::DaylightingControl.from_load(space.daylightingControls[0])
175
199
  end
200
+
176
201
  thermal_zone = space.thermalZone
177
202
  unless thermal_zone.empty?
178
203
  thermal_zone = space.thermalZone.get
@@ -0,0 +1,57 @@
1
+ # *******************************************************************************
2
+ # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
3
+ # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # (1) Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # (3) Neither the name of the copyright holder nor the names of any contributors
16
+ # may be used to endorse or promote products derived from this software without
17
+ # specific prior written permission from the respective party.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
23
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
24
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
26
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # *******************************************************************************
31
+
32
+ require 'honeybee/load/service_hot_water'
33
+ require 'to_openstudio/model_object'
34
+
35
+ module Honeybee
36
+ class ServiceHotWaterAbridged
37
+
38
+ def self.from_load(load, floor_area)
39
+ # create an empty hash
40
+ hash = {}
41
+ hash[:type] = 'ServiceHotWaterAbridged'
42
+ # set hash values from OpenStudio Object
43
+ hash[:identifier] = clean_name(load.nameString)
44
+ load_def = load.waterUseEquipmentDefinition
45
+ # units of peak flow rate are m3/s
46
+ peak_flow = load_def.peakFlowRate
47
+ # unit for flow per area is L/h-m2 (m3/s = 3600000 L/h)
48
+ hash[:flow_per_area] = (peak_flow * 3600000) / floor_area
49
+ unless load.flowRateFractionSchedule.empty?
50
+ schedule = load.flowRateFractionSchedule.get
51
+ hash[:schedule] = schedule.nameString
52
+ end
53
+
54
+ hash
55
+ end
56
+ end #ServiceHotWaterAbridged
57
+ end #Honeybee
@@ -80,6 +80,7 @@ require 'from_openstudio/load/infiltration'
80
80
  require 'from_openstudio/load/ventilation'
81
81
  require 'from_openstudio/load/daylight'
82
82
  require 'from_openstudio/load/process'
83
+ require 'from_openstudio/load/service_hot_water'
83
84
 
84
85
  # extend the program type objects
85
86
  require 'from_openstudio/program_type'
@@ -52,6 +52,7 @@ module Honeybee
52
52
  @@extension ||= Extension.new
53
53
  @@schema ||= @@extension.schema
54
54
  @@standards ||= @@extension.standards
55
+ $triangulate_sub_faces = false
55
56
  $simple_window_cons = false
56
57
 
57
58
  @hash = hash
@@ -54,7 +54,7 @@ module Honeybee
54
54
  final_vertices_list = []
55
55
  matching_os_subsurfaces = []
56
56
  matching_os_subsurface_indices = []
57
- if os_vertices.size > 4
57
+ if $triangulate_sub_faces && os_vertices.size > 4
58
58
 
59
59
  # if this apeture has a matched apeture, see if the other one has already been created
60
60
  # the matched apeture should have been converted to multiple subsurfaces
@@ -54,7 +54,7 @@ module Honeybee
54
54
  final_vertices_list = []
55
55
  matching_os_subsurfaces = []
56
56
  matching_os_subsurface_indices = []
57
- if os_vertices.size > 4
57
+ if $triangulate_sub_faces && os_vertices.size > 4
58
58
 
59
59
  # if this door has a matched door, see if the other one has already been created
60
60
  # the matched door should have been converted to multiple subsurfaces
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.1
4
+ version: 2.31.5
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-03-27 00:00:00.000000000 Z
14
+ date: 2022-04-22 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -184,6 +184,7 @@ files:
184
184
  - lib/from_openstudio/load/lighting.rb
185
185
  - lib/from_openstudio/load/people.rb
186
186
  - lib/from_openstudio/load/process.rb
187
+ - lib/from_openstudio/load/service_hot_water.rb
187
188
  - lib/from_openstudio/load/ventilation.rb
188
189
  - lib/from_openstudio/material/opaque.rb
189
190
  - lib/from_openstudio/material/opaque_no_mass.rb