honeybee-openstudio 2.36.3 → 2.38.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1fbc207b16eff02f4b762a09827b0fc6cf2e5bbcec27b85439dd1f5038c946e
4
- data.tar.gz: '091fc6e1b26594885034f75988b8c97c7fcaf43b0ea6297abeed3d697b8cbb4a'
3
+ metadata.gz: 29f2ccee97b67e79d4c5ac17749a0e27d3fbce5c39a9bd35b1cc8ede1e4b324b
4
+ data.tar.gz: 543203bb0e0b04b2e333c5b6cdb4e0d9d9f71dce069cdca49ce885d46eb406e1
5
5
  SHA512:
6
- metadata.gz: b746bb50d8ad80906725481c3dd58d7bdab0cfb94c332b15d6212691d91c3bcf7be1fb3bf5d1e918ca91f3e489580f5c54b398d2066b5e606e4d2db08c9c57c2
7
- data.tar.gz: f9d5307ebce3b2425d3d7d48877d91a648364ecc5252a57c4f7bf5eaefed9a7a89869fb166cf0b09a69b616afb5721661be6a0733df5103f7c0025079cbd9143
6
+ metadata.gz: f774d8538c3a2ef55628adabc6ff8a733113bf2aa8a0584cc63364750d214bb800ae4dcf002c74d0b4260d9e7c921ee42003e4ba09e1c337c2551581aa6fe615
7
+ data.tar.gz: 5bbe03f646a5e63b058c10a556a0694f1eaf84e74d88921c5c247a62d91a4908435093d22406f73f415f9b282393783f6740cfcc2fda238cf9d80da1eb4330aa
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'honeybee-openstudio'
7
- spec.version = '2.36.3'
7
+ spec.version = '2.38.0'
8
8
  spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
9
9
  spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
10
10
 
@@ -3,7 +3,7 @@
3
3
  "servers": [],
4
4
  "info": {
5
5
  "description": "Honeybee model schema.",
6
- "version": "1.53.4",
6
+ "version": "1.55.0",
7
7
  "title": "Honeybee Model Schema",
8
8
  "contact": {
9
9
  "name": "Ladybug Tools",
@@ -204,6 +204,11 @@
204
204
  "x-displayName": "ElectricEquipmentAbridged",
205
205
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/ElectricEquipmentAbridged\" />\n"
206
206
  },
207
+ {
208
+ "name": "electricloadcenter_model",
209
+ "x-displayName": "ElectricLoadCenter",
210
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/ElectricLoadCenter\" />\n"
211
+ },
207
212
  {
208
213
  "name": "energymaterial_model",
209
214
  "x-displayName": "EnergyMaterial",
@@ -484,11 +489,21 @@
484
489
  "x-displayName": "ModifierSetAbridged",
485
490
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/ModifierSetAbridged\" />\n"
486
491
  },
492
+ {
493
+ "name": "moduletype_model",
494
+ "x-displayName": "ModuleType",
495
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/ModuleType\" />\n"
496
+ },
487
497
  {
488
498
  "name": "moisturediffusionmodel_model",
489
499
  "x-displayName": "MoistureDiffusionModel",
490
500
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/MoistureDiffusionModel\" />\n"
491
501
  },
502
+ {
503
+ "name": "mountingtype_model",
504
+ "x-displayName": "MountingType",
505
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/MountingType\" />\n"
506
+ },
492
507
  {
493
508
  "name": "nolimit_model",
494
509
  "x-displayName": "NoLimit",
@@ -544,6 +559,11 @@
544
559
  "x-displayName": "PVAVEquipmentType",
545
560
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/PVAVEquipmentType\" />\n"
546
561
  },
562
+ {
563
+ "name": "pvproperties_model",
564
+ "x-displayName": "PVProperties",
565
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/PVProperties\" />\n"
566
+ },
547
567
  {
548
568
  "name": "people_model",
549
569
  "x-displayName": "People",
@@ -889,6 +909,11 @@
889
909
  "x-displayName": "VentilationControlType",
890
910
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/VentilationControlType\" />\n"
891
911
  },
912
+ {
913
+ "name": "ventilationfan_model",
914
+ "x-displayName": "VentilationFan",
915
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/VentilationFan\" />\n"
916
+ },
892
917
  {
893
918
  "name": "ventilationopening_model",
894
919
  "x-displayName": "VentilationOpening",
@@ -899,6 +924,11 @@
899
924
  "x-displayName": "VentilationSimulationControl",
900
925
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/VentilationSimulationControl\" />\n"
901
926
  },
927
+ {
928
+ "name": "ventilationtype_model",
929
+ "x-displayName": "VentilationType",
930
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/VentilationType\" />\n"
931
+ },
902
932
  {
903
933
  "name": "view_model",
904
934
  "x-displayName": "View",
@@ -1040,6 +1070,7 @@
1040
1070
  "economizertype_model",
1041
1071
  "electricequipment_model",
1042
1072
  "electricequipmentabridged_model",
1073
+ "electricloadcenter_model",
1043
1074
  "energymaterial_model",
1044
1075
  "energymaterialnomass_model",
1045
1076
  "energymaterialvegetation_model",
@@ -1096,7 +1127,9 @@
1096
1127
  "modelradianceproperties_model",
1097
1128
  "modifierset_model",
1098
1129
  "modifiersetabridged_model",
1130
+ "moduletype_model",
1099
1131
  "moisturediffusionmodel_model",
1132
+ "mountingtype_model",
1100
1133
  "nolimit_model",
1101
1134
  "opaqueconstruction_model",
1102
1135
  "opaqueconstructionabridged_model",
@@ -1115,6 +1148,7 @@
1115
1148
  "ptacequipmenttype_model",
1116
1149
  "pvav_model",
1117
1150
  "pvavequipmenttype_model",
1151
+ "pvproperties_model",
1118
1152
  "radianceshadestateabridged_model",
1119
1153
  "radiancesubfacestateabridged_model",
1120
1154
  "radiant_model",
@@ -1173,8 +1207,10 @@
1173
1207
  "ventilationabridged_model",
1174
1208
  "ventilationcontrolabridged_model",
1175
1209
  "ventilationcontroltype_model",
1210
+ "ventilationfan_model",
1176
1211
  "ventilationopening_model",
1177
1212
  "ventilationsimulationcontrol_model",
1213
+ "ventilationtype_model",
1178
1214
  "view_model",
1179
1215
  "viewtype_model",
1180
1216
  "vintages_model",
@@ -1483,6 +1519,104 @@
1483
1519
  },
1484
1520
  "additionalProperties": false
1485
1521
  },
