bcl 0.5.9 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +21 -0
  3. data/.rubocop.yml +8 -0
  4. data/CHANGELOG.md +79 -0
  5. data/Gemfile +3 -0
  6. data/LICENSE.md +27 -0
  7. data/README.md +40 -0
  8. data/Rakefile +347 -0
  9. data/bcl.gemspec +48 -0
  10. data/lib/bcl/base_xml.rb +31 -15
  11. data/lib/bcl/component.rb +32 -16
  12. data/lib/bcl/component_from_spreadsheet.rb +37 -23
  13. data/lib/bcl/component_methods.rb +52 -38
  14. data/lib/bcl/core_ext.rb +31 -15
  15. data/lib/bcl/tar_ball.rb +31 -15
  16. data/lib/bcl/version.rb +32 -16
  17. data/lib/bcl.rb +37 -4
  18. data/schemas/v2/component_2012_11_08.xsd +291 -0
  19. data/schemas/v2/measure_2013_3_26.xsd +153 -0
  20. data/schemas/v3/common_bcl_v3.xsd +422 -0
  21. data/schemas/v3/component_v3.xsd +445 -0
  22. data/schemas/v3/measure_v3.xsd +496 -0
  23. metadata +102 -81
  24. data/lib/bcl/component_spreadsheet.rb +0 -287
  25. data/lib/bcl/master_taxonomy.rb +0 -528
  26. data/lib/files/downloads/40237ee0-5ea7-0130-ad9b-14109fdf0b37.tar.gz +0 -0
  27. data/lib/files/staged/components/Asphalt_Shingles_1_8_in/Asphalt_Shingles_1_8_in.tar.gz +0 -0
  28. data/lib/files/staged/components/Asphalt_Shingles_1_8_in/component.xml +0 -81
  29. data/lib/files/staged/components/Built_up_Roofing_3_8_in/Built_up_Roofing_3_8_in.tar.gz +0 -0
  30. data/lib/files/staged/components/Built_up_Roofing_3_8_in/component.xml +0 -76
  31. data/lib/files/staged/components/Metal_Surface_1_16_in/Metal_Surface_1_16_in.tar.gz +0 -0
  32. data/lib/files/staged/components/Metal_Surface_1_16_in/component.xml +0 -76
  33. data/lib/files/staged/components/Shingle_Backer_1_4_in/Shingle_Backer_1_4_in.tar.gz +0 -0
  34. data/lib/files/staged/components/Shingle_Backer_1_4_in/component.xml +0 -81
  35. data/lib/files/staged/components/Shingle_Backer_3_8_in/Shingle_Backer_3_8_in.tar.gz +0 -0
  36. data/lib/files/staged/components/Shingle_Backer_3_8_in/component.xml +0 -81
  37. data/lib/files/staged/components/Wood_Shingles_1_4_in/Wood_Shingles_1_4_in.tar.gz +0 -0
  38. data/lib/files/staged/components/Wood_Shingles_1_4_in/component.xml +0 -81
  39. data/lib/files/staged/gather/1/Asphalt_Shingles_1_8_in.tar.gz +0 -0
  40. data/lib/files/staged/gather/1/Built_up_Roofing_3_8_in.tar.gz +0 -0
  41. data/lib/files/staged/gather/1/Metal_Surface_1_16_in.tar.gz +0 -0
  42. data/lib/files/staged/gather/1/Shingle_Backer_1_4_in.tar.gz +0 -0
  43. data/lib/files/staged/gather/1/Shingle_Backer_3_8_in.tar.gz +0 -0
  44. data/lib/files/staged/gather/1/Wood_Shingles_1_4_in.tar.gz +0 -0
  45. data/lib/files/staged/gather/components_1.tar.gz +0 -0
data/lib/bcl/core_ext.rb CHANGED
@@ -1,21 +1,37 @@
1
- ######################################################################
2
- # Copyright (c) 2008-2019, Alliance for Sustainable Energy.
3
- # All rights reserved.
1
+ # *******************************************************************************
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
+ # All rights reserved.
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
4
6
  #
5
- # This library is free software; you can redistribute it and/or
6
- # modify it under the terms of the GNU Lesser General Public
7
- # License as published by the Free Software Foundation; either
8
- # version 2.1 of the License, or (at your option) any later version.
7
+ # (1) Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
9
  #
10
- # This library is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- # Lesser General Public License for more details.
10
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
14
13
  #
