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 +4 -4
- data/honeybee-openstudio.gemspec +1 -1
- data/lib/from_openstudio/geometry/room.rb +39 -14
- data/lib/from_openstudio/load/service_hot_water.rb +57 -0
- data/lib/from_openstudio.rb +1 -0
- data/lib/honeybee/model.rb +1 -0
- data/lib/to_openstudio/geometry/aperture.rb +1 -1
- data/lib/to_openstudio/geometry/door.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58dd2e87b690f4b71e259cf22dce6a44030c3b57a9142c6a361d6cfe68ae4260
|
4
|
+
data.tar.gz: 8d4e56c13e0892e3b7d4468e05e07cbe3720802d82bbc102385dfe71f0a99867
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dabe27301e879bb2bd595a929f4f829f578063acaee934ae94dfd25c0c491ff64eb76092fe380225a64b4c489a4ada2b2f5fcd21b8cd48832873611ae9d1a26d
|
7
|
+
data.tar.gz: 708afc3119a473bbbe3a2f9acc3e3a6674140014dddefbbaae0b6b9b45f2bc9f893f08f1f06caa2471e85df38bc52d1fdaf85249f7295787e1414430aeb21b2c
|
data/honeybee-openstudio.gemspec
CHANGED
@@ -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.
|
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
|
-
|
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.
|
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
|
-
|
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
|
data/lib/from_openstudio.rb
CHANGED
@@ -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'
|
data/lib/honeybee/model.rb
CHANGED
@@ -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.
|
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-
|
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
|