1522
+ "ModuleType": {
1523
+ "title": "ModuleType",
1524
+ "description": "An enumeration.",
1525
+ "enum": [
1526
+ "Standard",
1527
+ "Premium",
1528
+ "ThinFilm"
1529
+ ],
1530
+ "type": "string"
1531
+ },
1532
+ "MountingType": {
1533
+ "title": "MountingType",
1534
+ "description": "An enumeration.",
1535
+ "enum": [
1536
+ "FixedOpenRack",
1537
+ "FixedRoofMounted",
1538
+ "OneAxis",
1539
+ "OneAxisBacktracking",
1540
+ "TwoAxis"
1541
+ ],
1542
+ "type": "string"
1543
+ },
1544
+ "PVProperties": {
1545
+ "title": "PVProperties",
1546
+ "description": "Base class for all objects requiring a valid EnergyPlus identifier.",
1547
+ "type": "object",
1548
+ "properties": {
1549
+ "identifier": {
1550
+ "title": "Identifier",
1551
+ "description": "Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be < 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t).",
1552
+ "maxLength": 100,
1553
+ "minLength": 1,
1554
+ "pattern": "^[^,;!\\n\\t]+$",
1555
+ "type": "string"
1556
+ },
1557
+ "display_name": {
1558
+ "title": "Display Name",
1559
+ "description": "Display name of the object with no character restrictions.",
1560
+ "type": "string"
1561
+ },
1562
+ "type": {
1563
+ "title": "Type",
1564
+ "default": "PVProperties",
1565
+ "pattern": "^PVProperties$",
1566
+ "type": "string",
1567
+ "readOnly": true
1568
+ },
1569
+ "rated_efficiency": {
1570
+ "title": "Rated Efficiency",
1571
+ "description": "A number between 0 and 1 for the rated nameplate efficiency of the photovoltaic solar cells under standard test conditions (STC). Standard test conditions are 1,000 Watts per square meter solar irradiance, 25 degrees C cell temperature, and ASTM G173-03 standard spectrum. Nameplate efficiencies reported by manufacturers are typically under STC. Standard poly- or mono-crystalline silicon modules tend to have rated efficiencies in the range of 14-17%. Premium high efficiency mono-crystalline silicon modules with anti-reflective coatings can have efficiencies in the range of 18-20%. Thin film photovoltaic modules typically have efficiencies of 11% or less. (Default: 0.15 for standard silicon solar cells).",
1572
+ "default": 0.15,
1573
+ "exclusiveMinimum": 0,
1574
+ "exclusiveMaximum": 1,
1575
+ "type": "number",
1576
+ "format": "double"
1577
+ },
1578
+ "active_area_fraction": {
1579
+ "title": "Active Area Fraction",
1580
+ "description": "The fraction of the parent Shade geometry that is covered in active solar cells. This fraction includes the difference between the PV panel (aka. PV module) area and the active cells within the panel as well as any losses for how the (typically rectangular) panels can be arranged on the Shade geometry. When the parent Shade geometry represents just the solar panels, this fraction is typically around 0.9 given that the framing elements of the panel reduce the overall active area. (Default: 0.9, assuming parent Shade geometry represents only the PV panel geometry).",
1581
+ "default": 0.9,
1582
+ "exclusiveMinimum": 0,
1583
+ "maximum": 1,
1584
+ "type": "number",
1585
+ "format": "double"
1586
+ },
1587
+ "module_type": {
1588
+ "description": "Text to indicate the type of solar module. This is used to determine the temperature coefficients used in the simulation of the photovoltaic modules. When the rated_efficiency is between 12-18%, the Standard type is typically most appropriate. When the rated_efficiency is greater than 18%, the Premium type is likely more appropriate. When the rated_efficiency is less than 12%, this likely refers to a case where the ThinFilm module type is most appropriate.",
1589
+ "default": "Standard",
1590
+ "allOf": [
1591
+ {
1592
+ "$ref": "#/components/schemas/ModuleType"
1593
+ }
1594
+ ]
1595
+ },
1596
+ "mounting_type": {
1597
+ "description": "Text to indicate the type of mounting and/or tracking used for the photovoltaic array. Note that the OneAxis options have an axis of rotation that is determined by the azimuth of the parent Shade geometry. Also note that, in the case of one or two axis tracking, shadows on the (static) parent Shade geometry still reduce the electrical output, enabling the simulation to account for large context geometry casting shadows on the array. However, the effects of smaller detailed shading may be improperly accounted for and self shading of the dynamic panel geometry is only accounted for via the tracking_ground_coverage_ratio property on this object. FixedOpenRack refers to ground or roof mounting where the air flows freely. FixedRoofMounted refers to mounting flush with the roof with limited air flow. OneAxis refers to a fixed tilt and azimuth, which define an axis of rotation. OneAxisBacktracking is the same as OneAxis but with controls to reduce self-shade at low sun angles. TwoAxis refers to a dynamic tilt and azimuth that track the sun.",
1598
+ "default": "FixedOpenRack",
1599
+ "allOf": [
1600
+ {
1601
+ "$ref": "#/components/schemas/MountingType"
1602
+ }
1603
+ ]
1604
+ },
1605
+ "system_loss_fraction": {
1606
+ "title": "System Loss Fraction",
1607
+ "description": "A number between 0 and 1 for the fraction of the electricity output lost due to factors other than EPW weather conditions, panel efficiency/type, active area, mounting, and inverter conversion from DC to AC. Factors that should be accounted for in this input include soiling, snow, wiring losses, electrical connection losses, manufacturer defects/tolerances/mismatch in cell characteristics, losses from power grid availability, and losses due to age or light-induced degradation. Losses from these factors tend to be between 10-20% but can vary widely depending on the installation, maintenance and the grid to which the panels are connected..",
1608
+ "default": 0.14,
1609
+ "minimum": 0,
1610
+ "maximum": 1,
1611
+ "type": "number",
1612
+ "format": "double"
1613
+ }
1614
+ },
1615
+ "required": [
1616
+ "identifier"
1617
+ ],
1618
+ "additionalProperties": false
1619
+ },
1486
1620
  "ShadeEnergyPropertiesAbridged": {
1487
1621
  "title": "ShadeEnergyPropertiesAbridged",
1488
1622
  "description": "Base class for all objects that are not extensible with additional keys.\n\nThis effectively includes all objects except for the Properties classes\nthat are assigned to geometry objects.",
@@ -1508,6 +1642,15 @@
1508
1642
  "maxLength": 100,
1509
1643
  "minLength": 1,
1510
1644
  "type": "string"
1645
+ },
1646
+ "pv_properties": {
1647
+ "title": "Pv Properties",
1648
+ "description": "An optional PVProperties object to specify photovoltaic behavior of the Shade. If None, the Shade will have no Photovoltaic properties. Note that the normal of the Shade is important in determining the performance of the shade as a PV geometry.",
1649
+ "allOf": [
1650
+ {
1651
+ "$ref": "#/components/schemas/PVProperties"
1652
+ }
1653
+ ]
1511
1654
  }
