bcl 0.1.4

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.
@@ -0,0 +1,116 @@
1
+ ######################################################################
2
+ # Copyright (c) 2008-2010, Alliance for Sustainable Energy.
3
+ # All rights reserved.
4
+ #
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.
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.
14
+ #
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
+ ######################################################################
19
+
20
+ #Mongo Record to Component
21
+ require 'rubygems'
22
+ require 'bcl/ComponentXml'
23
+
24
+ module BCL
25
+
26
+ class MongoToComponent
27
+ attr_accessor :component
28
+ attr_accessor :error_message
29
+
30
+ def initialize(record)
31
+ @component = nil
32
+ @error_message = ""
33
+
34
+ if record.has_key? "general"
35
+ @component = BCL::Component.new('tmp')
36
+ general = record["general"]
37
+
38
+ #add uid/vid
39
+ if record.has_key? "unique_id"
40
+ component.uid = record["unique_id"]
41
+ else
42
+ @error_message = "Invalid Mongo record: no unique_id"
43
+ end
44
+ if record.has_key? "version_id"
45
+ component.comp_version_id = record["version_id"]
46
+ else
47
+ @error_message = "Invalid Mongo record: no version_id"
48
+ end
49
+
50
+ #add general info
51
+ if general.has_key? "name"
52
+ component.name = general["name"]
53
+ end
54
+ if general.has_key? "description"
55
+ @component.description = general["description"]
56
+ end
57
+ if general.has_key? "fidelity_level"
58
+ @component.fidelity_level = general["fidelity_level"]
59
+ end
60
+ if general.has_key? "source_manufacturer"
61
+ @component.source_manufacturer = general["source_manufacturer"]
62
+ end
63
+ if general.has_key? "source_url"
64
+ @component.source_url = general["source_url"]
65
+ end
66
+
67
+ #add tags
68
+ if general.has_key? "tags"
69
+ tags = general["tags"]
70
+ tags.each do |name,value|
71
+ @component.add_tag(value)
72
+ end
73
+ end
74
+
75
+ #add attributes
76
+ if general.has_key? "attributes"
77
+ attribute_container = general["attributes"]
78
+ attribute_container.each do |a,attributes|
79
+ #attributes iterator is an array of hashes
80
+ #NOTE: double check this...could be old messed-up structure?
81
+ attributes.each do |attribute|
82
+ name = ""
83
+ units = ""
84
+ value = ""
85
+ datatype = ""
86
+ if attribute.has_key? "name"
87
+ name = attribute["name"]
88
+ end
89
+ if attribute.has_key? "value"
90
+ value = attribute["value"]
91
+ end
92
+ if attribute.has_key? "units"
93
+ units = attribute["units"]
94
+ end
95
+ @component.add_attribute(name, value, units)
96
+
97
+ #TODO: eventually find a way to validate the datatype in record with datatype in component
98
+ end
99
+ end
100
+ end
101
+
102
+ #todo: add provenance
103
+
104
+ else
105
+ @error_message = "Invalid Mongo record: no 'general' section"
106
+ end
107
+ #set component to NIL if there were errors
108
+ if !@error_message == nil
109
+ @component = nil
110
+ end
111
+ end
112
+
113
+ end
114
+
115
+ end # module BCL
116
+
@@ -0,0 +1,51 @@
1
+ ######################################################################
2
+ # Copyright (c) 2008-2010, Alliance for Sustainable Energy.
3
+ # All rights reserved.
4
+ #
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.
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.
14
+ #
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
+ ######################################################################
19
+
20
+ require 'rubygems'
21
+
22
+ require 'zlib' #gem install zliby
23
+ require 'archive/tar/minitar' #gem install archive-tar-minitar
24
+
25
+ module BCL
26
+ module_function
27
+
28
+ def tarball(destination, paths)
29
+ Zlib::GzipWriter.open(destination) do |gzip|
30
+ out = Archive::Tar::Minitar::Output.new(gzip)
31
+ puts "[TarBall] Starting #{destination}"
32
+ paths.each do |fi|
33
+ puts "[TarBall] Packing #{fi}"
34
+ if File.exists?(fi)
35
+ Archive::Tar::Minitar.pack_file(fi, out)
36
+ else
37
+ puts "[TarBall] Could not file file: #{fi}"
38
+ end
39
+ end
40
+ puts "[TarBall] Finished #{destination}"
41
+ out.close
42
+ end
43
+ end
44
+
45
+ def extract_tarball(filename, destination)
46
+ Zlib::GzipReader.open(filename) {|gz|
47
+ Archive::Tar::Minitar.unpack(gz, destination)
48
+ }
49
+ end
50
+
51
+ end # module BCL
@@ -0,0 +1,451 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3
+ <tag name="root">
4
+ <term name="OpenStudio Type"/>
5
+ <tag name="Construction Assembly">
6
+ <term name="OpenStudio Type"/>
7
+ <tag name="Fenestration">
8
+ <term name="OpenStudio Type"/>
9
+ <term name="Overall U-factor"/>
10
+ <tag name="Window">
11
+ <term name="OpenStudio Type"/>
12
+ <term name="Overall U-factor"/>
13
+ <term name="Visible Light Transmittance"/>
14
+ <term name="Tint"/>
15
+ <term name="Solar Heat Gain Coefficient"/>
16
+ <term name="Number of Panes"/>
17
+ <term name="Gas Fill"/>
18
+ </tag>
19
+ </tag>
20
+ </tag>
21
+ <tag name="HVAC">
22
+ <term name="OpenStudio Type"/>
23
+ <tag name="Chillers">
24
+ <term name="OpenStudio Type"/>
25
+ <tag name="Electrically-driven Mechanical Compression">
26
+ <term name="OpenStudio Type"/>
27
+ <term name="Variable-Speed Drive Compressor"/>
28
+ <term name="Refrigerant "/>
29
+ <term name="Part Load Ratio below which Hot Gas Bypass (HGBP) operates"/>
30
+ <term name="Net Refrigeration Capacity"/>
31
+ <term name="Model Designation"/>
32
+ <term name="Minimum Part Load Ratio"/>
33
+ <term name="Minimum Condenser Water Flow Rate"/>
34
+ <term name="Minimum Condenser Water Entering Temperature"/>
35
+ <term name="Minimum Chilled Water Supply Temperature"/>
36
+ <term name="Minimum Chilled Water Flow Rate"/>
37
+ <term name="Min Outdoor Air Temperature (Wet Bulb)"/>
38
+ <term name="Min Outdoor Air Temperature (Dry Bulb)"/>
39
+ <term name="Maximum Part Load Ratio"/>
40
+ <term name="Maximum Condenser Water Flow Rate"/>
41
+ <term name="Maximum Condenser Water Entering Temperature"/>
42
+ <term name="Maximum Chilled Water Supply Temperature"/>
43
+ <term name="Maximum Chilled Water Flow Rate"/>
44
+ <term name="Max Outdoor Air Temperature (Wet Bulb)"/>
45
+ <term name="Max Outdoor Air Temperature (Dry Bulb)"/>
46
+ <term name="Fan Control"/>
47
+ <term name="Design Condenser Water Flow Rate"/>
48
+ <term name="Design Chilled Water Supply Temperature"/>
49
+ <term name="Design Chilled Water Flow Rate"/>
50
+ <term name="Condenser Water Pressure drop at Design Flow Rate"/>
51
+ <term name="Condenser Type"/>
52
+ <term name="Compressor Type"/>
53
+ <term name="Compressor Motor Type"/>
54
+ <term name="Compressor Motor Efficiency"/>
55
+ <term name="Chilled Water Pressure Drop across Evaporator at Design Flow Rate"/>
56
+ <term name="Basin Heater Capacity"/>
57
+ <term name="AHRI Rated Coefficient of Performance "/>
58
+ <term name="AHRI Certified Reference Number"/>
59
+ </tag>
60
+ </tag>
61
+ <tag name="Packaged Unitary Equipment">
62
+ <term name="OpenStudio Type"/>
63
+ <tag name="Roof Top Units">
64
+ <term name="OpenStudio Type"/>
65
+ <term name="Type of Heating"/>
66
+ <term name="Turndown Ratio"/>
67
+ <term name="Sequence of Operations"/>
68
+ <term name="Seasonal Energy Efficiency Ratio"/>
69
+ <term name="Refrigerant"/>
70
+ <term name="Number of discrete speeds"/>
71
+ <term name="Number of discrete cooling stages"/>
72
+ <term name="Number of Heating stages"/>
73
+ <term name="Nominal Cooling Capacity"/>
74
+ <term name="Minimum speed as a fraction of maximum speed"/>
75
+ <term name="Minimum Outdoor Dryb Bulb for Cooling Operation"/>
76
+ <term name="Minimum Outdoor Dry Bulb for Heat Pump Operation"/>
77
+ <term name="Maximum Outdoor Dry Bulb for Heat Pump Operation"/>
78
+ <term name="Maximum Outdoor Dry Bulb for Cooling Operation"/>
79
+ <term name="Internal Static Pressure at full speed"/>
80
+ <term name="Integrated Energy Efficiency Ratio"/>
81
+ <term name="Indoor Fan Speed Control"/>
82
+ <term name="Heating Staging"/>
83
+ <term name="Evaporatively Cooled Condenser"/>
84
+ <term name="Energy Efficiency Ratio"/>
85
+ <term name="Economizer Control Types Available"/>
86
+ <term name="Degradation Coefficient "/>
87
+ <term name="Condenser Fan Speed Operation"/>
88
+ <term name="Compressor Staging"/>
89
+ <term name="Air-Source Heat Pump"/>
90
+ <term name="Active Dehumidification"/>
91
+ <term name="AHRI Certified Reference Number"/>
92
+ </tag>
93
+ </tag>
94
+ </tag>
95
+ <tag name="MEL">
96
+ <term name="OpenStudio Type"/>
97
+ <term name="Standby Power"/>
98
+ <term name="Peak Power"/>
99
+ <term name="Cycling Percent On"/>
100
+ <tag name="Appliance">
101
+ <term name="OpenStudio Type"/>
102
+ <term name="Standby Power"/>
103
+ <term name="Peak Power"/>
104
+ <term name="Cycling Percent On"/>
105
+ <tag name="Beverage Fountain">
106
+ <term name="OpenStudio Type"/>
107
+ <term name="Standby Power"/>
108
+ <term name="Peak Power"/>
109
+ <term name="Cycling Percent On"/>
110
+ </tag>
111
+ <tag name="Cash Exchange">
112
+ <term name="OpenStudio Type"/>
113
+ <term name="Standby Power"/>
114
+ <term name="Peak Power"/>
115
+ <term name="Cycling Percent On"/>
116
+ </tag>
117
+ <tag name="Coffee Maker">
118
+ <term name="OpenStudio Type"/>
119
+ <term name="Standby Power"/>
120
+ <term name="Peak Power"/>
121
+ <term name="Cycling Percent On"/>
122
+ </tag>
123
+ <tag name="Desktop Fan">
124
+ <term name="OpenStudio Type"/>
125
+ <term name="Standby Power"/>
126
+ <term name="Peak Power"/>
127
+ <term name="Cycling Percent On"/>
128
+ </tag>
129
+ <tag name="Drinking Fountain">
130
+ <term name="OpenStudio Type"/>
131
+ <term name="Standby Power"/>
132
+ <term name="Peak Power"/>
133
+ <term name="Cycling Percent On"/>
134
+ </tag>
135
+ <tag name="Food Warmer">
136
+ <term name="OpenStudio Type"/>
137
+ <term name="Standby Power"/>
138
+ <term name="Peak Power"/>
139
+ <term name="Cycling Percent On"/>
140
+ </tag>
141
+ <tag name="Freezer">
142
+ <term name="OpenStudio Type"/>
143
+ <term name="Standby Power"/>
144
+ <term name="Peak Power"/>
145
+ <term name="Cycling Percent On"/>
146
+ </tag>
147
+ <tag name="Ice Machine">
148
+ <term name="OpenStudio Type"/>
149
+ <term name="Standby Power"/>
150
+ <term name="Peak Power"/>
151
+ <term name="Cycling Percent On"/>
152
+ </tag>
153
+ <tag name="Microwave">
154
+ <term name="OpenStudio Type"/>
155
+ <term name="Standby Power"/>
156
+ <term name="Peak Power"/>
157
+ <term name="Cycling Percent On"/>
158
+ </tag>
159
+ <tag name="Mini-fridge">
160
+ <term name="OpenStudio Type"/>
161
+ <term name="Standby Power"/>
162
+ <term name="Peak Power"/>
163
+ <term name="Cycling Percent On"/>
164
+ </tag>
165
+ <tag name="Personal Heater">
166
+ <term name="OpenStudio Type"/>
167
+ <term name="Standby Power"/>
168
+ <term name="Peak Power"/>
169
+ <term name="Cycling Percent On"/>
170
+ </tag>
171
+ <tag name="Refrigerated Vending Machine">
172
+ <term name="OpenStudio Type"/>
173
+ <term name="Standby Power"/>
174
+ <term name="Peak Power"/>
175
+ <term name="Cycling Percent On"/>
176
+ </tag>
177
+ <tag name="Refrigerator">
178
+ <term name="OpenStudio Type"/>
179
+ <term name="Standby Power"/>
180
+ <term name="Peak Power"/>
181
+ <term name="Cycling Percent On"/>
182
+ </tag>
183
+ <tag name="Vending Machine">
184
+ <term name="OpenStudio Type"/>
185
+ <term name="Standby Power"/>
186
+ <term name="Peak Power"/>
187
+ <term name="Cycling Percent On"/>
188
+ </tag>
189
+ <tag name="Water Cooler">
190
+ <term name="OpenStudio Type"/>
191
+ <term name="Standby Power"/>
192
+ <term name="Peak Power"/>
193
+ <term name="Cycling Percent On"/>
194
+ </tag>
195
+ <tag name="Water Purifier">
196
+ <term name="OpenStudio Type"/>
197
+ <term name="Standby Power"/>
198
+ <term name="Peak Power"/>
199
+ <term name="Cycling Percent On"/>
200
+ </tag>
201
+ </tag>
202
+ <tag name="Audio">
203
+ <term name="OpenStudio Type"/>
204
+ <term name="Standby Power"/>
205
+ <term name="Peak Power"/>
206
+ <term name="Cycling Percent On"/>
207
+ </tag>
208
+ <tag name="Computer">
209
+ <term name="OpenStudio Type"/>
210
+ <term name="Standby Power"/>
211
+ <term name="Peak Power"/>
212
+ <term name="Cycling Percent On"/>
213
+ <tag name="Desktop">
214
+ <term name="OpenStudio Type"/>
215
+ <term name="Standby Power"/>
216
+ <term name="Peak Power"/>
217
+ <term name="Cycling Percent On"/>
218
+ </tag>
219
+ <tag name="Integrated Display Computer">
220
+ <term name="OpenStudio Type"/>
221
+ <term name="Standby Power"/>
222
+ <term name="Peak Power"/>
223
+ <term name="Cycling Percent On"/>
224
+ </tag>
225
+ <tag name="Notebook">
226
+ <term name="OpenStudio Type"/>
227
+ <term name="Standby Power"/>
228
+ <term name="Peak Power"/>
229
+ <term name="Cycling Percent On"/>
230
+ </tag>
231
+ </tag>
232
+ <tag name="Display">
233
+ <term name="OpenStudio Type"/>
234
+ <term name="Standby Power"/>
235
+ <term name="Peak Power"/>
236
+ <term name="Cycling Percent On"/>
237
+ <tag name="CRT Monitor">
238
+ <term name="OpenStudio Type"/>
239
+ <term name="Standby Power"/>
240
+ <term name="Peak Power"/>
241
+ <term name="Cycling Percent On"/>
242
+ </tag>
243
+ <tag name="CRT Television">
244
+ <term name="OpenStudio Type"/>
245
+ <term name="Standby Power"/>
246
+ <term name="Peak Power"/>
247
+ <term name="Cycling Percent On"/>
248
+ </tag>
249
+ <tag name="Digital Photo Frame">
250
+ <term name="OpenStudio Type"/>
251
+ <term name="Standby Power"/>
252
+ <term name="Peak Power"/>
253
+ <term name="Cycling Percent On"/>
254
+ </tag>
255
+ <tag name="LCD Monitor">
256
+ <term name="OpenStudio Type"/>
257
+ <term name="Standby Power"/>
258
+ <term name="Peak Power"/>
259
+ <term name="Cycling Percent On"/>
260
+ </tag>
261
+ <tag name="LCD Television">
262
+ <term name="OpenStudio Type"/>
263
+ <term name="Standby Power"/>
264
+ <term name="Peak Power"/>
265
+ <term name="Cycling Percent On"/>
266
+ </tag>
267
+ <tag name="Plasma Television">
268
+ <term name="OpenStudio Type"/>
269
+ <term name="Standby Power"/>
270
+ <term name="Peak Power"/>
271
+ <term name="Cycling Percent On"/>
272
+ </tag>
273
+ <tag name="Projector">
274
+ <term name="OpenStudio Type"/>
275
+ <term name="Standby Power"/>
276
+ <term name="Peak Power"/>
277
+ <term name="Cycling Percent On"/>
278
+ </tag>
279
+ </tag>
280
+ <tag name="Imaging and Printing">
281
+ <term name="OpenStudio Type"/>
282
+ <term name="Standby Power"/>
283
+ <term name="Peak Power"/>
284
+ <term name="Cycling Percent On"/>
285
+ <tag name="Network Printer / Fax / Scanner">
286
+ <term name="OpenStudio Type"/>
287
+ <term name="Standby Power"/>
288
+ <term name="Peak Power"/>
289
+ <term name="Cycling Percent On"/>
290
+ </tag>
291
+ <tag name="Personal Printer / Fax / Scanner">
292
+ <term name="OpenStudio Type"/>
293
+ <term name="Standby Power"/>
294
+ <term name="Peak Power"/>
295
+ <term name="Cycling Percent On"/>
296
+ </tag>
297
+ </tag>
298
+ <tag name="Lighting">
299
+ <term name="OpenStudio Type"/>
300
+ <term name="Standby Power"/>
301
+ <term name="Peak Power"/>
302
+ <term name="Cycling Percent On"/>
303
+ <tag name="Egress Light">
304
+ <term name="OpenStudio Type"/>
305
+ <term name="Standby Power"/>
306
+ <term name="Peak Power"/>
307
+ <term name="Cycling Percent On"/>
308
+ </tag>
309
+ <tag name="Task Light">
310
+ <term name="OpenStudio Type"/>
311
+ <term name="Standby Power"/>
312
+ <term name="Peak Power"/>
313
+ <term name="Cycling Percent On"/>
314
+ </tag>
315
+ </tag>
316
+ <tag name="Medical Diagnostic">
317
+ <term name="OpenStudio Type"/>
318
+ <term name="Standby Power"/>
319
+ <term name="Peak Power"/>
320
+ <term name="Cycling Percent On"/>
321
+ </tag>
322
+ <tag name="Personal Care">
323
+ <term name="OpenStudio Type"/>
324
+ <term name="Standby Power"/>
325
+ <term name="Peak Power"/>
326
+ <term name="Cycling Percent On"/>
327
+ </tag>
328
+ </tag>
329
+ <tag name="Material">
330
+ <term name="OpenStudio Type"/>
331
+ <tag name="Opaque">
332
+ <term name="OpenStudio Type"/>
333
+ <term name="Typical Application"/>
334
+ <term name="Thickness"/>
335
+ <term name="Sub-Category"/>
336
+ <term name="Stud Spacing"/>
337
+ <term name="Specific Heat"/>
338
+ <term name="Resistance"/>
339
+ <term name="Nominal Stud Width"/>
340
+ <term name="Nominal Header Insulation Resistance"/>
341
+ <term name="Nominal Cavity Insulation Resistance"/>
342
+ <term name="Density"/>
343
+ <term name="Conductivity"/>
344
+ <term name="Category"/>
345
+ <term name="Block Fill Type"/>
346
+ </tag>
347
+ </tag>
348
+ <tag name="Occupant">
349
+ <term name="OpenStudio Type"/>
350
+ <term name="Women Heat Multiplier"/>
351
+ <term name="Total Heat Men"/>
352
+ <term name="Percent Sensible Heat that is Radiant"/>
353
+ <term name="Children Heat Multiplier"/>
354
+ <term name="Carbon Dioxide Generation Rate"/>
355
+ </tag>
356
+ <tag name="On-Site Power Generation">
357
+ <term name="OpenStudio Type"/>
358
+ <tag name="Photovoltaic System">
359
+ <term name="OpenStudio Type"/>
360
+ <tag name="Photovoltaic Module">
361
+ <term name="OpenStudio Type"/>
362
+ <term name="Short Circuit Current"/>
363
+ <term name="Open Circuit Voltage"/>
364
+ <term name="Maximum Power Voltage"/>
365
+ <term name="Maximum Power Current"/>
366
+ <term name="Maximum Power"/>
367
+ <term name="Efficiency at Maximum Power"/>
368
+ <term name="Cell Technology"/>
369
+ <term name="Area"/>
370
+ </tag>
371
+ </tag>
372
+ </tag>
373
+ <tag name="Space Use">
374
+ <term name="OpenStudio Type"/>
375
+ <tag name="Electric Lighting">
376
+ <term name="OpenStudio Type"/>
377
+ <tag name="Lamp Ballast">
378
+ <term name="OpenStudio Type"/>
379
+ <term name="Total Harmonic Distortion"/>
380
+ <term name="Starting Method"/>
381
+ <term name="Product Number"/>
382
+ <term name="Number of Lamps"/>
383
+ <term name="Input Voltage"/>
384
+ <term name="Input Power Factor"/>
385
+ <term name="Input Power"/>
386
+ <term name="Ballast Type"/>
387
+ <term name="Ballast Manufacturer"/>
388
+ <term name="Ballast Factor"/>
389
+ <term name="ANSI Lamp Shape Designation"/>
390
+ </tag>
391
+ <tag name="Non-SSL Lamp">
392
+ <term name="OpenStudio Type"/>
393
+ <term name="Standard Photometric Data"/>
394
+ <term name="Rated Life"/>
395
+ <term name="Product Number"/>
396
+ <term name="Mean Luminous Flux"/>
397
+ <term name="Manufacturer"/>
398
+ <term name="Input Power"/>
399
+ <term name="Initial Luminous Flux"/>
400
+ <term name="Correlated Color Temperature"/>
401
+ <term name="Color Rendering Index"/>
402
+ <term name="ANSI Lamp Shape Designation"/>
403
+ </tag>
404
+ <tag name="Non-SSL Luminaire">
405
+ <term name="OpenStudio Type"/>
406
+ <term name="Standard Photometric Data"/>
407
+ <term name="Number of Lamps"/>
408
+ <term name="Mounting Type"/>
409
+ <term name="Luminaire Product Number"/>
410
+ <term name="Luminaire Manufacturer"/>
411
+ <term name="Light Source Type"/>
412
+ <term name="ANSI Lamp Shape Designation"/>
413
+ </tag>
414
+ <tag name="SSL Luminaire">
415
+ <term name="OpenStudio Type"/>
416
+ <term name="Total Luminous Flux"/>
417
+ <term name="Total Harmonic Distortion"/>
418
+ <term name="Standard Photometric Data"/>
419
+ <term name="Product Number"/>
420
+ <term name="Mounting Type"/>
421
+ <term name="Manufacturer"/>
422
+ <term name="Luminous Efficacy"/>
423
+ <term name="Lumen Maintenance"/>
424
+ <term name="Input Voltage"/>
425
+ <term name="Input Power Factor"/>
426
+ <term name="Input Power"/>
427
+ <term name="Correlated Color Temperature"/>
428
+ <term name="Color Rendering Index"/>
429
+ </tag>
430
+ <tag name="SSL Replacement Lamp">
431
+ <term name="OpenStudio Type"/>
432
+ <term name="Standard Photometric Data"/>
433
+ <term name="Lumen Maintenance"/>
434
+ <term name="Lamp Product Number"/>
435
+ <term name="Lamp Manufacturer"/>
436
+ <term name="Input Power"/>
437
+ <term name="Correlated Color Temperature"/>
438
+ <term name="Color Rendering Index"/>
439
+ <term name="ANSI Lamp Shape Designation"/>
440
+ </tag>
441
+ </tag>
442
+ <tag name="Lighting">
443
+ <term name="OpenStudio Type"/>
444
+ <tag name="SSL Replacement Lamp">
445
+ <term name="OpenStudio Type"/>
446
+ <term name="Initial Luminous Flux"/>
447
+ </tag>
448
+ </tag>
449
+ </tag>
450
+ </tag>
451
+ </schema>