honeybee-openstudio 1.8.1 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +5 -5
  2. data/.coveralls.yml +1 -1
  3. data/.gitignore +32 -32
  4. data/.releaserc.json +7 -7
  5. data/.travis.yml +42 -41
  6. data/Gemfile +18 -18
  7. data/LICENSE.md +23 -23
  8. data/README.md +95 -95
  9. data/Rakefile +20 -20
  10. data/doc_templates/LICENSE.md +23 -23
  11. data/doc_templates/copyright_erb.txt +31 -31
  12. data/doc_templates/copyright_js.txt +4 -4
  13. data/doc_templates/copyright_ruby.txt +29 -29
  14. data/honeybee-openstudio.gemspec +35 -35
  15. data/lib/files/Honeybee.rb +112 -112
  16. data/lib/files/honeybee_workflow.osw +47 -47
  17. data/lib/files/urbanopt_Gemfile +32 -32
  18. data/lib/from_honeybee.rb +86 -86
  19. data/lib/from_honeybee/_openapi/model.json +8126 -8126
  20. data/lib/from_honeybee/_openapi/simulation-parameter.json +842 -842
  21. data/lib/from_honeybee/construction/air.rb +64 -64
  22. data/lib/from_honeybee/construction/opaque.rb +76 -76
  23. data/lib/from_honeybee/construction/shade.rb +107 -107
  24. data/lib/from_honeybee/construction/window.rb +80 -80
  25. data/lib/from_honeybee/construction_set.rb +278 -278
  26. data/lib/from_honeybee/extension.rb +109 -109
  27. data/lib/from_honeybee/geometry/aperture.rb +167 -167
  28. data/lib/from_honeybee/geometry/door.rb +160 -160
  29. data/lib/from_honeybee/geometry/face.rb +163 -163
  30. data/lib/from_honeybee/geometry/room.rb +392 -392
  31. data/lib/from_honeybee/geometry/shade.rb +89 -89
  32. data/lib/from_honeybee/hvac/ideal_air.rb +150 -150
  33. data/lib/from_honeybee/load/electric_equipment.rb +95 -95
  34. data/lib/from_honeybee/load/gas_equipment.rb +97 -97
  35. data/lib/from_honeybee/load/infiltration.rb +94 -94
  36. data/lib/from_honeybee/load/lighting.rb +98 -98
  37. data/lib/from_honeybee/load/people.rb +99 -99
  38. data/lib/from_honeybee/load/setpoint_humidistat.rb +74 -74
  39. data/lib/from_honeybee/load/setpoint_thermostat.rb +71 -71
  40. data/lib/from_honeybee/load/ventilation.rb +95 -95
  41. data/lib/from_honeybee/material/opaque.rb +94 -94
  42. data/lib/from_honeybee/material/opaque_no_mass.rb +94 -94
  43. data/lib/from_honeybee/material/window_blind.rb +238 -238
  44. data/lib/from_honeybee/material/window_gas.rb +76 -76
  45. data/lib/from_honeybee/material/window_gas_custom.rb +118 -118
  46. data/lib/from_honeybee/material/window_gas_mixture.rb +79 -79
  47. data/lib/from_honeybee/material/window_glazing.rb +166 -166
  48. data/lib/from_honeybee/material/window_shade.rb +160 -160
  49. data/lib/from_honeybee/material/window_simpleglazsys.rb +73 -73
  50. data/lib/from_honeybee/model.rb +434 -434
  51. data/lib/from_honeybee/model_object.rb +110 -110
  52. data/lib/from_honeybee/program_type.rb +124 -124
  53. data/lib/from_honeybee/schedule/fixed_interval.rb +115 -115
  54. data/lib/from_honeybee/schedule/ruleset.rb +164 -164
  55. data/lib/from_honeybee/schedule/type_limit.rb +88 -88
  56. data/lib/from_honeybee/simulation/designday.rb +105 -105
  57. data/lib/from_honeybee/simulation/extension.rb +46 -46
  58. data/lib/from_honeybee/simulation/parameter.rb +277 -277
  59. data/lib/from_honeybee/version.rb +34 -34
  60. data/lib/measures/from_honeybee_model/LICENSE.md +26 -26
  61. data/lib/measures/from_honeybee_model/README.md +32 -32
  62. data/lib/measures/from_honeybee_model/measure.rb +91 -91
  63. data/lib/measures/from_honeybee_model/measure.xml +103 -103
  64. data/lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb +126 -126
  65. data/lib/measures/from_honeybee_simulation_parameter/LICENSE.md +26 -26
  66. data/lib/measures/from_honeybee_simulation_parameter/README.md +32 -32
  67. data/lib/measures/from_honeybee_simulation_parameter/measure.rb +95 -95
  68. data/lib/measures/from_honeybee_simulation_parameter/measure.xml +91 -91
  69. data/lib/measures/from_honeybee_simulation_parameter/tests/from_honeybee_simulation_parameter_test.rb +109 -109
  70. metadata +2 -2