1512
1655
  },
1513
1656
  "additionalProperties": false
@@ -3175,6 +3318,90 @@
3175
3318
  },
3176
3319
  "additionalProperties": false
3177
3320
  },
3321
+ "VentilationType": {
3322
+ "title": "VentilationType",
3323
+ "description": "An enumeration.",
3324
+ "enum": [
3325
+ "Exhaust",
3326
+ "Intake",
3327
+ "Balanced"
3328
+ ],
3329
+ "type": "string"
3330
+ },
3331
+ "VentilationFan": {
3332
+ "title": "VentilationFan",
3333
+ "description": "Base class for all objects requiring a valid EnergyPlus identifier.",
3334
+ "type": "object",
3335
+ "properties": {
3336
+ "identifier": {
3337
+ "title": "Identifier",
3338
+ "description": "Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be < 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t).",
3339
+ "maxLength": 100,
3340
+ "minLength": 1,
3341
+ "pattern": "^[^,;!\\n\\t]+$",
3342
+ "type": "string"
3343
+ },
3344
+ "flow_rate": {
3345
+ "title": "Flow Rate",
3346
+ "description": "A number for the flow rate of the fan in m3/s.",
3347
+ "exclusiveMinimum": 0,
3348
+ "type": "number",
3349
+ "format": "double"
3350
+ },
3351
+ "pressure_rise": {
3352
+ "title": "Pressure Rise",
3353
+ "description": "A number for the the pressure rise across the fan in Pascals (N/m2). This is often a function of the fan speed and the conditions in which the fan is operating since having the fan blow air through filters or narrow ducts will increase the pressure rise that is needed to deliver the input flow rate. The pressure rise plays an important role in determining the amount of energy consumed by the fan. Smaller fans like a 0.05 m3/s desk fan tend to have lower pressure rises around 60 Pa. Larger fans, such as a 6 m3/s fan used for ventilating a large room tend to have higher pressure rises around 400 Pa. The highest pressure rises are typically for large fans blowing air through ducts and filters, which can have pressure rises as high as 1000 Pa.",
3354
+ "exclusiveMinimum": 0,
3355
+ "type": "number",
3356
+ "format": "double"
3357
+ },
3358
+ "efficiency": {
3359
+ "title": "Efficiency",
3360
+ "description": "A number between 0 and 1 for the overall efficiency of the fan. Specifically, this is the ratio of the power delivered to the fluid to the electrical input power. It is the product of the fan motor efficiency and the fan impeller efficiency. Fans that have a higher blade diameter and operate at lower speeds with smaller pressure rises for their size tend to have higher efficiencies. Because motor efficiencies are typically between 0.8 and 0.9, the best overall fan efficiencies tend to be around 0.7 with most typical fan efficiencies between 0.5 and 0.7. The lowest efficiencies often happen for small fans in situations with high pressure rises for their size, which can result in efficiencies as low as 0.15.",
3361
+ "minimum": 0,
3362
+ "maximum": 1,
3363
+ "type": "number",
3364
+ "format": "double"
3365
+ },
3366
+ "display_name": {
3367
+ "title": "Display Name",
3368
+ "description": "Display name of the object with no character restrictions.",
3369
+ "type": "string"
3370
+ },
3371
+ "type": {
3372
+ "title": "Type",
3373
+ "default": "VentilationFan",
3374
+ "pattern": "^VentilationFan$",
3375
+ "type": "string",
3376
+ "readOnly": true
3377
+ },
3378
+ "ventilation_type": {
3379
+ "description": "Text to indicate the type of type of ventilation. Choose from the options below. For either Exhaust or Intake, values for fan pressure and efficiency define the fan electric consumption. For Exhaust ventilation, the conditions of the air entering the space are assumed to be equivalent to outside air conditions. For Intake and Balanced ventilation, an appropriate amount of fan heat is added to the entering air stream. For Balanced ventilation, both an intake fan and an exhaust fan are assumed to co-exist, both having the same flow rate and power consumption (using the entered values for fan pressure rise and fan total efficiency). Thus, the fan electric consumption for Balanced ventilation is twice that for the Exhaust or Intake ventilation types which employ only a single fan.",
3380
+ "default": "Balanced",
3381
+ "allOf": [
3382
+ {
3383
+ "$ref": "#/components/schemas/VentilationType"
3384
+ }
3385
+ ]
3386
+ },
3387
+ "control": {
3388
+ "title": "Control",
3389
+ "description": "A VentilationControl object that dictates the conditions under which the fan is turned on. If None, a default VentilationControl will be generated, which will keep the fan on all of the time.",
3390
+ "allOf": [
3391
+ {
3392
+ "$ref": "#/components/schemas/VentilationControlAbridged"
3393
+ }
3394
+ ]
3395
+ }
3396
+ },
3397
+ "required": [
3398
+ "identifier",
3399
+ "flow_rate",
3400
+ "pressure_rise",
3401
+ "efficiency"
3402
+ ],
3403
+ "additionalProperties": false
3404
+ },
3178
3405
  "InternalMassAbridged": {
3179
3406
  "title": "InternalMassAbridged",
3180
3407
  "description": "Base class for all objects requiring an EnergyPlus identifier and user_data.",
@@ -3474,6 +3701,14 @@
3474
3701
  }