15
- # You should have received a copy of the GNU Lesser General Public
16
- # License along with this library; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
- ######################################################################
14
+ # (3) Neither the name of the copyright holder nor the names of any contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission from the respective party.
17
+ #
18
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
19
+ # of modifications or other derivative works may not use the "OpenStudio"
20
+ # trademark, "OS", "os", or any other confusingly similar designation without
21
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
+ #
23
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ # *******************************************************************************
19
35
 
20
36
  class String
21
37
  def to_underscore
data/lib/bcl/tar_ball.rb CHANGED
@@ -1,21 +1,37 @@
1
- ######################################################################
2
- # Copyright (c) 2008-2019, Alliance for Sustainable Energy.
3
- # All rights reserved.
1
+ # *******************************************************************************
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
+ # All rights reserved.
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
4
6
  #
5
- # This library is free software; you can redistribute it and/or
6
- # modify it under the terms of the GNU Lesser General Public
7
- # License as published by the Free Software Foundation; either
8
- # version 2.1 of the License, or (at your option) any later version.
7
+ # (1) Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
9
  #
10
- # This library is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- # Lesser General Public License for more details.
10
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
14
13
  #
15
- # You should have received a copy of the GNU Lesser General Public
16
- # License along with this library; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
- ######################################################################
14
+ # (3) Neither the name of the copyright holder nor the names of any contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission from the respective party.
17
+ #
18
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
19
+ # of modifications or other derivative works may not use the "OpenStudio"
20
+ # trademark, "OS", "os", or any other confusingly similar designation without
21
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
+ #
23
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ # *******************************************************************************
19
35
 
20
36
  module BCL
21
37
  module_function
data/lib/bcl/version.rb CHANGED
@@ -1,22 +1,38 @@
1
- ######################################################################
2
- # Copyright (c) 2008-2019, Alliance for Sustainable Energy.
3
- # All rights reserved.
1
+ # *******************************************************************************
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
+ # All rights reserved.
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
4
6
  #
5
- # This library is free software; you can redistribute it and/or
6
- # modify it under the terms of the GNU Lesser General Public
7
- # License as published by the Free Software Foundation; either
8
- # version 2.1 of the License, or (at your option) any later version.
7
+ # (1) Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
9
  #
10
- # This library is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- # Lesser General Public License for more details.
10
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
14
13
  #
15
- # You should have received a copy of the GNU Lesser General Public
16
- # License along with this library; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
- ######################################################################
14
+ # (3) Neither the name of the copyright holder nor the names of any contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission from the respective party.
17
+ #
18
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
19
+ # of modifications or other derivative works may not use the "OpenStudio"
20
+ # trademark, "OS", "os", or any other confusingly similar designation without
21
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
+ #
23
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ # *******************************************************************************
19
35
 
20
36
  module BCL
21
- VERSION = '0.5.9'.freeze
37
+ VERSION = '0.7.1'.freeze
22
38
  end
data/lib/bcl.rb CHANGED
@@ -1,3 +1,38 @@
1
+ # *******************************************************************************
2
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
3
+ # All rights reserved.
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+ #
7
+ # (1) Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
+ #
10
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
13
+ #
14
+ # (3) Neither the name of the copyright holder nor the names of any contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission from the respective party.
17
+ #
18
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
19
+ # of modifications or other derivative works may not use the "OpenStudio"
20
+ # trademark, "OS", "os", or any other confusingly similar designation without
21
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
+ #
23
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ # *******************************************************************************
35
+
1
36
  require 'pathname'
2
37
  require 'base64'
3
38
 
@@ -11,14 +46,14 @@ end
11
46
 
12
47
  # file formatters
13
48
  require 'yaml'
14
- require 'multi_json'
49
+ require 'json'
15
50
  require 'builder'
16
51
  require 'uuid'
17
52
  require 'net/https'
18
53
  require 'rexml/document'
19
54
 
20
55
  # TODO: can we condense these into one?
21
- require 'archive/tar/minitar'
56
+ require 'minitar'
22
57
  require 'zlib'
23
58
  require 'zip'
24
59
 
@@ -27,12 +62,10 @@ require 'spreadsheet'
27
62
 
28
63
  require 'bcl/core_ext'
29
64
  require 'bcl/base_xml'
30
- require 'bcl/component_spreadsheet'
31
65
  require 'bcl/component_from_spreadsheet'
32
66
  require 'bcl/component'
33
67
  require 'bcl/component_methods'
34
68
  require 'bcl/tar_ball'
35
- require 'bcl/master_taxonomy'
36
69
  require 'bcl/version'
37
70
 
38
71
  # Some global structures
