urbanopt-geojson 0.2.0.pre2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +1 -1
  3. data/CHANGELOG.md +61 -0
  4. data/Gemfile +0 -3
  5. data/Rakefile +1 -1
  6. data/docs/package-lock.json +15 -15
  7. data/docs/package.json +3 -1
  8. data/lib/measures/.rubocop.yml +1 -1
  9. data/lib/measures/urban_geometry_creation/README.md +1 -1
  10. data/lib/measures/urban_geometry_creation/measure.rb +4 -0
  11. data/lib/measures/urban_geometry_creation/measure.xml +17 -20
  12. data/lib/measures/urban_geometry_creation_zoning/README.md +1 -1
  13. data/lib/measures/urban_geometry_creation_zoning/measure.rb +6 -3
  14. data/lib/measures/urban_geometry_creation_zoning/measure.xml +15 -18
  15. data/lib/urbanopt/geojson/building.rb +22 -19
  16. data/lib/urbanopt/geojson/feature.rb +37 -1
  17. data/lib/urbanopt/geojson/geo_file.rb +39 -39
  18. data/lib/urbanopt/geojson/helper.rb +12 -5
  19. data/lib/urbanopt/geojson/mapper_classes.rb +46 -46
  20. data/lib/urbanopt/geojson/model.rb +2 -3
  21. data/lib/urbanopt/geojson/schema/building_properties.json +244 -77
  22. data/lib/urbanopt/geojson/schema/electrical_connector_properties.json +8 -8
  23. data/lib/urbanopt/geojson/schema/electrical_junction_properties.json +4 -5
  24. data/lib/urbanopt/geojson/schema/thermal_connector_properties.json +1 -1
  25. data/lib/urbanopt/geojson/schema/thermal_junction_properties.json +1 -1
  26. data/lib/urbanopt/geojson/update_areas.rb +1 -1
  27. data/lib/urbanopt/geojson/validate_geojson.rb +2 -0
  28. data/lib/urbanopt/geojson/version.rb +1 -1
  29. data/lib/urbanopt/geojson/workflows/building.osw.out +4 -4
  30. data/urbanopt-geojson-gem.gemspec +9 -13
  31. metadata +21 -41
  32. data/lib/change_log.rb +0 -147
  33. data/lib/measures/urban_geometry_creation/tests/nrel_stm_footprints.geojson +0 -3238
  34. data/lib/measures/urban_geometry_creation/tests/shadowed_tests.rb +0 -80
  35. data/lib/measures/urban_geometry_creation/tests/urban_geometry_creation_test.rb +0 -139
  36. data/lib/measures/urban_geometry_creation_zoning/tests/nrel_stm_footprints.geojson +0 -3238
  37. data/lib/measures/urban_geometry_creation_zoning/tests/urban_geometry_creation_zoning_test.rb +0 -139
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1ad031bd7b8b2d22974781fa200d6fc6c233c7cf
4
- data.tar.gz: a6bab4394e0bf97c15e86bdc054c37420648c184
2
+ SHA256:
3
+ metadata.gz: 80cfe0ae8967e2b541207fa35a636db0ed735ca897220bca8b3c7525c635ccae
4
+ data.tar.gz: 151a2efe67159078c82cc8cdf6edcaec39e777597c11aeb09f678c408b458370
5
5
  SHA512:
6
- metadata.gz: d07f450de4bc75b28452c6d18e5ab4207139fab076a3298ec10b36e13d5eab6ac4dbc002a78dc59adb0dca4770ed4d402deaf3247905df8ae926dc7fc64444d2
7
- data.tar.gz: 82905227028b1112170d0fe8f9d411af2ba5d275690178ce1d67178952752b13ede774242e115d39cf54260da7f6532e3a4cd23ab61e9b7ff447b9e351240272
6
+ metadata.gz: 1ee7f22be5bba1aa611dcface714342ec167bb54ad4670fb6d162bbf9da24c25026f033f68dd2641dd6651a3af93dbe736b36a6df84e46f3632c14ffe040691d
7
+ data.tar.gz: 1670592b66f9dc9d23bd7cfb09fbcf223712cf012cb0273ed619c4b8d1e65cc30a2046efaa6edf939bfeaf897fef8665b23300081e86ae3b87b69722ae17bd32
@@ -6,5 +6,5 @@ AllCops:
6
6
 
7
7
 
8
8
  inherit_from:
9
- - http://s3.amazonaws.com/openstudio-resources/styles/rubocop.yml
9
+ - http://s3.amazonaws.com/openstudio-resources/styles/rubocop_v3.yml
10
10
 
@@ -1,5 +1,66 @@
1
1
  # URBANopt GeoJSON Gem
2
2
 
3
+ ## Version 0.3.1
4
+ Date Range 06/05/20 - 08/07/20
5
+
6
+ Accepted Pull Requests: 9
7
+ - Fixed [#77]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/77 ), Bump acorn from 6.1.1 to 6.4.1 in /docs
8
+ - Fixed [#92]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/92 ), Adds scaling for building footprint using building area
9
+ - Fixed [#98]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/98 ), Add method to determine centroid for features
10
+ - Fixed [#99]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/99 ), Adds test to check footprint area
11
+ - Fixed [#100]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/100 ), Bump lodash from 4.17.15 to 4.17.19 in /docs
12
+ - Fixed [#102]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/102 ), make connector-type optional on electrical junction
13
+ - Fixed [#103]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/103 ), Bump elliptic from 6.4.1 to 6.5.3 in /docs
14
+ - Fixed [#104]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/104 ), bump minimist and dot-prop versions
15
+ - Fixed [#108]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/108 ), Schema errors (issues 105, 106, and 107)
16
+
17
+ ## Version 0.3.0
18
+
19
+ Date Range 3/25/20 - 06/04/20
20
+
21
+ Updating to use with OpenStudio 3.0 and Ruby 2.5
22
+
23
+ Accepted Pull Requests:
24
+ - Fixed [#60]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/60 ), HPXML-based workflow for residential buildings
25
+ - Fixed [#83]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/83 ), Add new system types to building properties schema
26
+ - Fixed [#84]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/84 ), Updated system types with OpenStudio
27
+ - Fixed [#87]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/87 ), Adds nominal height for stories, test for confirming nominal height
28
+ - Fixed [#90]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/90 ), Assigns construction correctly for adiabatic surfaces.
29
+ -Fixed [#95]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/95 ), Exclude measure tests from gem release to reduce size
30
+
31
+ ## Version 0.2.0
32
+
33
+ Date Range: 12/26/19 - 03/25/20
34
+
35
+
36
+ Accepted Pull Requests:
37
+ - Fixed [#41]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/41 ), Added urbanopt-geojson, this closes #40
38
+ - Fixed [#45]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/45 ), Add script to ease updates to changelog
39
+ - Fixed [#46]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/46 ), Use URBANopt standard contributing guidelines
40
+ - Fixed [#49]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/49 ), adding unspecified to flow_direction enum #48
41
+ - Fixed [#50]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/50 ), update package-lock file with secure dependency versions
42
+ - Fixed [#51]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/51 ), update license date to include 2020
43
+ - Fixed [#52]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/52 ), Addresses issues in GeoJSON gem
44
+ - Fixed [#53]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/53 ), Remove unused travis CI file
45
+ - Fixed [#54]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/54 ), Remove Simplecov dependency
46
+ - Fixed [#55]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/55 ), Add github templates for issues and PRs
47
+ - Fixed [#56]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/56 ), Use new version of extension gem
48
+ - Fixed [#58]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/58 ), Require ISSUES for PRs to address. Makes auto-changelog easy
49
+ - Fixed [#62]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/62 ), modifying wire types enum and fixing json validation
50
+ error
51
+ - Fixed [#63]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/63 ), Require ruby < 2.3.0
52
+ - Fixed [#65]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/65 ), Use pessimistic versioning for dependencies
53
+ - Fixed [#66]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/66 ), Update Jenkinsfile
54
+ - Fixed [#68]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/68 ), fix create_other_building functionality and merge site props to feature props
55
+ - Fixed [#71]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/71 ), Adds methods for converting building class instance to hash.
56
+ - Fixed [#73]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/73 ), Warning message for number of stories
57
+ - Fixed [#74]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/74 ), prep for prerelease
58
+ - Fixed [#75]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/75 ), Fixes bug while creating
59
+ shading surface for adjacent buildings
60
+ - Fixed [#76]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/76 ), Changed name of extension file
61
+ - Fixed [#78]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/78 ), 0.2.0.pre2
62
+ - Fixed [#80]( https://github.com/urbanopt/urbanopt-geojson-gem/pull/80 ), look for site features in project key instead of Site Origin feature
63
+
3
64
  ## Version 0.1.0
4
65
 
5
66
  * Initial release of the URBANopt GeoJSON Gem
data/Gemfile CHANGED
@@ -22,6 +22,3 @@ if allow_local && File.exist?('../urbanopt-core-gem')
22
22
  elsif allow_local
23
23
  gem 'urbanopt-core', github: 'URBANopt/urbanopt-core-gem', branch: 'develop'
24
24
  end
25
-
26
- # simplecov has an unnecessary dependency on native json gem, use fork that does not require this
27
- gem 'simplecov', github: 'NREL/simplecov'
data/Rakefile CHANGED
@@ -37,7 +37,7 @@ RSpec::Core::RakeTask.new(:spec)
37
37
  require 'openstudio/extension/rake_task'
38
38
  require 'urbanopt/geojson'
39
39
  rake_task = OpenStudio::Extension::RakeTask.new
40
- rake_task.set_extension_class(URBANopt::GeoJSON::Extension)
40
+ rake_task.set_extension_class(URBANopt::GeoJSON::Extension, 'urbanopt/urbanopt-geojson-gem')
41
41
 
42
42
  require 'rubocop/rake_task'
43
43
  RuboCop::RakeTask.new
@@ -1180,9 +1180,9 @@
1180
1180
  }
1181
1181
  },
1182
1182
  "acorn": {
1183
- "version": "6.1.1",
1184
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
1185
- "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA=="
1183
+ "version": "6.4.1",
1184
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
1185
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="
1186
1186
  },
1187
1187
  "acorn-dynamic-import": {
1188
1188
  "version": "4.0.0",
@@ -3513,9 +3513,9 @@
3513
3513
  "integrity": "sha512-p1pgKOSSgcROCRiZoJ5H5wFmhqdA0L3yLL9mlfcmdA4V60IDCrsvhNqN8rLPe9e3B772Gm02kBkL1GM/g2lENg=="
3514
3514
  },
3515
3515
  "elliptic": {
3516
- "version": "6.4.1",
3517
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
3518
- "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
3516
+ "version": "6.5.3",
3517
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
3518
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
3519
3519
  "requires": {
3520
3520
  "bn.js": "^4.4.0",
3521
3521
  "brorand": "^1.0.1",
@@ -5733,9 +5733,9 @@
5733
5733
  "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
5734
5734
  },
5735
5735
  "json-formatter-js": {
5736
- "version": "2.2.1",
5737
- "resolved": "https://registry.npmjs.org/json-formatter-js/-/json-formatter-js-2.2.1.tgz",
5738
- "integrity": "sha1-sQHWKOhvAo3Jz5p+HIPGXlNsn4c="
5736
+ "version": "2.3.4",
5737
+ "resolved": "https://registry.npmjs.org/json-formatter-js/-/json-formatter-js-2.3.4.tgz",
5738
+ "integrity": "sha512-gmAzYRtPRmYzeAT4T7+t3NhTF89JOAIioCVDddl9YDb3ls3kWcskirafw/MZGJaRhEU6fRimGJHl7CC7gaAI2Q=="
5739
5739
  },
5740
5740
  "json-parse-better-errors": {
5741
5741
  "version": "1.0.2",
@@ -6050,9 +6050,9 @@
6050
6050
  }
6051
6051
  },
6052
6052
  "lodash": {
6053
- "version": "4.17.15",
6054
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
6055
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
6053
+ "version": "4.17.19",
6054
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
6055
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
6056
6056
  },
6057
6057
  "lodash._reinterpolate": {
6058
6058
  "version": "3.0.0",
@@ -9361,9 +9361,9 @@
9361
9361
  "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
9362
9362
  },
9363
9363
  "replace-ext": {
9364
- "version": "1.0.0",
9365
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
9366
- "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
9364
+ "version": "1.0.1",
9365
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
9366
+ "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw=="
9367
9367
  },
9368
9368
  "request": {
9369
9369
  "version": "2.88.0",
@@ -18,10 +18,12 @@
18
18
  },
19
19
  "devDependencies": {
20
20
  "braces": ">=2.3.1",
21
+ "dot-prop": ">=5.1.1",
21
22
  "gh-pages": "^2.0.1",
22
23
  "js-yaml": ">=3.13.1",
23
- "lodash": ">=4.17.12",
24
+ "lodash": ">=4.17.19",
24
25
  "lodash.template": ">=4.5.0",
26
+ "minimist": ">=1.2.3",
25
27
  "mixin-deep": ">=1.3.2",
26
28
  "serialize-javascript": ">=2.1.1",
27
29
  "set-value": ">=2.0.1"
@@ -2,4 +2,4 @@ AllCops:
2
2
  Exclude:
3
3
  - 'spec/test_measures/**/*'
4
4
  inherit_from:
5
- - http://s3.amazonaws.com/openstudio-resources/styles/rubocop.yml
5
+ - http://s3.amazonaws.com/openstudio-resources/styles/rubocop_v3.yml
@@ -8,7 +8,7 @@
8
8
  This measure reads an URBANopt GeoJSON and creates geometry for a particular building. Surrounding buildings are included as shading structures.
9
9
 
10
10
  ## Modeler Description
11
-
11
+ This measure takes in the GeoJSON file, the feature_id of the building and the surrounding buildings as arguments and add has methods to create space types and add default construction sets.
12
12
 
13
13
  ## Measure Type
14
14
  ModelMeasure
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # *********************************************************************************
2
4
  # URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
5
  # contributors. All rights reserved.
@@ -77,7 +79,9 @@ class UrbanGeometryCreation < OpenStudio::Measure::ModelMeasure
77
79
  end
78
80
 
79
81
  # define what happens when the measure is run
82
+ # rubocop:disable Metrics/AbcSize
80
83
  def run(model, runner, user_arguments)
84
+ # rubocop:enable Metrics/AbcSize
81
85
  super(model, runner, user_arguments)
82
86
  # use the built-in error checking
83
87
  if !runner.validateUserArguments(arguments(model), user_arguments)
@@ -1,14 +1,15 @@
1
+ <?xml version="1.0"?>
1
2
  <measure>
2
3
  <schema_version>3.0</schema_version>
3
4
  <name>urban_geometry_creation</name>
4
5
  <uid>5ab85d6b-c9af-4361-8ab9-613ee99a5666</uid>
5
- <version_id>0808dbbe-ec8a-46c7-b416-cbae39e2b06c</version_id>
6
- <version_modified>20190523T021410Z</version_modified>
6
+ <version_id>e32672b2-91b1-4b62-9770-7712cab86004</version_id>
7
+ <version_modified>20200807T210717Z</version_modified>
7
8
  <xml_checksum>D254E772</xml_checksum>
8
9
  <class_name>UrbanGeometryCreation</class_name>
9
10
  <display_name>UrbanGeometryCreation</display_name>
10
11
  <description>This measure reads an URBANopt GeoJSON and creates geometry for a particular building. Surrounding buildings are included as shading structures.</description>
11
- <modeler_description></modeler_description>
12
+ <modeler_description>This measure takes in the GeoJSON file, the feature_id of the building and the surrounding buildings as arguments and add has methods to create space types and add default construction sets.</modeler_description>
12
13
  <arguments>
13
14
  <argument>
14
15
  <name>geojson_file</name>
@@ -43,15 +44,11 @@
43
44
  <value>ShadingOnly</value>
44
45
  <display_name>ShadingOnly</display_name>
45
46
  </choice>
46
- <choice>
47
- <value>All</value>
48
- <display_name>All</display_name>
49
- </choice>
50
47
  </choices>
51
48
  </argument>
52
49
  </arguments>
53
- <outputs/>
54
- <provenances/>
50
+ <outputs />
51
+ <provenances />
55
52
  <tags>
56
53
  <tag>Envelope.Form</tag>
57
54
  </tags>
@@ -94,35 +91,35 @@
94
91
  <usage_type>readmeerb</usage_type>
95
92
  <checksum>703C9964</checksum>
96
93
  </file>
97
- <file>
98
- <filename>README.md</filename>
99
- <filetype>md</filetype>
100
- <usage_type>readme</usage_type>
101
- <checksum>D339FA87</checksum>
102
- </file>
103
94
  <file>
104
95
  <filename>LICENSE.md</filename>
105
96
  <filetype>md</filetype>
106
97
  <usage_type>license</usage_type>
107
- <checksum>B646B327</checksum>
98
+ <checksum>EA283B74</checksum>
108
99
  </file>
109
100
  <file>
110
101
  <filename>nrel_stm_footprints.geojson</filename>
111
102
  <filetype>geojson</filetype>
112
103
  <usage_type>test</usage_type>
113
- <checksum>21E06908</checksum>
104
+ <checksum>40290298</checksum>
105
+ </file>
106
+ <file>
107
+ <filename>README.md</filename>
108
+ <filetype>md</filetype>
109
+ <usage_type>readme</usage_type>
110
+ <checksum>A09F345D</checksum>
114
111
  </file>
115
112
  <file>
116
113
  <filename>shadowed_tests.rb</filename>
117
114
  <filetype>rb</filetype>
118
115
  <usage_type>test</usage_type>
119
- <checksum>53A7DD48</checksum>
116
+ <checksum>4E51A05C</checksum>
120
117
  </file>
121
118
  <file>
122
119
  <filename>urban_geometry_creation_test.rb</filename>
123
120
  <filetype>rb</filetype>
124
121
  <usage_type>test</usage_type>
125
- <checksum>B55E2F27</checksum>
122
+ <checksum>DDAD6BFA</checksum>
126
123
  </file>
127
124
  <file>
128
125
  <version>
@@ -133,7 +130,7 @@
133
130
  <filename>measure.rb</filename>
134
131
  <filetype>rb</filetype>
135
132
  <usage_type>script</usage_type>
136
- <checksum>E152B533</checksum>
133
+ <checksum>2F8C09F7</checksum>
137
134
  </file>
138
135
  </files>
139
136
  </measure>
@@ -5,7 +5,7 @@
5
5
  # UrbanGeometryCreationZoning
6
6
 
7
7
  ## Description
8
- This measure reads an URBANopt GeoJSON and creates geometry for a particular building. Surrounding buildings are included as shading structures.
8
+ This measure reads an URBANopt GeoJSON and creates geometry with zoning for a particular building. Surrounding buildings are included as shading structures.
9
9
 
10
10
  ## Modeler Description
11
11
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # *********************************************************************************
2
4
  # URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
5
  # contributors. All rights reserved.
@@ -81,7 +83,9 @@ class UrbanGeometryCreationZoning < OpenStudio::Measure::ModelMeasure
81
83
  end
82
84
 
83
85
  # define what happens when the measure is run
86
+ # rubocop:disable Metrics/AbcSize
84
87
  def run(model, runner, user_arguments)
88
+ # rubocop:enable Metrics/AbcSize
85
89
  super(model, runner, user_arguments)
86
90
  # use the built-in error checking
87
91
  if !runner.validateUserArguments(arguments(model), user_arguments)
@@ -111,8 +115,8 @@ class UrbanGeometryCreationZoning < OpenStudio::Measure::ModelMeasure
111
115
  @runner = runner
112
116
  @origin_lat_lon = nil
113
117
 
114
- all_features = URBANopt::GeoJSON::GeoFile.from_file(geojson_file)
115
- feature = URBANopt::GeoJSON::GeoFile.from_file(geojson_file).get_feature_by_id(feature_id)
118
+ all_features = URBANopt::GeoJSON::GeoFile.from_file(geojson_file)
119
+ feature = URBANopt::GeoJSON::GeoFile.from_file(geojson_file).get_feature_by_id(feature_id)
116
120
 
117
121
  # EXPOSE NAME
118
122
  name = feature.feature_json[:properties][:name]
@@ -153,7 +157,6 @@ class UrbanGeometryCreationZoning < OpenStudio::Measure::ModelMeasure
153
157
  convert_to_shades = feature.create_other_buildings(surrounding_buildings, all_features.json, model, @origin_lat_lon, @runner)
154
158
  end
155
159
 
156
-
157
160
  # intersect surfaces in this building with others
158
161
  @runner.registerInfo('Intersecting surfaces')
159
162
  spaces.each do |space|
@@ -1,13 +1,14 @@
1
+ <?xml version="1.0"?>
1
2
  <measure>
2
3
  <schema_version>3.0</schema_version>
3
4
  <name>urban_geometry_creation_zoning</name>
4
5
  <uid>96ea1317-76ac-4670-b51d-71ee3f4fdd65</uid>
5
- <version_id>63e08249-fcf1-4037-9cb4-b1188702b056</version_id>
6
- <version_modified>20190523T021410Z</version_modified>
6
+ <version_id>884d6eb0-6517-40dc-96ca-ac4db7c2ad7d</version_id>
7
+ <version_modified>20200807T210718Z</version_modified>
7
8
  <xml_checksum>D254E772</xml_checksum>
8
9
  <class_name>UrbanGeometryCreationZoning</class_name>
9
10
  <display_name>UrbanGeometryCreationZoning</display_name>
10
- <description>This measure reads an URBANopt GeoJSON and creates geometry for a particular building. Surrounding buildings are included as shading structures.</description>
11
+ <description>This measure reads an URBANopt GeoJSON and creates geometry with zoning for a particular building. Surrounding buildings are included as shading structures.</description>
11
12
  <modeler_description></modeler_description>
12
13
  <arguments>
13
14
  <argument>
@@ -43,15 +44,11 @@
43
44
  <value>ShadingOnly</value>
44
45
  <display_name>ShadingOnly</display_name>
45
46
  </choice>
46
- <choice>
47
- <value>All</value>
48
- <display_name>All</display_name>
49
- </choice>
50
47
  </choices>
51
48
  </argument>
52
49
  </arguments>
53
- <outputs/>
54
- <provenances/>
50
+ <outputs />
51
+ <provenances />
55
52
  <tags>
56
53
  <tag>Envelope.Form</tag>
57
54
  </tags>
@@ -104,19 +101,13 @@
104
101
  <filename>LICENSE.md</filename>
105
102
  <filetype>md</filetype>
106
103
  <usage_type>license</usage_type>
107
- <checksum>B646B327</checksum>
104
+ <checksum>EA283B74</checksum>
108
105
  </file>
109
106
  <file>
110
107
  <filename>README.md</filename>
111
108
  <filetype>md</filetype>
112
109
  <usage_type>readme</usage_type>
113
- <checksum>15702F0A</checksum>
114
- </file>
115
- <file>
116
- <filename>urban_geometry_creation_test.rb</filename>
117
- <filetype>rb</filetype>
118
- <usage_type>test</usage_type>
119
- <checksum>111178B3</checksum>
110
+ <checksum>0458EE16</checksum>
120
111
  </file>
121
112
  <file>
122
113
  <version>
@@ -127,7 +118,13 @@
127
118
  <filename>measure.rb</filename>
128
119
  <filetype>rb</filetype>
129
120
  <usage_type>script</usage_type>
130
- <checksum>F9C7D6B2</checksum>
121
+ <checksum>2505C43D</checksum>
122
+ </file>
123
+ <file>
124
+ <filename>urban_geometry_creation_zoning_test.rb</filename>
125
+ <filetype>rb</filetype>
126
+ <usage_type>test</usage_type>
127
+ <checksum>986CB63E</checksum>
131
128
  </file>
132
129
  </files>
133
130
  </measure>
@@ -33,7 +33,6 @@ require 'urbanopt/geojson/feature'
33
33
  module URBANopt
34
34
  module GeoJSON
35
35
  class Building < URBANopt::GeoJSON::Feature
36
-
37
36
  ##
38
37
  # Used to initialize the feature. This method is inherited from the Feature class.
39
38
  def initialize(feature = {})
@@ -88,7 +87,7 @@ module URBANopt
88
87
  # * +origin_lat_lon+ - _Type:Float_ - An instance of +OpenStudio::PointLatLon+ indicating the latitude and longitude of the origin.
89
88
  # * +runner+ - _Type:String_ - An instance of +OpenStudio::Measure::OSRunner+ for the measure run.
90
89
  # * +zoning+ - _Type:Boolean_ - Value is +true+ if utilizing detailed zoning, else
91
- # +false+. Zoning is set to False by default.
90
+ # +false+. Zoning is set to False by default.
92
91
  # * +other_building+ - _Type:URBANopt::GeoJSON::Feature - Optional, allow the user to pass in a different building to process. This is used for creating the other buildings for shading.
93
92
  def create_building(create_method, model, origin_lat_lon, runner, zoning = false, other_building = @feature_json)
94
93
  number_of_stories = other_building[:properties][:number_of_stories]
@@ -277,14 +276,13 @@ module URBANopt
277
276
  result[:mixed_type_3_percentage] = @mixed_type_3_percentage if @mixed_type_3_percentage
278
277
  result[:mixed_type_4] = @mixed_type_4 if @mixed_type_4
279
278
  result[:mixed_type_4_percentage] = @mixed_type_4_percentage if @mixed_type_4_percentage
280
- return result
279
+ return result
281
280
  end
282
281
 
283
-
284
282
  private
285
283
 
286
284
  ##
287
- # Returns an array of instances of +OpenStudio::Model::Space+ per building
285
+ # Returns an array of instances of +OpenStudio::Model::Space+ per building.
288
286
  #
289
287
  # [Parameters]
290
288
  # * +min_elevation+ - _Type:Integer_ - Indicates minimum elevation across all buildings.
@@ -294,7 +292,9 @@ module URBANopt
294
292
  # * +runner+ - _Type:String_ - An instance of +Openstudio::Measure::OSRunner+ for the measure run.
295
293
  # * +zoning+ - _Type:Boolean_ - Value is +true+ if utilizing detailed zoning, else
296
294
  # +false+. Zoning is set to False by default.
295
+ # rubocop:disable Style/OptionalArguments, Style/CommentedKeyword
297
296
  def create_space_per_building(min_elevation, max_elevation, model, origin_lat_lon, runner, zoning = false, other_building) #:doc:
297
+ # rubocop: enable Style/OptionalArguments, Style/CommentedKeyword
298
298
  if other_building
299
299
  geometry = other_building[:geometry]
300
300
  properties = other_building[:properties]
@@ -338,7 +338,7 @@ module URBANopt
338
338
  result << space
339
339
  end
340
340
  return result
341
- end
341
+ end
342
342
 
343
343
  ##
344
344
  # Returns an array of instances of +OpenStudio::Model::Space+ per floor.
@@ -352,8 +352,10 @@ module URBANopt
352
352
  # origin's latitude and longitude.
353
353
  # * +runner+ - _Type:String_ - An instance of +Openstudio::Measure::OSRunner+ for the measure run.
354
354
  # * +zoning+ - _Type:Boolean_ - Value is +true+ if utilizing detailed zoning, else
355
- # +false+. Zoning is set to False by default.
355
+ # +false+. Zoning is set to False by default.
356
+ # rubocop:disable Style/CommentedKeyword
356
357
  def create_space_per_floor(story_number, floor_to_floor_height, model, origin_lat_lon, runner, zoning = false) #:doc:
358
+ # rubocop:enable Style/CommentedKeyword
357
359
  geometry = @feature_json[:geometry]
358
360
  properties = @feature_json[:properties]
359
361
  floor_prints = []
@@ -367,7 +369,7 @@ module URBANopt
367
369
  floor_print = URBANopt::GeoJSON::Helper.floor_print_from_polygon(polygon, elevation, origin_lat_lon, runner, zoning)
368
370
  if floor_print
369
371
  if zoning
370
- this_floor_prints = URBANopt::GeoJSON::Zoning.divide_floor_print(floor_print, 4.0, runner)
372
+ this_floor_prints = URBANopt::GeoJSON::Zoning.divide_floor_print(floor_print, 4.0, runner)
371
373
  floor_prints.concat(this_floor_prints)
372
374
  else
373
375
  floor_prints << floor_print
@@ -377,8 +379,8 @@ module URBANopt
377
379
  end
378
380
  # Subsequent polygons are holes, and are not supported.
379
381
  break
380
- end
381
- end
382
+ end
383
+ end
382
384
  spaces = []
383
385
  floor_prints.each do |floor_print|
384
386
  space = OpenStudio::Model::Space.fromFloorPrint(floor_print, floor_to_floor_height, model)
@@ -394,22 +396,23 @@ module URBANopt
394
396
  surface.setOutsideBoundaryCondition('Ground')
395
397
  end
396
398
  end
397
- end
399
+ end
398
400
  spaces << space
399
- end
400
-
401
+ end
402
+
401
403
  building_story = OpenStudio::Model::BuildingStory.new(model)
402
404
  building_story.setName("Building Story #{story_number}")
405
+ building_story.setNominalZCoordinate(story_number * floor_to_floor_height)
406
+ building_story.setNominalFloortoFloorHeight(floor_to_floor_height)
403
407
  spaces.each do |space|
404
408
  space.setBuildingStory(building_story)
405
409
  thermal_zone = OpenStudio::Model::ThermalZone.new(model)
406
410
  thermal_zone.setName("Building Story #{story_number} ThermalZone")
407
411
  space.setThermalZone(thermal_zone)
408
- end
409
-
412
+ end
413
+
410
414
  return spaces
411
415
  end
412
-
413
- end
414
- end
415
- end
416
+ end
417
+ end
418
+ end