3475
3702
  ]
3476
3703
  },
3704
+ "fans": {
3705
+ "title": "Fans",
3706
+ "description": "An optional list of VentilationFan objects for fans within the room. Note that these fans are not connected to the heating or cooling system and are meant to represent the intentional circulation of unconditioned outdoor air for the purposes of keeping a space cooler, drier or free of indoor pollutants (as in the case of kitchen or bathroom exhaust fans). For the specification of mechanical ventilation of conditioned outdoor air, the Room.ventilation property should be used and the Room should be given a HVAC that can meet this specification.",
3707
+ "type": "array",
3708
+ "items": {
3709
+ "$ref": "#/components/schemas/VentilationFan"
3710
+ }
3711
+ },
3477
3712
  "internal_masses": {
3478
3713
  "title": "Internal Masses",
3479
3714
  "description": "An optional list of of InternalMass objects for thermal mass exposed to Room air. Note that internal masses assigned this way cannot \"see\" solar radiation that may potentially hit them and, as such, caution should be taken when using this component with internal mass objects that are not always in shade. Masses are factored into the the thermal calculations of the Room by undergoing heat transfer with the indoor air.",
@@ -10737,6 +10972,38 @@
10737
10972
  },
10738
10973
  "additionalProperties": false
10739
10974
  },