data/Rakefile CHANGED
@@ -1,21 +1,21 @@
1
- require 'bundler/gem_tasks'
2
- require 'rspec/core/rake_task'
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- require 'rubocop/rake_task'
7
- RuboCop::RakeTask.new
8
-
9
- # Load in the rake tasks from the base openstudio-extension gem
10
- require 'openstudio/extension/rake_task'
11
- require 'from_honeybee/extension'
12
- #require 'from_honeybee/simulation/extension'
13
-
14
- os_extension = OpenStudio::Extension::RakeTask.new
15
- os_extension.set_extension_class(FromHoneybee::Extension)
16
-
17
- #TODO: Does this need to be implemented?
18
- #os_extension.set_extension_class(FromHoneybee::ExtensionSimulationParameter)
19
-
20
- task default: :spec
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ require 'rubocop/rake_task'
7
+ RuboCop::RakeTask.new
8
+
9
+ # Load in the rake tasks from the base openstudio-extension gem
10
+ require 'openstudio/extension/rake_task'
11
+ require 'from_honeybee/extension'
12
+ #require 'from_honeybee/simulation/extension'
13
+
14
+ os_extension = OpenStudio::Extension::RakeTask.new
15
+ os_extension.set_extension_class(FromHoneybee::Extension)
16
+
17
+ #TODO: Does this need to be implemented?
18
+ #os_extension.set_extension_class(FromHoneybee::ExtensionSimulationParameter)
19
+
20
+ task default: :spec
21
21
 
