Hi @martin6, We are fully aware of this problem and have started the process to mitigate it. @chriswmackey can provide more information on where we are in the process.
I have added searching capability for object’s IDs here. It is only limited to the top-level object’s ID, such as Rooms, OrphanedFaces, OrphanedShades, etc. Hope this helps a bit.
The searching format for ID is “ID=Your ID”
Hopefully Mingbo’s enhancement gives you what you need in the Rhino plugin. When matching results in Grasshopper, it’s probably easiest to load the Honeybee model into Grasshopper from Rhino and use the HB Color Rooms component to help you match the EnergyPlus outputs to the geometry. For the Room peak loads that you have in your screenshot, the workflow takes a few more components but the order of the rooms as they are listed in the model should match the order of the results coming out of the HVAC sizing component. So you can color the geometry with the results using the workflow that you see here:
I just wanted to add as a reference that @antonellodinunzio also added a sample Python Script that can be used with the Rhino plugin to find sub-faces using the ID until we have this solution integrated into the Rhino plugin as a core feature:
I have to dig this up because on the Grasshopper canvas I still couldn’t find a solution on how to align the names and data out of a .sql file to the names stored in the HB Model.
We don’t really have control over how the zone results are written into the SQLite file by EnergyPlus. I think EnergyPlus usually aligns results with how the rooms are ordered in the Model by default but things like unconditioned Rooms can probably change this ordering.
If I’m correct in understanding that you want to align these results with the room geometry, you will have to do some reordering yourself in Grasshopper. The native Grasshopper “Sort” component should be able to help you here. The zone identifiers can also be matched easily with a few of lines of python inside a GHPython component. Here’s a sample:
from ladybug_rhino.fromgeometry import from_polyface3d
from ladybug_rhino.grasshopper import all_required_inputs
if all_required_inputs(ghenv.Component):
geo, values = [], []
for rid, rv in zip(_room_ids, _room_values):
for room in _rooms:
if room.identifier.upper() == rid:
geo.append(from_polyface3d(room.geometry))
values.append(rv)
break
Thank you very much @chriswmackey for your quick and helpful response.
Your GHPython component most likely also solves what I wrote about in the split topic. https://discourse.pollination.cloud/t/unreasonable-heating-and-cooling-loads/984
Just haven’t had the time yet to verify.
I have to admit it is a bit confusing what I wrote. But as far as I remember it’s the same problem, only another display topic. Also for some reason I didn’t provide you data back then.
The only thing I miss right now are the Room Names in the right order because it would be helpful to be able connect the values to my initial input.
Unfortunately I’m not into python (at least not yet) at all.
Is it possible to add an output Room Names to the GHPython component?
In my opinion it would make sense to have such a component amongst the standard resources of HB?
Or eventually keep the sorting of rooms or faces straight in the background of the canvas?
from ladybug_rhino.fromgeometry import from_polyface3d
from ladybug_rhino.grasshopper import all_required_inputs
if all_required_inputs(ghenv.Component):
geo, values, names = [], [], []
for rid, rv in zip(_room_ids, _room_values):
for room in _rooms:
if room.identifier.upper() == rid:
geo.append(from_polyface3d(room.geometry))
values.append(rv)
names.append(room.display_name)
break