10975
+ "ElectricLoadCenter": {
10976
+ "title": "ElectricLoadCenter",
10977
+ "description": "Base class for all objects that are not extensible with additional keys.\n\nThis effectively includes all objects except for the Properties classes\nthat are assigned to geometry objects.",
10978
+ "type": "object",
10979
+ "properties": {
10980
+ "type": {
10981
+ "title": "Type",
10982
+ "default": "ElectricLoadCenter",
10983
+ "pattern": "^ElectricLoadCenter$",
10984
+ "type": "string",
10985
+ "readOnly": true
10986
+ },
10987
+ "inverter_efficiency": {
10988
+ "title": "Inverter Efficiency",
10989
+ "description": "A number between 0 and 1 for the load center inverter nominal rated DC-to-AC conversion efficiency. An inverter converts DC power, such as that output by photovoltaic panels, to AC power, such as that distributed by the electrical grid and is available from standard electrical outlets. Inverter efficiency is defined as the inverter rated AC power output divided by its rated DC power output.",
10990
+ "default": 0.96,
10991
+ "exclusiveMinimum": 0,
10992
+ "maximum": 1,
10993
+ "type": "number",
10994
+ "format": "double"
10995
+ },
10996
+ "inverter_dc_to_ac_size_ratio": {
10997
+ "title": "Inverter Dc To Ac Size Ratio",
10998
+ "description": "A positive number (typically greater than 1) for the ratio of the inverter DC rated size to its AC rated size. Typically, inverters are not sized to convert the full DC output under standard test conditions (STC) as such conditions rarely occur in reality and therefore unnecessarily add to the size/cost of the inverter. For a system with a high DC to AC size ratio, during times when the DC power output exceeds the inverter rated DC input size, the inverter limits the power output by increasing the DC operating voltage, which moves the arrays operating point down its current-voltage (I-V) curve. In EnergyPlus, this is accomplished by simply limiting the system output to the AC size as dictated by the ratio. The default value of 1.1 is reasonable for most systems. A typical range is 1.1 to 1.25, although some large-scale systems have ratios of as high as 1.5. The optimal value depends on the system location, array orientation, and module cost.",
10999
+ "default": 1.1,
11000
+ "exclusiveMinimum": 0,
11001
+ "type": "number",
11002
+ "format": "double"
11003
+ }
11004
+ },
11005
+ "additionalProperties": false
11006
+ },
10740
11007
  "ModelEnergyProperties": {
10741
11008
  "title": "ModelEnergyProperties",
10742
11009
  "description": "Base class for all objects that are not extensible with additional keys.\n\nThis effectively includes all objects except for the Properties classes\nthat are assigned to geometry objects.",
@@ -11417,6 +11684,15 @@
11417
11684
  "$ref": "#/components/schemas/VentilationSimulationControl"
11418
11685
  }
11419
11686
  ]
11687
+ },
11688
+ "electric_load_center": {
11689
+ "title": "Electric Load Center",
11690
+ "description": "An optional parameter object that defines the properties of the model electric loads center that manages on site electricity generation and conversion.",
11691
+ "allOf": [
11692
+ {
11693
+ "$ref": "#/components/schemas/ElectricLoadCenter"
11694
+ }
11695
+ ]
11420
11696
  }
11421
11697
  },
11422
11698
  "additionalProperties": false
