Table of Contents

Plant Builder

The Plant class provides a builder pattern for aggregating and managing DOE-2 plant systems. It groups circulation loops with their associated equipment (pumps, boilers, chillers, heat rejection, etc.) and provides visualization capabilities.

Visualization Example

The Visualize() method generates a Mermaid flowchart diagram showing the plant's structure:

#r "path\MermaidDotNet.dll"
using MermaidDotNet.Models;
string inpPath = @"building.inp";
Model model = Model.OpenFromFile(inpPath);

Plant wlhpPlant = Plant.CreateWlhpPlant(model);

display(new MermaidMarkdown(wlhpPlant.Visualize()));

WLHP System Diagram

Key Features

  • Loop Aggregation: Groups circulation loops and their equipment
  • Automatic Discovery: Load() method finds all connected equipment
  • Visualization: Generates Mermaid diagrams of plant topology
  • Factory Methods: Static methods for common plant configurations

Plant Collections

The Plant class exposes collections for all equipment types:

  • CirculationLoops: The loops that make up the plant
  • Pumps: All pumps serving the plant loops
  • Boilers: Heating equipment connected to loops
  • Chillers: Cooling equipment connected to loops
  • HeatRejections: Cooling towers and heat rejection equipment
  • DhwHeaters: Domestic hot water heaters
  • EquipmentControls: Control sequences for equipment
  • LoadManagements: Load management strategies

Factory Methods

Static factory methods create complete plant configurations:

WLHP Plant

Creates a water-loop heat pump plant with cooling tower, backup boiler, and GHX dummy:

Plant wlhpPlant = Plant.CreateWlhpPlant(model, plantCop: 4.5, heatPumpCutoffTempF: 5);

ASHP Plant

Creates an air-source heat pump plant with CHW/HW loops and staged heating:

Plant ashpPlant = Plant.CreateAshpPlant(model, cutOffTempDegreeF: 5);

Staged ASHP Plant

Creates a multi-stage air-source heat pump:

Plant stagedAshpPlant = Plant.CreateStagedAshpPlant(model);

DHW Plants

Creates domestic hot water plants with various configurations:

Plant ashpDhwPlant = Plant.CreateAshpDhwPlant(model);
Plant elecDhwPlant = Plant.CreateElecDhwPlant(model);

Loading Plant Data

The Load() method automatically discovers all equipment connected to the plant's loops:

var plant = new Plant(model)
    .AddLoop("Chilled Water Loop")
    .AddLoop("Hot Water Loop");

plant.Load(model); // Discovers all connected equipment

This populates all the equipment collections and collects referenced schedules and curves.

See the Plant API documentation for complete details.