@@ -1,23 +1,23 @@
1
- Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable Energy, LLC,
2
- Ladybug Tools LLC and other contributors. All rights reserved.
3
-
4
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
5
- following conditions are met:
6
-
7
- (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following
8
- disclaimer.
9
-
10
- (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
11
- disclaimer in the documentation and/or other materials provided with the distribution.
12
-
13
- (3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse or promote products
14
- derived from this software without specific prior written permission from the respective party.
15
-
16
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE UNITED STATES GOVERNMENT, OR THE UNITED
19
- STATES DEPARTMENT OF ENERGY, NOR ANY OF THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
21
- USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
22
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
23
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1
+ Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable Energy, LLC,
2
+ Ladybug Tools LLC and other contributors. All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
5
+ following conditions are met:
6
+
7
+ (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following
8
+ disclaimer.
9
+
10
+ (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
11
+ disclaimer in the documentation and/or other materials provided with the distribution.
12
+
13
+ (3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse or promote products
14
+ derived from this software without specific prior written permission from the respective party.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE UNITED STATES GOVERNMENT, OR THE UNITED
19
+ STATES DEPARTMENT OF ENERGY, NOR ANY OF THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
21
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
22
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
23
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,32 +1,32 @@
1
- <%
2
- # *******************************************************************************
3
- # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
4
- # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
5
- #
6
- # Redistribution and use in source and binary forms, with or without
7
- # modification, are permitted provided that the following conditions are met:
8
- #
9
- # (1) Redistributions of source code must retain the above copyright notice,
10
- # this list of conditions and the following disclaimer.
11
- #
12
- # (2) Redistributions in binary form must reproduce the above copyright notice,
13
- # this list of conditions and the following disclaimer in the documentation
14
- # and/or other materials provided with the distribution.
15
- #
16
- # (3) Neither the name of the copyright holder nor the names of any contributors
17
- # may be used to endorse or promote products derived from this software without
18
- # specific prior written permission from the respective party.
19
- #
20
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
21
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
- # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
24
- # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
25
- # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26
- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
27
- # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29
- # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
- # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
- # *******************************************************************************
1
+ <%
2
+ # *******************************************************************************
3
+ # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
4
+ # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ #
9
+ # (1) Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ #
12
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
13
+ # this list of conditions and the following disclaimer in the documentation
14
+ # and/or other materials provided with the distribution.
15
+ #
16
+ # (3) Neither the name of the copyright holder nor the names of any contributors
17
+ # may be used to endorse or promote products derived from this software without
18
+ # specific prior written permission from the respective party.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
21
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
24
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
25
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
27
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ # *******************************************************************************
32
32
  %>
@@ -1,5 +1,5 @@
1
- /* @preserve
2
- * Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable Energy, LLC,
3
- Ladybug Tools LLC and other contributors. All rights reserved.
4
- * Use of this source code is governed by the BSD license.
1
+ /* @preserve
2
+ * Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable Energy, LLC,
3
+ Ladybug Tools LLC and other contributors. All rights reserved.
4
+ * Use of this source code is governed by the BSD license.
5
5
  */
@@ -1,30 +1,30 @@
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.
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
30
  # *******************************************************************************
@@ -1,35 +1,35 @@
1
-
2
- lib = File.expand_path('lib', __dir__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'from_honeybee/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'honeybee-openstudio'
8
- spec.version = '1.8.1'
9
- spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
10
- spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
11
-
12
- spec.summary = 'Gem for translating between Honeybee JSON and OpenStudio Model.'
13
- spec.description = 'Library and measures for translating between Honeybee JSON schema and OpenStudio Model schema (OSM).'
14
- spec.homepage = 'https://github.com/ladybug-tools/honeybee-openstudio-gem'
15
-
16
- # Specify which files should be added to the gem when it is released.
17
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
- end
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = ['lib']
24
-
25
- spec.add_development_dependency 'bundler', '~> 1.14'
26
- spec.add_development_dependency 'rake', '12.3.1'
27
- spec.add_development_dependency 'rspec', '3.7.0'
28
- spec.add_development_dependency 'rubocop', '~> 0.54.0'
29
-
30
- spec.add_dependency 'json-schema'
31
- spec.add_dependency 'json_pure'
32
- spec.add_dependency 'openstudio-extension', '0.1.6'
33
- spec.add_dependency 'openstudio-standards', '~> 0.2.7'
34
- spec.add_dependency 'public_suffix', '~> 3.1.1'
35
- end
1
+
2
+ lib = File.expand_path('lib', __dir__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'from_honeybee/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'honeybee-openstudio'
8
+ spec.version = FromHoneybee::VERSION
9
+ spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
10
+ spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
11
+
12
+ spec.summary = 'Gem for translating between Honeybee JSON and OpenStudio Model.'
13
+ spec.description = 'Library and measures for translating between Honeybee JSON schema and OpenStudio Model schema (OSM).'
14
+ spec.homepage = 'https://github.com/ladybug-tools/honeybee-openstudio-gem'
15
+
16
+ # Specify which files should be added to the gem when it is released.
17
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ end
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ['lib']
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.14'
26
+ spec.add_development_dependency 'rake', '12.3.1'
27
+ spec.add_development_dependency 'rspec', '3.7.0'
28
+ spec.add_development_dependency 'rubocop', '~> 0.54.0'
29
+
30
+ spec.add_dependency 'json-schema'
31
+ spec.add_dependency 'json_pure'
32
+ spec.add_dependency 'openstudio-extension', '0.1.6'
33
+ spec.add_dependency 'openstudio-standards', '~> 0.2.7'
34
+ spec.add_dependency 'public_suffix', '~> 3.1.1'
35
+ end
@@ -1,113 +1,113 @@
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 'urbanopt/scenario'
33
- require 'openstudio/common_measures'
34
- require 'openstudio/model_articulation'
35
-
36
- require 'json'
37
-
38
- module URBANopt
39
- module Scenario
40
- class HoneybeeMapper < SimulationMapperBase
41
-
42
- # class level variables
43
- @@instance_lock = Mutex.new
44
- @@osw = nil
45
- @@geometry = nil
46
-
47
- def initialize()
48
-
49
- # do initialization of class variables in thread safe way
50
- @@instance_lock.synchronize do
51
- if @@osw.nil?
52
-
53
- # load the OSW for this class
54
- osw_path = File.join(File.dirname(__FILE__), 'honeybee_workflow.osw')
55
- File.open(osw_path, 'r') do |file|
56
- @@osw = JSON.parse(file.read, symbolize_names: true)
57
- end
58
-
59
- # configure OSW with extension gem paths for measures and files
60
- # all extension gems must be required before this line
61
- @@osw = OpenStudio::Extension.configure_osw(@@osw)
62
- end
63
- end
64
- end
65
-
66
- def create_osw(scenario, features, feature_names)
67
-
68
- if features.size != 1
69
- raise "Mapper currently cannot simulate more than one feature at a time."
70
- end
71
- feature = features[0]
72
- feature_id = feature.id
73
- feature_type = feature.type
74
- feature_name = feature.name
75
- if feature_names.size == 1
76
- feature_name = feature_names[0]
77
- end
78
-
79
- # deep clone of @@osw before we configure it
80
- osw = Marshal.load(Marshal.dump(@@osw))
81
-
82
- # set the name and description of the OSW to reference this particular feature
83
- osw[:name] = feature_name
84
- osw[:description] = feature_name
85
-
86
- if feature_type == 'Building'
87
- # set the honeybee JSON key to the from_honeybee_model measure
88
- OpenStudio::Extension.set_measure_argument(
89
- osw, 'from_honeybee_model', 'model_json', feature.detailed_model_filename)
90
-
91
- # check if there is a HVAC key in the feature JSON properties
92
- building_hash = feature.to_hash
93
- if building_hash.key?(:system_type)
94
- # assume the typical building measure is in the OSW and add the system type
95
- OpenStudio::Extension.set_measure_argument(
96
- osw, 'create_typical_building_from_model', 'system_type', system_type)
97
- end
98
-
99
- # add the feature id and name to the reporting measure
100
- OpenStudio::Extension.set_measure_argument(
101
- osw, 'default_feature_reports', 'feature_id', feature_id)
102
- OpenStudio::Extension.set_measure_argument(
103
- osw, 'default_feature_reports', 'feature_name', feature_name)
104
- OpenStudio::Extension.set_measure_argument(
105
- osw, 'default_feature_reports', 'feature_type', feature_type)
106
-
107
- end
108
- return osw
109
- end
110
-
111
- end #HoneybeeMapper
112
- end #Scenario
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 'urbanopt/scenario'
33
+ require 'openstudio/common_measures'
34
+ require 'openstudio/model_articulation'
35
+
36
+ require 'json'
37
+
38
+ module URBANopt
39
+ module Scenario
40
+ class HoneybeeMapper < SimulationMapperBase
41
+
42
+ # class level variables
43
+ @@instance_lock = Mutex.new
44
+ @@osw = nil
45
+ @@geometry = nil
46
+
47
+ def initialize()
48
+
49
+ # do initialization of class variables in thread safe way
50
+ @@instance_lock.synchronize do
51
+ if @@osw.nil?
52
+
53
+ # load the OSW for this class
54
+ osw_path = File.join(File.dirname(__FILE__), 'honeybee_workflow.osw')
55
+ File.open(osw_path, 'r') do |file|
56
+ @@osw = JSON.parse(file.read, symbolize_names: true)
57
+ end
58
+
59
+ # configure OSW with extension gem paths for measures and files
60
+ # all extension gems must be required before this line
61
+ @@osw = OpenStudio::Extension.configure_osw(@@osw)
62
+ end
63
+ end
64
+ end
65
+
66
+ def create_osw(scenario, features, feature_names)
67
+
68
+ if features.size != 1
69
+ raise "Mapper currently cannot simulate more than one feature at a time."
70
+ end
71
+ feature = features[0]
72
+ feature_id = feature.id
73
+ feature_type = feature.type
74
+ feature_name = feature.name
75
+ if feature_names.size == 1
76
+ feature_name = feature_names[0]
77
+ end
78
+
79
+ # deep clone of @@osw before we configure it
80
+ osw = Marshal.load(Marshal.dump(@@osw))
81
+
82
+ # set the name and description of the OSW to reference this particular feature
83
+ osw[:name] = feature_name
84
+ osw[:description] = feature_name
85
+
86
+ if feature_type == 'Building'
87
+ # set the honeybee JSON key to the from_honeybee_model measure
88
+ OpenStudio::Extension.set_measure_argument(
89
+ osw, 'from_honeybee_model', 'model_json', feature.detailed_model_filename)
90
+
91
+ # check if there is a HVAC key in the feature JSON properties
92
+ building_hash = feature.to_hash
93
+ if building_hash.key?(:system_type)
94
+ # assume the typical building measure is in the OSW and add the system type
95
+ OpenStudio::Extension.set_measure_argument(
96
+ osw, 'create_typical_building_from_model', 'system_type', system_type)
97
+ end
98
+
99
+ # add the feature id and name to the reporting measure
100
+ OpenStudio::Extension.set_measure_argument(
101
+ osw, 'default_feature_reports', 'feature_id', feature_id)
102
+ OpenStudio::Extension.set_measure_argument(
103
+ osw, 'default_feature_reports', 'feature_name', feature_name)
104
+ OpenStudio::Extension.set_measure_argument(
105
+ osw, 'default_feature_reports', 'feature_type', feature_type)
106
+
107
+ end
108
+ return osw
109
+ end
110
+
111
+ end #HoneybeeMapper
112
+ end #Scenario
113
113
  end #URBANopt