@@ -14519,7 +14795,7 @@
14519
14795
  "version": {
14520
14796
  "title": "Version",
14521
14797
  "description": "Text string for the current version of the schema.",
14522
- "default": "1.53.4",
14798
+ "default": "1.55.0",
14523
14799
  "pattern": "([0-9]+)\\.([0-9]+)\\.([0-9]+)",
14524
14800
  "type": "string",
14525
14801
  "readOnly": true
@@ -0,0 +1,42 @@
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 'honeybee/model_object'
33
+
34
+ module Honeybee
35
+ class ElectricLoadCenter < ModelObject
36
+
37
+ def defaults
38
+ @@schema[:components][:schemas][:ElectricLoadCenter][:properties]
39
+ end
40
+
41
+ end #ElectricLoadCenter
42
+ end #Honeybee
@@ -0,0 +1,42 @@
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 'honeybee/model_object'
33
+
34
+ module Honeybee
35
+ class PVProperties < ModelObject
36
+
37
+ def defaults
38
+ @@schema[:components][:schemas][:PVProperties][:properties]
39
+ end
40
+
41
+ end #PVProperties
42
+ end #Honeybee
@@ -0,0 +1,42 @@
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 'honeybee/model_object'
33
+
34
+ module Honeybee
35
+ class VentilationFanAbridged < ModelObject
36
+
37
+ def defaults
38
+ @@schema[:components][:schemas][:VentilationFanAbridged][:properties]
39
+ end
40
+
41
+ end #VentilationFanAbridged
42
+ end #Honeybee
data/lib/honeybee.rb CHANGED
@@ -91,10 +91,15 @@ require 'honeybee/schedule/ruleset'
91
91
 
92
92
  # import the ventilation and internal mass objects
93
93
  require 'honeybee/ventcool/control'
94
+ require 'honeybee/ventcool/fan'
94
95
  require 'honeybee/ventcool/opening'
95
96
  require 'honeybee/ventcool/simulation'
96
97
  require 'honeybee/internalmass'
97
98
 
99
+ # import the generator objects
100
+ require 'honeybee/generator/loadcenter'
101
+ require 'honeybee/generator/pv'
102
+
98
103
  # import the simulation objects
99
104
  require 'honeybee/simulation/design_day'
100
105
  require 'honeybee/simulation/parameter_model'
@@ -0,0 +1,71 @@
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 'honeybee/generator/loadcenter'
33
+
34
+ require 'to_openstudio/model_object'
35
+
36
+ module Honeybee
37
+ class ElectricLoadCenter
38
+
39
+ def to_openstudio(openstudio_model, generator_objects)
40
+ # create the ElectricLoadCenter:Distribution specification
41
+ load_center = OpenStudio::Model::ElectricLoadCenterDistribution.new(openstudio_model)
42
+ load_center.setName('Model Load Center Distribution')
43
+
44
+ # add the generators to the specification
45
+ generator_objects.each do |gen_obj|
46
+ load_center.addGenerator(gen_obj)
47
+ end
48
+
49
+ # assign the major properties to the load center
50
+ load_center.setGeneratorOperationSchemeType('Baseload')
51
+ load_center.setElectricalBussType('DirectCurrentWithInverter')
52
+
53
+ # create the inverter and assign it
54
+ inverter = OpenStudio::Model::ElectricLoadCenterInverterPVWatts.new(openstudio_model)
55
+ if @hash[:inverter_dc_to_ac_size_ratio]
56
+ inverter.setDCToACSizeRatio(@hash[:inverter_dc_to_ac_size_ratio])
57
+ else
58
+ inverter.setDCToACSizeRatio(defaults[:inverter_dc_to_ac_size_ratio][:default])
59
+ end
60
+ if @hash[:inverter_efficiency]
61
+ inverter.setInverterEfficiency(@hash[:inverter_efficiency])
62
+ else
63
+ inverter.setInverterEfficiency(defaults[:inverter_efficiency][:default])
64
+ end
65
+ load_center.setInverter(inverter)
66
+
67
+ load_center
68
+ end
69
+
70
+ end #ElectricLoadCenter
71
+ end #Honeybee
@@ -0,0 +1,86 @@
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 'honeybee/generator/pv'
33
+
34
+ require 'to_openstudio/model_object'
35
+
36
+ module Honeybee
37
+ class PVProperties
38
+
39
+ def to_openstudio(openstudio_model, parent)
40
+ # calculate the DC system size from the efficiency and the parent area
41
+ rated_watts = defaults[:rated_efficiency][:default] * 1000
42
+ if @hash[:rated_efficiency]
43
+ rated_watts = @hash[:rated_efficiency] * 1000
44
+ end
45
+ active_fraction = defaults[:active_area_fraction][:default]
46
+ if @hash[:active_area_fraction]
47
+ active_fraction = @hash[:active_area_fraction]
48
+ end
49
+ sys_cap = parent.netArea * active_fraction * rated_watts
50
+ sys_cap = sys_cap.round
51
+
52
+ # create the PVWatts generator and set identifier
53
+ os_gen = OpenStudio::Model::GeneratorPVWatts.new(openstudio_model, parent, sys_cap)
54
+ os_gen.setName(@hash[:identifier] + '..' + parent.name.get)
55
+
56
+ # assign the module type
57
+ if @hash[:module_type]
58
+ os_gen.setModuleType(@hash[:module_type])
59
+ else
60
+ os_gen.setModuleType(defaults[:module_type][:default])
61
+ end
62
+
63
+ # assign the mounting type
64
+ if @hash[:mounting_type]
65
+ os_gen.setArrayType(@hash[:mounting_type])
66
+ else
67
+ os_gen.setArrayType(defaults[:mounting_type][:default])
68
+ end
69
+
70
+ # assign the system loss fraction
71
+ if @hash[:system_loss_fraction]
72
+ os_gen.setSystemLosses(@hash[:system_loss_fraction])
73
+ else
74
+ os_gen.setSystemLosses(defaults[:system_loss_fraction][:default])
75
+ end
76
+
77
+ # assign the tracking ground coverage ratio
78
+ if @hash[:tracking_ground_coverage_ratio]
79
+ os_gen.setGroundCoverageRatio(@hash[:tracking_ground_coverage_ratio])
80
+ end
81
+
82
+ os_gen
83
+ end
84
+
85
+ end #PVProperties
86
+ end #Honeybee
@@ -435,6 +435,15 @@ module Honeybee
435
435
  end
436
436
  end
437
437
 
438
+ # assign any ventilation fan loads if specified
439
+ if @hash[:properties][:energy][:fans]
440
+ @hash[:properties][:energy][:fans].each do |fan|
441
+ hb_fan = VentilationFanAbridged.new(fan)
442
+ os_fan = hb_fan.to_openstudio(openstudio_model, os_thermal_zone)
443
+ os_fan.addToThermalZone(os_thermal_zone)
444
+ end
445
+ end
446
+
438
447
  # assign any internal masses if specified
439
448
  if @hash[:properties][:energy][:internal_masses]
440
449
  @hash[:properties][:energy][:internal_masses].each do |int_mass|
@@ -82,6 +82,13 @@ module Honeybee
82
82
  os_shading_surface.setTransmittanceSchedule(os_schedule)
83
83
  end
84
84
  end
85
+
86
+ # create PV objects if there are properties
87
+ if @hash[:properties][:energy][:pv_properties]
88
+ gen_obj = PVProperties.new(@hash[:properties][:energy][:pv_properties])
89
+ os_gen_obj = gen_obj.to_openstudio(openstudio_model, os_shading_surface)
90
+ $generators << os_gen_obj
91
+ end
85
92
  end
86
93
 
87
94
  os_shading_surface
@@ -133,6 +133,7 @@ module Honeybee
133
133
  $shw_for_plant = nil # track whether a hot water plant is needed
134
134
  $detailed_hvac_hash = Hash.new # track the detailed HVAC systems that have been assigned
135
135
  $ironbug_exe = nil # ironbug executable; will be overwritten by any detailed HVACs
136
+ $generators = [] # track the generator objects in the model
136
137
 
137
138
  # create all of the non-geometric model elements
138
139
  if @hash[:properties].key?(:energy)
@@ -217,6 +218,20 @@ module Honeybee
217
218
  create_orphaned_apertures
218
219
  create_orphaned_doors
219
220
  create_shade_meshes
221
+
222
+ unless $generators.empty?
223
+ if log_report
224
+ puts 'Translating Electricity Generators'
225
+ end
226
+ if @hash[:properties][:energy][:electric_load_center]
227
+ load_center_object = ElectricLoadCenter.new(
228
+ @hash[:properties][:energy][:electric_load_center])
229
+ else
230
+ empty_hash = Hash.new
231
+ load_center_object = ElectricLoadCenter.new(empty_hash)
232
+ end
233
+ load_center_object.to_openstudio(@openstudio_model, $generators)
234
+ end
220
235
  end
221
236
 
222
237
  def create_materials(material_dicts, check_existing=false)
@@ -0,0 +1,117 @@
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 'honeybee/ventcool/fan'
33
+
34
+ require 'to_openstudio/model_object'
35
+
36
+ module Honeybee
37
+ class VentilationFanAbridged
38
+
39
+ def find_existing_openstudio_object(openstudio_model)
40
+ model_zone_vent = openstudio_model.getZoneVentilationDesignFlowRateByName(@hash[:identifier])
41
+ return model_zone_vent.get unless model_zone_vent.empty?
42
+ nil
43
+ end
44
+
45
+ def to_openstudio(openstudio_model, parent)
46
+ # create zone ventilation object and set identifier
47
+ os_zone_vent = OpenStudio::Model::ZoneVentilationDesignFlowRate.new(openstudio_model)
48
+ os_zone_vent.setName(@hash[:identifier] + '..' + parent.name.get)
49
+ unless @hash[:display_name].nil?
50
+ os_zone_vent.setDisplayName(@hash[:display_name])
51
+ end
52
+
53
+ # assign flow rate
54
+ os_zone_vent.setDesignFlowRate(@hash[:flow_rate])
55
+ os_zone_vent.setFanPressureRise(@hash[:pressure_rise])
56
+ os_zone_vent.setFanTotalEfficiency(@hash[:efficiency])
57
+
58
+ # assign the ventilation type if it exists
59
+ if @hash[:ventilation_type]
60
+ os_zone_vent.setVentilationType(@hash[:ventilation_type])
61
+ else
62
+ os_zone_vent.setVentilationType(defaults[:ventilation_type][:default])
63
+ end
64
+
65
+ # set all of the ventilation control properties
66
+ vent_control_hash = @hash[:control]
67
+ if vent_control_hash
68
+ # assign min_indoor_temperature
69
+ if vent_control_hash[:min_indoor_temperature]
70
+ os_zone_vent.setMinimumIndoorTemperature(vent_control_hash[:min_indoor_temperature])
71
+ else
72
+ os_zone_vent.setMinimumIndoorTemperature(
73
+ defaults_control[:min_indoor_temperature][:default])
74
+ end
75
+ # assign max_indoor_temperature
76
+ if vent_control_hash[:max_indoor_temperature]
77
+ os_zone_vent.setMaximumIndoorTemperature(vent_control_hash[:max_indoor_temperature])
78
+ else
79
+ os_zone_vent.setMaximumIndoorTemperature(
80
+ defaults_control[:max_indoor_temperature][:default])
81
+ end
82
+ # assign min_outdoor_temperature
83
+ if vent_control_hash[:min_outdoor_temperature]
84
+ os_zone_vent.setMinimumOutdoorTemperature(vent_control_hash[:min_outdoor_temperature])
85
+ else
86
+ os_zone_vent.setMinimumOutdoorTemperature(
87
+ defaults_control[:min_outdoor_temperature][:default])
88
+ end
89
+ # assign max_outdoor_temperature
90
+ if vent_control_hash[:max_outdoor_temperature]
91
+ os_zone_vent.setMaximumOutdoorTemperature(vent_control_hash[:max_outdoor_temperature])
92
+ else
93
+ os_zone_vent.setMaximumOutdoorTemperature(
94
+ defaults_control[:max_outdoor_temperature][:default])
95
+ end
96
+ # assign delta_temperature
97
+ if vent_control_hash[:delta_temperature]
98
+ os_zone_vent.setDeltaTemperature(vent_control_hash[:delta_temperature])
99
+ else
100
+ os_zone_vent.setDeltaTemperature(
101
+ defaults_control[:delta_temperature][:default])
102
+ end
103
+ # assign schedule if it exists
104
+ if vent_control_hash[:schedule]
105
+ vent_sch = openstudio_model.getScheduleByName(vent_control_hash[:schedule])
106
+ unless vent_sch.empty?
107
+ vent_sch_object = vent_sch.get
108
+ os_zone_vent.setOpeningAreaFractionSchedule(vent_sch_object)
109
+ end
110
+ end
111
+ end
112
+
113
+ os_zone_vent
114
+ end
115
+
116
+ end # VentilationFanAbridged
117
+ end # Honeybee
data/lib/to_openstudio.rb CHANGED
@@ -91,10 +91,15 @@ require 'to_openstudio/schedule/ruleset'
91
91
 
92
92
  # import the ventilation and internal mass objects
93
93
  require 'to_openstudio/ventcool/control'
94
+ require 'to_openstudio/ventcool/fan'
94
95
  require 'to_openstudio/ventcool/opening'
95
96
  require 'to_openstudio/ventcool/simulation'
96
97
  require 'to_openstudio/internalmass'
97
98
 
99
+ # import the generator objects
100
+ require 'to_openstudio/generator/loadcenter'
101
+ require 'to_openstudio/generator/pv'
102
+
98
103
  # extend the simulation objects
99
104
  require 'to_openstudio/simulation/design_day'
100
105
  require 'to_openstudio/simulation/parameter_model'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybee-openstudio
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.36.3
4
+ version: 2.38.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanushree Charan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2023-12-02 00:00:00.000000000 Z
14
+ date: 2024-01-03 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json_pure
@@ -133,6 +133,8 @@ files:
133
133
  - lib/honeybee/construction/windowshade.rb
134
134
  - lib/honeybee/construction_set.rb
135
135
  - lib/honeybee/extension.rb
136
+ - lib/honeybee/generator/loadcenter.rb
137
+ - lib/honeybee/generator/pv.rb
136
138
  - lib/honeybee/geometry/aperture.rb
137
139
  - lib/honeybee/geometry/door.rb
138
140
  - lib/honeybee/geometry/face.rb
@@ -174,6 +176,7 @@ files:
174
176
  - lib/honeybee/simulation/parameter_model.rb
175
177
  - lib/honeybee/simulation/simulation_output.rb
176
178
  - lib/honeybee/ventcool/control.rb
179
+ - lib/honeybee/ventcool/fan.rb
177
180
  - lib/honeybee/ventcool/opening.rb
178
181
  - lib/honeybee/ventcool/simulation.rb
179
182
  - lib/measures/.gitkeep
@@ -225,6 +228,8 @@ files:
225
228
  - lib/to_openstudio/construction/window.rb
226
229
  - lib/to_openstudio/construction/windowshade.rb
227
230
  - lib/to_openstudio/construction_set.rb
231
+ - lib/to_openstudio/generator/loadcenter.rb
232
+ - lib/to_openstudio/generator/pv.rb
228
233
  - lib/to_openstudio/geometry/aperture.rb
229
234
  - lib/to_openstudio/geometry/door.rb
230
235
  - lib/to_openstudio/geometry/face.rb
@@ -267,6 +272,7 @@ files:
267
272
  - lib/to_openstudio/simulation/design_day.rb
268
273
  - lib/to_openstudio/simulation/parameter_model.rb
269
274
  - lib/to_openstudio/ventcool/control.rb
275
+ - lib/to_openstudio/ventcool/fan.rb
270
276
  - lib/to_openstudio/ventcool/opening.rb
271
277
  - lib/to_openstudio/ventcool/simulation.rb
272
278
  homepage: https://github.com/ladybug-tools/honeybee-openstudio-gem