Ironbug IdealAirLoads Limit

Hi all,
I have the same problem with Ironbug Ideal Air Load as in this post with Honeybee Ideal Air Loads:

In the Ironbub object I select: NoLimit for heating and cooling. But when I open the in.idf created ( in this case after DF Run URBANopt), the propertires are this:

In the hbjson, it appears an economizer that shouldn’t be there.:
imagen

When I create the IDF object in Ironbug it works well. But in the hbjson conversion it doesn’t work:

. Is there something I’m overlooking @MingboPeng ?

Hi @Batiste ,

I know Mignbo is away this week but he can answer when he gets back. Just to confirm, are you using the latest version of Ironbug that comes with the Pollination single-click installer. Mingo has pushed several fixes in the last few weeks, which may address the issue.

Here’s a small Grasshopper script you can use to check your currently-installed version of Ironbug (you can see that mine is a little old):


check_ib_version.gh (2.3 KB)

Hi @chris, thank you for you response. I have the same version as you. I will try to re-install Pollination to have the latest version

Hi @Batiste,

The screenshot of your hbjson does not show the systems created by Ironbug. All Ironbug systems are translated as DetailedHVAC. Please double check your file and ensure the Ironbug is assigned to the room correctly.

If the issue remains, could you provide a simplified sample file for me to recreate the issue?

Hi @MingboPeng ,

I encountered an issue when applying the idealLoad system to the DF Detailed HVAC object. It seems that this system doesn’t work with DF Detailed HVAC. However, when I apply other HVAC systems like DF IdealAirLoad, it functions as expected.

Interestingly, if I take the same detailed ironbug system and apply it to the hbmodel created with DF Create Geojson, the Honeybee simulation works, and it creates the detailed system successfully. In the screenshots attached earlier, you can see that the detailed IDF system is created correctly. However, it doesn’t seem to be applied to the room with DF Detailed HVAC.

I am in the process of creating a workflow that allows for the application of different HVAC systems to different rooms. It’s possible that the issue is more related to Dragonfly or Grasshopper rather than Ironbug.

I have another cuestion related the IdealAirLoad component.I create another post here: IdealAirLoad system with Outdoor Air Inlet Node Name

Hi @Batiste, could you create a sample file with the minimum details for us to create the issue?

test_ironbug.gh (105.8 KB)
Hi @MingboPeng,
Here’s an example where the HVAC system doesn’t work. It’s not exactly the same case as mine, as a different system is applied for each room in my case.

But in this case, it also doesn’t work.

1 Like

Thanks @Batiste, I am able to recreate the issue on my side.

Hi @chris, it seems there is an issue in the “DF rejoin to building” component. The DetailedHVAC object within Room2D gets lost after rejoining to the building.

I am attaching two exported json files here for you to check.
building.json (144.8 KB)
room2d.json (112.0 KB)

Thanks, @MingboPeng .

Sorry that I originally thought this was an issue with the Ironbug serialization.

You are right that it’s an issue with the “DF Rejoin to Building” component and it is specifically happening because the Grasshopper definition is using the DF Deconstruct All Object component instead of the DF Deconstruct Object component that it is intended to work with.

When “Deconstruct All” is used, you are essentially generating a new set of rooms that are separate from the original Building (since you’re converting the Stories represented with multipliers into independent geometries). So these new Rooms can’t really be rejoined to the original Building and the only way to get a correct Dragonfly Building from them is to join them back into a DF Story and then create a new DF Building from Stories.

Long story short, @Batiste , just replace the “DF Deconstruct All Object” with the “DF Deconstruct Object” component and everything will work in your original script:

To make sure that this issue does not come up again in the future, I have added an error into the “Rejoin to Building” component, which will be triggered whenever the “Deconstruct All Object” component is used:

1 Like

So, in the case that I want to apply a different HVAC system to each floor of a building (without multipliers), I should create a building from the floors decomposed by ‘Deconstruct All Object.’ The problem is that when I try to reconstruct the building, each room becomes an independent floor (because if I try to maintain the relationship between floors within a building it doesn’t work).

But if I use ‘graft’ to create the story, it then creates a separate building for each floor, and I can’t recreate the original buildings with x number of floors.

I was also thinking about this for the near future if I manage to have a geojson as input with geometry and properties for each floor of a building. After creating the rooms, how can I create independent buildings? Is there a way to determine that one geometry is below from another and therefore it belongs to the same building?

Thank you very much

Hi @Batiste ,

I realize that Grasshopper data trees are one of the harder things to understand (it took me 2 years of working in Grasshopper before I got a good understanding of them). But there are several ways to solve your issue if you know how to use them.

The most conceptually simple solution I can think of is that you can just reconstruct your Dragonfly Buildings from all stories immediately after you create them so that they have no multipliers like so:

Then, you can go about the rest of your workflows using DF Deconstruct Object and DF Rejoin to Building like so:

rejoin exploded buildings.gh (56.0 KB)

1 Like

Hi @MingboPeng,
Now I am able to make the ideal loads feature of Ironbug work. However, the issue is that the ideal loads’ outputs are not loading or appearing now. Here, I provide you with an example building. In the .idf file, the system is defined as ideal loads, and the ideal loads’ outputs have also been specified. In the .osm file, ideal loads are defined for each zone. But in the .rdd file, the ideal loads variables are not available either. Is this related to Ironbug? Regards.
ideal.zip (272.0 KB)

To clarify this doubt, I’m sharing both my simplified workflow
1_SUNO_CTE_ESTIU_2023_GEOJSON_test_ideal_L.gh (178.7 KB)
and the workflow that @chris performed in other post
dragonfly_ironbug_hvac_MP_ideal_loads_test.gh (157.1 KB)
. In Chris’s workflow, when applying the ideal loads, it does work; it is applied correctly, and the outputs can be obtained. However, in my workflow, there is no way it works. I can’t quite grasp where the problem is, as theoretically, I am doing exactly the same thing as in Chris’s workflow.