From a3c5219ccda5dcafcb481324d176a5169b307dbd Mon Sep 17 00:00:00 2001 From: jgavalda Date: Thu, 16 Nov 2023 14:26:41 -0500 Subject: [PATCH] Changed idf to start producing detailed systems --- hub/exports/building_energy/idf.py | 12 ++- tests/test_exports.py | 2 +- texttest | 142 +++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 texttest diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 9ebf99f3..da611a15 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -54,6 +54,7 @@ class Idf: _SIZING_PERIODS = 'SIZINGPERIOD:DESIGNDAY' _LOCATION = 'SITE:LOCATION' _SIMPLE = 'Simple' + _EQUIPMENT_CONNECTIONS = 'ZONEHVAC:EQUIPMENTCONNECTIONS' idf_surfaces = { cte.WALL: 'wall', @@ -385,12 +386,13 @@ class Idf: if air_system.Zone_Name == zone_name: return thermostat = self._add_thermostat(thermal_zone) - self._idf.newidfobject(self._IDEAL_LOAD_AIR_SYSTEM, + self._idf.newidfobject(self._EQUIPMENT_CONNECTIONS, Zone_Name=zone_name, - System_Availability_Schedule_Name=f'HVAC AVAIL SCHEDULES {thermal_zone.usage_name}', - Heating_Availability_Schedule_Name=f'HVAC AVAIL SCHEDULES {thermal_zone.usage_name}', - Cooling_Availability_Schedule_Name=f'HVAC AVAIL SCHEDULES {thermal_zone.usage_name}', - Template_Thermostat_Name=thermostat.Name) + Zone_Conditioning_Equipment_List_Name=f'{thermal_zone.usage_name} Equipment List', + Zone_Air_Inlet_Node_or_NodeList_Name=f'{thermal_zone.usage_name} Inlet Node List', + Zone_Air_Node_Name=f'Node 1', + Zone_Return_Air_Node_or_NodeList_Name=f'{thermal_zone.usage_name} Return Node List') + def _add_occupancy(self, thermal_zone, zone_name): number_of_people = thermal_zone.occupancy.occupancy_density * thermal_zone.total_floor_area diff --git a/tests/test_exports.py b/tests/test_exports.py index e7197901..47cd89e9 100644 --- a/tests/test_exports.py +++ b/tests/test_exports.py @@ -1,4 +1,4 @@ -""" + """ TestExports test and validate the city export formats SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group diff --git a/texttest b/texttest new file mode 100644 index 00000000..b5147f2b --- /dev/null +++ b/texttest @@ -0,0 +1,142 @@ +ZoneControl:Thermostat, + Room_180_7ad8616b Thermostat, !- Name + Room_180_7ad8616b, !- Zone or ZoneList Name + Room_180_7ad8616b Thermostat Schedule, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + LargeOffice Building_Setpoint 26, !- Control 1 Name + , !- Control 2 Object Type + , !- Control 2 Name + , !- Control 3 Object Type + , !- Control 3 Name + , !- Control 4 Object Type + , !- Control 4 Name + 0; !- Temperature Difference Between Cutout And Setpoint {deltaC} + +Schedule:Compact, + Room_180_7ad8616b Thermostat Schedule, !- Name + Room_180_7ad8616b Thermostat Schedule Type Limits, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, !- Field 3 + 4; !- Field 4 + +ScheduleTypeLimits, + Room_180_7ad8616b Thermostat Schedule Type Limits, !- Name + 0, !- Lower Limit Value {BasedOnField A3} + 4, !- Upper Limit Value {BasedOnField A3} + DISCRETE; !- Numeric Type + +ThermostatSetpoint:DualSetpoint, + LargeOffice Building_Setpoint 26, !- Name + LargeOffice Building_Setpoint_HtgSetp Schedule, !- Heating Setpoint Temperature Schedule Name + LargeOffice Building_Setpoint_ClgSetp Schedule; !- Cooling Setpoint Temperature Schedule Name + +ZoneHVAC:EquipmentConnections, + Room_180_7ad8616b, !- Zone Name + Room_180_7ad8616b Equipment List, !- Zone Conditioning Equipment List Name + Room_180_7ad8616b Inlet Node List, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Node 27, !- Zone Air Node Name + Room_180_7ad8616b Return Node List; !- Zone Return Air Node or NodeList Name + +NodeList, + Room_180_7ad8616b Inlet Node List, !- Name + Node 305; !- Node Name 1 + +NodeList, + Room_180_7ad8616b Return Node List, !- Name + Node 308; !- Node Name 1 + +ZoneHVAC:Baseboard:Convective:Electric, + Elec Baseboard 1, !- Name + Always On Discrete hvac_library, !- Availability Schedule Name + , !- Heating Design Capacity Method + Autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + 1; !- Efficiency + +AirTerminal:SingleDuct:ConstantVolume:NoReheat, + Diffuser 21, !- Name + Always On Discrete hvac_library, !- Availability Schedule Name + Node 307, !- Air Inlet Node Name + Node 305, !- Air Outlet Node Name + AutoSize; !- Maximum Air Flow Rate {m3/s} + +ZoneHVAC:AirDistributionUnit, + ADU Diffuser 21, !- Name + Node 305, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type + Diffuser 21; !- Air Terminal Name + +ZoneHVAC:EquipmentList, + Room_180_7ad8616b Equipment List, !- Name + SequentialLoad, !- Load Distribution Scheme + ZoneHVAC:Baseboard:Convective:Electric, !- Zone Equipment Object Type 1 + Elec Baseboard 1, !- Zone Equipment Name 1 + 1, !- Zone Equipment Cooling Sequence 1 + 1, !- Zone Equipment Heating or No-Load Sequence 1 + , !- Zone Equipment Sequential Cooling Fraction Schedule Name 1 + , !- Zone Equipment Sequential Heating Fraction Schedule Name 1 + ZoneHVAC:AirDistributionUnit, !- Zone Equipment Object Type 2 + ADU Diffuser 21, !- Zone Equipment Name 2 + 2, !- Zone Equipment Cooling Sequence 2 + 2, !- Zone Equipment Heating or No-Load Sequence 2 + , !- Zone Equipment Sequential Cooling Fraction Schedule Name 2 + ; !- Zone Equipment Sequential Heating Fraction Schedule Name 2 + +Sizing:Zone, + Room_180_7ad8616b, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 14, !- Zone Cooling Design Supply Air Temperature {C} + 11.11, !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 40, !- Zone Heating Design Supply Air Temperature {C} + 11.11, !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + Room_180_7ad8616b DSOA Space List, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + 0.000762, !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + 0, !- Cooling Minimum Air Flow {m3/s} + 0, !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + 0.002032, !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + 0.1415762, !- Heating Maximum Air Flow {m3/s} + 0.3, !- Heating Maximum Air Flow Fraction + , !- Design Specification Zone Air Distribution Object Name + No, !- Account for Dedicated Outdoor Air System + , !- Dedicated Outdoor Air System Control Strategy + , !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C} + , !- Dedicated Outdoor Air High Setpoint Temperature for Design {C} + Sensible Load Only No Latent Load, !- Zone Load Sizing Method + HumidityRatioDifference, !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method + , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.005, !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir} + HumidityRatioDifference, !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method + , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.005; !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir} + +DesignSpecification:OutdoorAir:SpaceList, + Room_180_7ad8616b DSOA Space List, !- Name + Room_180_7ad8616b_Space, !- Space Name 1 + MidriseApartment Apartment Ventilation; !- Space Design Specification Outdoor Air Object Name 1 + +Zone, + Room_181_3a411b5d, !- Name + , !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + , !- Type + 1, !- Multiplier + 4, !- Ceiling Height {m} + 291.62935408288, !- Volume {m3} + , !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area \ No newline at end of file