honeybee-openstudio 2.35.0 → 2.35.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eadf72cc6184d0f30705481227c69a6bb35a17485856a641a841c797f720bd46
|
4
|
+
data.tar.gz: cbff4e6067b9be01c1df2b545c4a181f863f9a51a5c5cc4f2c6bd5a301558e19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e91999590b5b8b2f15bca7cc073beafd4d310507064b2eea7e883069fcfb761301d3cf22147ef9cdb1fe11cb6db967d06417d1c82534d7b821ef69cc3dc8300
|
7
|
+
data.tar.gz: 6c3aaad16d195b28a4434365d2d94dacd6e639f4baba7ff016b53c16bb0d31105157b59c9417ee5c0d2f9b25f5a735fad265751e771a82e131e9a089482323f4
|
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.35.
|
7
|
+
spec.version = '2.35.2'
|
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
|
|
@@ -112,8 +112,8 @@ module Honeybee
|
|
112
112
|
end
|
113
113
|
|
114
114
|
# Create Honeybee Model JSON from SDD file
|
115
|
-
def translate_from_sdd_file(file)
|
116
|
-
translator = OpenStudio::SDD::
|
115
|
+
def self.translate_from_sdd_file(file)
|
116
|
+
translator = OpenStudio::SDD::SddReverseTranslator.new
|
117
117
|
openstudio_model = translator.loadModel(file)
|
118
118
|
raise "Cannot load SDD file at '#{}'" if openstudio_model.empty?
|
119
119
|
self.translate_from_openstudio(openstudio_model.get)
|
@@ -37,6 +37,7 @@ require 'to_openstudio'
|
|
37
37
|
require 'fileutils'
|
38
38
|
require 'pathname'
|
39
39
|
require 'json'
|
40
|
+
require 'open3'
|
40
41
|
|
41
42
|
# start the measure
|
42
43
|
class FromHoneybeeModel < OpenStudio::Measure::ModelMeasure
|
@@ -133,7 +134,12 @@ class FromHoneybeeModel < OpenStudio::Measure::ModelMeasure
|
|
133
134
|
model.save(osm_path, true)
|
134
135
|
# call the Ironbug console to add the HVAC to the OSM
|
135
136
|
ironbug_exe = '"' + $ironbug_exe + '"'
|
136
|
-
|
137
|
+
ib_cmd = ironbug_exe + ' "' + osm_path + '" "' + hvac_json_path + '"'
|
138
|
+
stdout, stderr, status = Open3.capture3(ib_cmd)
|
139
|
+
if status.exitstatus != 0
|
140
|
+
runner.registerError('Failed to apply IronBug HVAC:' + stderr)
|
141
|
+
return false
|
142
|
+
end
|
137
143
|
# load the new model
|
138
144
|
translator = OpenStudio::OSVersion::VersionTranslator.new
|
139
145
|
o_model = translator.loadModel(osm_path)
|
@@ -162,61 +162,61 @@ module Honeybee
|
|
162
162
|
|
163
163
|
return result
|
164
164
|
end
|
165
|
-
end # Door
|
166
165
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
166
|
+
def to_openstudio_shade(openstudio_model, shading_surface_group)
|
167
|
+
# get the vertices from the door
|
168
|
+
if @hash[:geometry][:vertices].nil?
|
169
|
+
hb_verts = @hash[:geometry][:boundary]
|
170
|
+
else
|
171
|
+
hb_verts = @hash[:geometry][:vertices]
|
172
|
+
end
|
174
173
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
174
|
+
# create the openstudio shading surface
|
175
|
+
os_vertices = OpenStudio::Point3dVector.new
|
176
|
+
hb_verts.each do |vertex|
|
177
|
+
os_vertices << OpenStudio::Point3d.new(vertex[0], vertex[1], vertex[2])
|
178
|
+
end
|
180
179
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
180
|
+
os_shading_surface = OpenStudio::Model::ShadingSurface.new(os_vertices, openstudio_model)
|
181
|
+
os_shading_surface.setName(@hash[:identifier])
|
182
|
+
unless @hash[:display_name].nil?
|
183
|
+
os_shading_surface.setDisplayName(@hash[:display_name])
|
184
|
+
end
|
186
185
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
186
|
+
# get the approriate construction id
|
187
|
+
construction_id = nil
|
188
|
+
if @hash[:properties].key?(:energy) && @hash[:properties][:energy][:construction]
|
189
|
+
construction_id = @hash[:properties][:energy][:construction]
|
190
|
+
elsif @hash[:is_glass] == true
|
191
|
+
construction_id = 'Generic Double Pane'
|
192
|
+
else
|
193
|
+
construction_id = 'Generic Exterior Door'
|
194
|
+
end
|
196
195
|
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
196
|
+
# assign the construction
|
197
|
+
unless construction_id.nil?
|
198
|
+
construction = openstudio_model.getConstructionByName(construction_id)
|
199
|
+
unless construction.empty?
|
200
|
+
os_construction = construction.get
|
201
|
+
os_shading_surface.setConstruction(os_construction)
|
202
|
+
end
|
203
203
|
end
|
204
|
-
end
|
205
204
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
205
|
+
# add a transmittance schedule if a value is found
|
206
|
+
if @hash[:transmit]
|
207
|
+
schedule_identifier = 'Constant ' + @hash[:transmit] + ' Transmittance'
|
208
|
+
schedule = openstudio_model.getScheduleByName(schedule_identifier)
|
209
|
+
unless schedule.empty?
|
210
|
+
os_schedule = schedule.get
|
211
|
+
os_shading_surface.setTransmittanceSchedule(os_schedule)
|
212
|
+
end
|
213
213
|
end
|
214
|
-
end
|
215
214
|
|
216
|
-
|
217
|
-
|
215
|
+
# add the shade to the group
|
216
|
+
os_shading_surface.setShadingSurfaceGroup(shading_surface_group)
|
218
217
|
|
219
|
-
|
220
|
-
|
218
|
+
os_shading_surface
|
219
|
+
end
|
221
220
|
|
221
|
+
end # Door
|
222
222
|
end # Honeybee
|
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.35.
|
4
|
+
version: 2.35.2
|
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: 2023-
|
14
|
+
date: 2023-11-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json_pure
|