Skip to content

Commit

Permalink
reducing net floor area for loads calculations
Browse files Browse the repository at this point in the history
  • Loading branch information
christophwaibel committed Aug 9, 2021
1 parent 0da70e0 commit 19e19d7
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 9 deletions.
1 change: 1 addition & 0 deletions src/Hive.Core/sia380/Hive.Core.sia380.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
],
"outputs": [
{"type": "float", "name": "Heating demand", "nick-name": "Q_Heat", "description": "Heating loads of a zone in kWh.", "access": "list"},
{"type": "float", "name": "Domestic hot water demand", "nick-name": "Q_dhw", "description": "Domestic hot water demands of a zone in kWh.", "access": "list"},
{"type": "float", "name": "Cooling demand", "nick-name": "Q_Cool", "description": "Cooling loads of a zone in kWh.", "access": "list"},
{"type": "float", "name": "Electricity demand", "nick-name": "Q_Elec", "description": "Electricity loads of a zone in kWh.", "access": "list"},
{"type": "float", "name": "Transmission heat losses", "nick-name": "Q_T", "description": "Transmission heat losses of a zone in kWh.", "access": "list"},
Expand Down
11 changes: 6 additions & 5 deletions src/Hive.IO/Hive.IO/Building/Zone.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,8 @@ public struct StructInternalLoads
public double WallsArea => Walls.Sum(w => w.Area);
public double RoofsArea => Roofs.Sum(r => r.Area);
public double WindowArea => Windows.Sum(w => w.Area);
public double FloorsArea => Floors.Sum(f => f.Area);
public double FloorsAreaNet => Floors.Sum(f => f.Area) * 0.9; // SIA 2024 E.3
public double FloorsAreaGross => Floors.Sum(f => f.Area);

#endregion

Expand Down Expand Up @@ -148,7 +149,7 @@ public void ApplySia380ConstructionAssembly(string siaConstructionType)
for (int i = 0; i < Windows.Length; i++) Windows[i].Construction = siaConstruction.WindowsConstruction;

// Update the capacitances of the components
siaConstruction.SetCapacities(FloorsArea, WallsArea, RoofsArea);
siaConstruction.SetCapacities(FloorsAreaNet, WallsArea, RoofsArea);
CapacitancePerFloorArea = siaConstruction.CapacitancePerFloorArea;
}

Expand Down Expand Up @@ -179,9 +180,9 @@ public double CapacitancePerFloorArea
void UpdateCapacities()
{
// Recalculate in case surface areas have changed
var factorAll = 1 + RoofsArea / FloorsArea + WallsArea / FloorsArea;
var factorAll = 1 + RoofsArea / FloorsAreaNet + WallsArea / FloorsAreaNet;
// Assign capacities per component type. To use in sia380 GH component (demand calculation).
FloorsCapacity = FloorsArea / factorAll * CapacitancePerFloorArea;
FloorsCapacity = FloorsAreaNet / factorAll * CapacitancePerFloorArea;
RoofsCapacity = RoofsArea / factorAll * CapacitancePerFloorArea;
WallsCapacity = WallsArea / factorAll * CapacitancePerFloorArea;
}
Expand Down Expand Up @@ -212,7 +213,7 @@ public double FloorsCapacity
{
foreach (Floor floor in Floors)
{
floor.Construction.Capacitance = value * (floor.Area / FloorsArea);
floor.Construction.Capacitance = value * (floor.Area / FloorsAreaNet);
}
_floorsCapacitance = value;
}
Expand Down
7 changes: 7 additions & 0 deletions src/Hive.IO/Hive.IO/Forms/BuildingInputForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ private void BuildingInputForm_Load(object sender, EventArgs e)
hizardToolTip.SetToolTip(this.txtCoolingSetback, toolTipSetbackInfoMessage);
hizardToolTip.SetToolTip(this.label41, toolTipSetbackInfoMessage);

hizardToolTip.SetToolTip(this.txtFloorArea, toolTipFloorArea);
hizardToolTip.SetToolTip(this.label7, toolTipFloorArea);

RenderState();
}

Expand Down Expand Up @@ -376,6 +379,10 @@ private void checkBoxNaturalVentilation_CheckedChanged(object sender, EventArgs

private const string toolTipSetbackInfoMessage = "Only used during hourly demand calculation, which is currently WIP";

private const string toolTipFloorArea =
"Note that this number refers to the gross area (Energiebezugsflaeche) measured from the hull geometry." + "\n " +
"For loads calculation, this area will be reduced by 0.9, according to SIA 2024, E.3";

private void textBoxSetback_MouseHover(object sender, EventArgs e)
{
hizardToolTip.Show(toolTipSetbackInfoMessage, (TextBox)sender);
Expand Down
2 changes: 1 addition & 1 deletion src/Hive.IO/Hive.IO/Forms/BuildingInputState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ public void UpdateSiaRoomConstruction()
// it works like this: (x?.a) is x.a if x != null, else null. (A ?? B) is A if A != null, else B
// I'm using this to enable creating a BuildingInputSate with zone == null for testing purposes.
public string ZoneWallArea => $"{_zone?.WallsArea ?? _siaRoom.EnvelopeArea:0.00}";
public string ZoneFloorArea => $"{_zone?.FloorsArea ?? _siaRoom.FloorArea:0.00}";
public string ZoneFloorArea => $"{_zone?.FloorsAreaGross ?? _siaRoom.FloorArea:0.00}";
public string ZoneRoofArea => $"{_zone?.RoofsArea ?? _siaRoom.EnvelopeArea:0.00}";
public string ZoneWindowArea => $"{_zone?.WindowArea ?? _siaRoom.EnvelopeArea:0.00}";

Expand Down
5 changes: 2 additions & 3 deletions src/Hive.IO/Hive.IO/GhDistributors/GhDistSIA.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ protected override void RegisterInputParams(GH_Component.GH_InputParamManager pM

protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager)
{
pManager.AddNumberParameter("Zone Areas", "ZoneAreas", "Floor areas in [m²] of all zones of the building.", GH_ParamAccess.list);
pManager.AddNumberParameter("Net Zone Areas", "ZoneAreas", "Net Floor areas in [m²] of all zones of the building.", GH_ParamAccess.list);
pManager.AddNumberParameter("Windows Areas", "WinAreas", "All window areas in [m²] of the building.", GH_ParamAccess.list);
pManager.AddNumberParameter("External Surfaces Areas", "ExtSrfAreas", "Surface areas of the building that are exposed to the environment (external)", GH_ParamAccess.list);
pManager.AddTextParameter("SIA 2024 Room", "SiaRoom", "SIA 2024 room definitions for each zone.", GH_ParamAccess.item);
Expand Down Expand Up @@ -56,11 +56,10 @@ protected override void SolveInstance(IGH_DataAccess DA)
{
Zone zone = building.Zones[i];

zoneAreas[i] = 0.0;
zoneAreas[i] = zone.FloorsAreaNet;
foreach (Floor floor in zone.Floors)
{
// TO DO: make check that it's not a void
zoneAreas[i] += floor.Area;
if (floor.IsExternal)
{
extSrfAreas.Add(floor.Area);
Expand Down

0 comments on commit 19e19d7

Please sign in to comment.