Implement centralized HVAC systems (Ironbug) within a Dragonfly workflow for multiple buildings

Hi @MingboPeng, I’m trying to apply the modified System 11 (Fan Coil Units + DOAS) for multiple buildings with several rooms each. Essentially, I’ve removed the coils from the DOAS, leaving only the fan coils. The issue arises in distinguishing which room belongs to one building and which room belongs to another building. In the attached file, there are two Sys11 systems, one using the ‘Branches’ component and the other without it. (161.4 KB)

If I don’t use the ‘Branches’ component, it creates a circuit with three coils in series instead of in parallel.

However, when I use ‘Branches,’ it creates as many parallel branches as there are buildings in the workflow and as many coils in series as there are floors in the building. And the operations is repeated for each building in the workflow.

Is there a way for the ‘Branches’ component to group rooms from only one building so that the circuit remains in parallel? Thank you very much.

On another note, I’ve also tried to replace the boiler in System 11 with a ‘Coil WaterHeatingAirtoWaterHeatPump,’ but I can’t obtain the input parameters with ‘ObjParams,’ and it generates an error during simulation.

Hi @Batiste, it is hard to understand what you are trying to do. Could you provide a diagram to illustrate the loops? What do you mean by grouping rooms? Are you thinking of grouping rooms into a single thermal zone?

For the second issue, it is indeed a bug in CoilWaterHeatingAirtoWaterHeatPump component, and I just pushed a fix. You should be able to download the latest version here in the next hour.

1 Like

Hi @MingboPeng, of course. This is the scheme that I would like to have for each building: a central chiller with one fan coil unit for each zone of the building.

The issue is that when I connect more than one building, I can’t achieve this scheme. I have tried using a graft after defining the coils:

but in that way, each building in the workflow would have all the fan coil units of each room in the other buildings connected to its chiller.(and each bulding has only 3 rooms)

Is there a way to distinguish rooms in each building?

Thank you for your response and thank you for the solution for the second issue.

Hi @Batiste ,

The answer to questions about grouping is always going to be “setup your data trees correctly”

If you setup your definition so that you make a separate Ironbug HVAC for each building, that is what you will get in your resulting OSM: (160.2 KB)

With all of this said, is this all that you need?

If so, you don’t need a whole Ironbug System to make a HVAC system with just FCUs and no DOAS. Just use the DF HeatCool HVAC component and use any of the “Fan Coil” system teplates: (54.2 KB)

1 Like

Hi @chris, thank you so much for your response.
Yes, the branches have their point of difficulty. My idea is to make it as automated as possible. However, at the same time, I want to be able to control the parameters of the air conditioning system (it may be that the level of detail I want doesn’t make sense at the urban level). In any case, regarding the system I want, it resembles more the Fan Coil air-cooled chiller with a central air source heat pump, but the problem is that in some cases, I would also need ventilation. I’ll reconsider going into further detail since there are only a few archetypes with forced ventilation and heating recovery.

I understand that it’s not possible to add a ventilation-only (all-air) system in series with these Heating and Cooling systems.

1 Like

Yes, there’s a balance to be reached between controlling every small detail of the HVAC and running large urban models. If you can at least make your custom Ironbug HVAC into a cluster, that will help you reuse it, though I realize that the workflow I showed involves copy/pasting this cluster for each Dragonfly Building you want to apply it to since they each get exported to a separate OSM.

@MingboPeng , do you have any recommendations for people who may want to generate multiple Ironbug HVACs to be applied across several OSMs? I guess, for a parametric study with Ironbug components, people would use a slider and recorder to record each ironbug HVAC but I don’t suppose there is a streamlined way to make several Ironbug HVAC using Grasshopper Data Trees, is there?

Hi @chris and @MingboPeng, thank you so much for your response.

I’m in the process of creating my custom Ironbug HVAC cluster. However, when I use a Dragonfly workflow, I encounter the following error:

I’ve also tried it with Honeybee, but I’m encountering the same error. It seems that the “CoilWaterHeatingAirtoWaterHeatPump” component is still not functioning as expected. Interestingly, I can successfully simulate it with a gas boiler or other components.

Another issue I’m facing is related to the default “Fan Coil Units + DOAS” in a Dragonfly workflow for a specific building. In this case, I encounter the following error:

However, when I use a Honeybee workflow, it works seamlessly.

I’ve included my workflow here, which contains both the Dragonfly workflow with two clusters (my custom cluster and the default “Fan Coil Units + DOAS” cluster), as well as the Honeybee workflow: (246.7 KB)

Thank you for your assistance in addressing these issues.

Hi @Batiste and thanks @chris,

There are a few tips in Ironbug that will help you to build multiple HVAC systems without duplicating clusters.

Here are a few steps that you could follow

1. Number of loops/systems

Before making a such complex configuration of system, you will need to be clear about how many of the loops or systems do you need in this building or site.

I am using Chris’ sample file as an example, here there are 13 buildings, and each building has multiple floors. Based on above descriptions, you will need to create 13 air loops, 13 x3 plant loops (hot, chilled, condenser), and 13 HVAC systems.

You can count the number of branches of the rooms.

2. Number of components per loop

Within each loop, you will also need to know the number of rooms, so that you know how many coils you need to duplicate.

3. Dupliation

You could use the IB_Duplicate component to create multiple loop objects, but here is a cleaner way to do it. If you see “three dots” at the left bottom of an Ironbug component, that means this object is duplicatable and you can right-click it to add a new input “n_” for the number of duplications.


4. Matching branches

Normally, all data that goes into the “Branches” will be considered as loop branches of one plant loop. But if you right-click the “Branches” component and check the “Map branch to loop” option:

Here is before the setting:

After checking “Map branch to loop” option, you can see 2 branches have been added to 2 loops:

5. Grasshopper data structures

This is the hardest to learn for the Grasshopper beginners. But once you get it you get it.
You can consider one Grasshopper tree branch as one loop/system. Here I am using the hot water loop as an example.

You will need to create 13 hot water loops, so for the supply side, I use the “Merge” component to merge 13 pumps, 13 “Branches” with 13 boilers, and 13 SetPointManagers. I grafted and simplified all inputs of the Merge component so that it could output 13 branches and each of them has 3 objects inside.

The same logic applies to this loop’s demand side and other loops.

Hope this helps, and here is the sample file that I created based on @chris model. (93.6 KB)

1 Like

Hi @Batiste I will also check your file later.

1 Like

That’s really helpful to know, @MingboPeng . I’ll direct people to your response here if they’re looking to create Ironbug clusters to be used with the data tree structure to create multiple HVACs.

@Batiste , your sample file is not much help to us since we don’t have your geoJSON used to create the geometry:

It’s also somewhat far from a minimal sample file needed to recreate the issue. If you can give us something with the minimum needed to recreate the issue, we can likely help with fixing it. The default “Fan Coil Units + DOAS” error you are getting looks like it’s possibly a bug in the openstudio standards gem.

Thanks @MingboPeng for your answer. Now I’m able to understand the procedure much better. Following @chris ’ recommendation, sorry for the inconvenience, I have used his example to reproduce my workflow. (133.6 KB) Now I’m able to create a loop for each building within a fan coil for each room. But when I substitute the boiler with a ‘CoilWaterHeatingAirtoWaterHeatPump,’ I get this error:

HI @Batiste ,

I would open up a separate topic for the question about the CoilWaterHeatingAirtoWaterHeatPump since it seems to be specific to Ironbug and the OpenStudio SDK and it is not really about dragonfly.

Also, I would recommend sharing a minimal sample file on this other topic (maybe with just one honeybee model instead of a dragonfly model) that shows what you are trying to achieve and where you are stuck. Ideally, for Ironbug questions like this, you should also have an OSM of this model that you are trying to create with Ironbug. The general pact that we have is that, if you can create the simulate-able version of your HVAC in the OpenStuido App, we can help you make the Ironbug version of it.

1 Like