@@ -0,0 +1,291 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- edited with XMLSpy v2011 sp1 (x64) (http://www.altova.com) by Nicholas Long (National Renewable Energy Laboratory) -->
3
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
4
+ <xs:annotation>
5
+ <xs:documentation>Component.xsd describes the components that are in the building component library or NREL analysis platform library.</xs:documentation>
6
+ </xs:annotation>
7
+ <xs:annotation>
8
+ <xs:documentation>Version - 0.9</xs:documentation>
9
+ </xs:annotation>
10
+ <xs:annotation>
11
+ <xs:documentation>Version - 0.91 - Updated the cost to be more generic</xs:documentation>
12
+ </xs:annotation>
13
+ <xs:annotation>
14
+ <xs:documentation>Version - 0.92 - Added MasterSpec to the elements</xs:documentation>
15
+ </xs:annotation>
16
+ <xs:annotation>
17
+ <xs:documentation>Version - 0.93 - Fixed indentifier typo. Added datatype element to attributes. Removed "level_" from fidelity level values. Removed component_update_id and replaced component_version_id with version_id.</xs:documentation>
18
+ </xs:annotation>
19
+ <xs:annotation>
20
+ <xs:documentation>Version - 0.94 - Made datatype required on attributes and limited the possible options to int, float, and string. (Solr will break if these are not specified or are specified incorrectly).</xs:documentation>
21
+ </xs:annotation>
22
+ <xs:annotation>
23
+ <xs:documentation>Version - 0.95 - Removed sourceType and versionType extensions because it was creating problems on the site.</xs:documentation>
24
+ </xs:annotation>
25
+ <xs:annotation>
26
+ <xs:documentation>Version - 0.96 - Added start and end times for component costs</xs:documentation>
27
+ </xs:annotation>
28
+ <xs:element name="component">
29
+ <xs:annotation>
30
+ <xs:documentation>root element defining a component</xs:documentation>
31
+ </xs:annotation>
32
+ <xs:complexType>
33
+ <xs:sequence>
34
+ <xs:element name="name">
35
+ <xs:annotation>
36
+ <xs:documentation>name of the component as to be displayed</xs:documentation>
37
+ </xs:annotation>
38
+ </xs:element>
39
+ <xs:element name="uid"/>
40
+ <xs:element name="version_id">
41
+ <xs:annotation>
42
+ <xs:documentation>this is used to signal that a new component is available and should replace previously downloaded components</xs:documentation>
43
+ </xs:annotation>
44
+ </xs:element>
45
+ <xs:element name="masterguide_csi_values" minOccurs="0">
46
+ <xs:annotation>
47
+ <xs:documentation>values from the MASTERSPEC</xs:documentation>
48
+ </xs:annotation>
49
+ <xs:complexType>
50
+ <xs:sequence>
51
+ <xs:element name="masterguide_csi_value" maxOccurs="unbounded"/>
52
+ </xs:sequence>
53
+ </xs:complexType>
54
+ </xs:element>
55
+ <xs:element name="description" minOccurs="0">
56
+ <xs:annotation>
57
+ <xs:documentation>free-form description of the component, will be used for search</xs:documentation>
58
+ </xs:annotation>
59
+ </xs:element>
60
+ <xs:element name="comment" minOccurs="0">
61
+ <xs:annotation>
62
+ <xs:documentation>place holder for any comment</xs:documentation>
63
+ </xs:annotation>
64
+ </xs:element>
65
+ <xs:element name="fidelity_level">
66
+ <xs:annotation>
67
+ <xs:documentation>component's level of data abstraction (example: 1-minute data vs. 1-hour data) </xs:documentation>
68
+ </xs:annotation>
69
+ <xs:simpleType>
70
+ <xs:restriction base="xs:string">
71
+ <xs:enumeration value="1"/>
72
+ <xs:enumeration value="2"/>
73
+ <xs:enumeration value="3"/>
74
+ <xs:enumeration value="4"/>
75
+ <xs:enumeration value="5"/>
76
+ </xs:restriction>
77
+ </xs:simpleType>
78
+ </xs:element>
79
+ <xs:element name="provenances">
80
+ <xs:complexType>
81
+ <xs:sequence>
82
+ <xs:element name="provenance" maxOccurs="unbounded">
83
+ <xs:annotation>
84
+ <xs:documentation>provenance is used to enter author information. The comment field can be used to enter information such as project name.</xs:documentation>
85
+ </xs:annotation>
86
+ <xs:complexType>
87
+ <xs:sequence>
88
+ <xs:element name="author" type="xs:string">
89
+ <xs:annotation>
90
+ <xs:documentation>author who uploaded the data, which will be equal to the user account on the bcl site</xs:documentation>
91
+ </xs:annotation>
92
+ </xs:element>
93
+ <xs:element name="datetime" type="xs:dateTime">
94
+ <xs:annotation>
95
+ <xs:documentation>date component was uploaded</xs:documentation>
96
+ </xs:annotation>
97
+ </xs:element>
98
+ <xs:element name="comment" minOccurs="0"/>
99
+ </xs:sequence>
100
+ </xs:complexType>
101
+ </xs:element>
102
+ </xs:sequence>
103
+ </xs:complexType>
104
+ </xs:element>
105
+ <xs:element name="tags">
106
+ <xs:complexType>
107
+ <xs:sequence>
108
+ <xs:element name="tag" maxOccurs="unbounded">
109
+ <xs:annotation>
110
+ <xs:documentation>tag is used to classify the component</xs:documentation>
111
+ </xs:annotation>
112
+ </xs:element>
113
+ </xs:sequence>
114
+ </xs:complexType>
115
+ </xs:element>
116
+ <xs:element name="attributes">
117
+ <xs:complexType>
118
+ <xs:sequence>
119
+ <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded">
120
+ <xs:annotation>
121
+ <xs:documentation>attribute is a descriptor of the component (includes data quality)</xs:documentation>
122
+ </xs:annotation>
123
+ <xs:complexType>
124
+ <xs:sequence>
125
+ <xs:element name="name"/>
126
+ <xs:element name="value" type="xs:string"/>
127
+ <xs:element name="datatype">
128
+ <xs:simpleType>
129
+ <xs:restriction base="xs:string">
130
+ <xs:enumeration value="int"/>
131
+ <xs:enumeration value="float"/>
132
+ <xs:enumeration value="string"/>
133
+ </xs:restriction>
134
+ </xs:simpleType>
135
+ </xs:element>
136
+ <xs:element name="units" minOccurs="0"/>
137
+ </xs:sequence>
138
+ </xs:complexType>
139
+ </xs:element>
140
+ </xs:sequence>
141
+ </xs:complexType>
142
+ </xs:element>
143
+ <xs:element name="source">
144
+ <xs:annotation>
145
+ <xs:documentation>source of the data (the origin of the component information)</xs:documentation>
146
+ </xs:annotation>
147
+ <xs:complexType>
148
+ <xs:sequence minOccurs="0">
149
+ <xs:element name="manufacturer" minOccurs="0"/>
150
+ <xs:element name="model" minOccurs="0"/>
151
+ <xs:element name="serial_no" minOccurs="0"/>
152
+ <xs:element name="year" minOccurs="0"/>
153
+ <xs:element name="url" minOccurs="0"/>
154
+ </xs:sequence>
155
+ </xs:complexType>
156
+ </xs:element>
157
+ <xs:element name="files">
158
+ <xs:complexType>
159
+ <xs:sequence>
160
+ <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
161
+ <xs:complexType>
162
+ <xs:sequence>
163
+ <xs:element name="version">
164
+ <xs:annotation>
165
+ <xs:documentation>version of files attached to component</xs:documentation>
166
+ </xs:annotation>
167
+ <xs:complexType>
168
+ <xs:sequence>
169
+ <xs:element name="software_program"/>
170
+ <xs:element name="identifier"/>
171
+ </xs:sequence>
172
+ </xs:complexType>
173
+ </xs:element>
174
+ <xs:element name="filename" type="xs:string"/>
175
+ <xs:element name="filetype" type="xs:string">
176
+ <xs:annotation>
177
+ <xs:documentation>ies, idf, </xs:documentation>
178
+ </xs:annotation>
179
+ </xs:element>
180
+ </xs:sequence>
181
+ </xs:complexType>
182
+ </xs:element>
183
+ </xs:sequence>
184
+ </xs:complexType>
185
+ </xs:element>
186
+ <xs:element name="costs">
187
+ <xs:complexType>
188
+ <xs:sequence>
189
+ <xs:element name="cost" minOccurs="0" maxOccurs="unbounded">
190
+ <xs:complexType>
191
+ <xs:sequence>
192
+ <xs:element name="instance_name" type="xs:string">
193
+ <xs:annotation>
194
+ <xs:documentation>name of cost for reference</xs:documentation>
195
+ </xs:annotation>
196
+ </xs:element>
197
+ <xs:element name="cost_type">
198
+ <xs:annotation>
199
+ <xs:documentation>type of cost, includes low, high, average, estimate, etc</xs:documentation>
200
+ </xs:annotation>
201
+ <xs:simpleType>
202
+ <xs:restriction base="xs:string">
203
+ <xs:enumeration value="low"/>
204
+ <xs:enumeration value="high"/>
205
+ <xs:enumeration value="average"/>
206
+ <xs:enumeration value="estimate"/>
207
+ </xs:restriction>
208
+ </xs:simpleType>
209
+ </xs:element>
210
+ <xs:element name="category">
211
+ <xs:annotation>
212
+ <xs:documentation>ex: operations and maintenance cost, salvage cost, materials cost, installation cost, upgrade cost, etc.</xs:documentation>
213
+ </xs:annotation>
214
+ </xs:element>
215
+ <xs:element name="value" type="xs:float">
216
+ <xs:annotation>
217
+ <xs:documentation>cost value based on the supplemntal fields</xs:documentation>
218
+ </xs:annotation>
219
+ </xs:element>
220
+ <xs:element name="units" minOccurs="0">
221
+ <xs:annotation>
222
+ <xs:documentation>cost unit. If blank, absolute cost is assumed. ex: $/ft2, $/person, etc.</xs:documentation>
223
+ </xs:annotation>
224
+ </xs:element>
225
+ <xs:element name="interval" minOccurs="0">
226
+ <xs:annotation>
227
+ <xs:documentation>number describing the interval on which this cost is incurred. ex: 1, 6, 12. Use 0 for onetime costs</xs:documentation>
228
+ </xs:annotation>
229
+ </xs:element>
230
+ <xs:element name="interval_units" minOccurs="0">
231
+ <xs:annotation>
232
+ <xs:documentation>interval units. ex: day, month, year, etc.</xs:documentation>
233
+ </xs:annotation>
234
+ <xs:simpleType>
235
+ <xs:restriction base="xs:string">
236
+ <xs:enumeration value="year(s)"/>
237
+ <xs:enumeration value="month(s)"/>
238
+ <xs:enumeration value="day(s)"/>
239
+ </xs:restriction>
240
+ </xs:simpleType>
241
+ </xs:element>
242
+ <xs:element name="year" type="xs:int" minOccurs="0">
243
+ <xs:annotation>
244
+ <xs:documentation>source year of the costs</xs:documentation>
245
+ </xs:annotation>
246
+ </xs:element>
247
+ <xs:element name="start_year" minOccurs="0">
248
+ <xs:annotation>
249
+ <xs:documentation>define when this cost will start to incur. Useful when you may not want maintenance costs to start until n years after construction</xs:documentation>
250
+ </xs:annotation>
251
+ </xs:element>
252
+ <xs:element name="end_year" minOccurs="0">
253
+ <xs:annotation>
254
+ <xs:documentation>define whne this cost will stop incurring.</xs:documentation>
255
+ </xs:annotation>
256
+ </xs:element>
257
+ <xs:element name="location" minOccurs="0">
258
+ <xs:annotation>
259
+ <xs:documentation>the geographic location where the component was costed (i.e. national, colorado, denver, etc). By default all values should be national averages.</xs:documentation>
260
+ </xs:annotation>
261
+ </xs:element>
262
+ <xs:element name="currency" minOccurs="0">
263
+ <xs:annotation>
264
+ <xs:documentation>the currency of the cost. If blank, USD is assumed.</xs:documentation>
265
+ </xs:annotation>
266
+ </xs:element>
267
+ <xs:element name="source" type="xs:string" minOccurs="0">
268
+ <xs:annotation>
269
+ <xs:documentation>origin from which the cost data came</xs:documentation>
270
+ </xs:annotation>
271
+ </xs:element>
272
+ <xs:element name="reference_component_name" minOccurs="0">
273
+ <xs:annotation>
274
+ <xs:documentation>display name of reference component prior to retrofit (for marginal costs)</xs:documentation>
275
+ </xs:annotation>
276
+ </xs:element>
277
+ <xs:element name="reference_component_id" minOccurs="0">
278
+ <xs:annotation>
279
+ <xs:documentation>ID of reference component prior to retrofit (for marginal costs)</xs:documentation>
280
+ </xs:annotation>
281
+ </xs:element>
282
+ </xs:sequence>
283
+ </xs:complexType>
284
+ </xs:element>
285
+ </xs:sequence>
286
+ </xs:complexType>
287
+ </xs:element>
288
+ </xs:sequence>
289
+ </xs:complexType>
290
+ </xs:element>
291
+ </xs:schema>