Windows Disappeared in Updated Rhino Plugin

I was working on a Rhino Pollination model back on February 28th (not sure of my Pollination version). I picked up the same Rhino 7 .3dm model again today using an updated version of Pollination (148.19.0 4/1/2022). Unfortunately, all the windows that I added to the model have disappeared. I checked the orphaned object manager but there is only a few windows when there should be loads!

Do you have any idea what happened here and how I might be able to get them back? I tried exporting the model as an .hbjson but again only a few windows were present.

The windows are a custom triangular shape and it took a long time to add them all to the model. I’m super disappointed that I would lose so much work.

I am able to find the aperture geometries on a Rhino 7 layer but they do not appear in the Pollination model or manager.

I tried using the Add Aperture > Select Geometries then selecting a room and the apertures but nothing happens.

These apertures seem to be not Rhino geometry but not being read as Pollination geometry either.

When I select an aperature using the Room Selection On/Off option off, it actually highlights the respective Room in the Pollination Room Manager. But when I expand the dropdown to see Faces, none of them have apertures to display in additional dropdowns.

Visualizing the model using Color by face type doesn’t show the windows either.

I was able to get the window back into the model by using PO_SelApertures > DupBorder > PlanarSrf > Delete the Border > PO_SelApertures > Delete > PO_AddApertures > Select whole model > Select all surfaces.

I checked an .hbjson of the model in a json viewer and did not see the Apertures in any of the room or face structures. It would still be nice to know why the Apertures in the model were selectable and highlighted a Room in the PO Manager but did not appear in the model otherwise.

Hi @justinshultz, sorry to hear that and apologies for all the headache. I understand how frustrating it can end up being. I’m happy that you found the workaround to bring them back using the Rhino geometry. It looks like that for some reason the apertures didn’t get saved correctly. I just checked the logs and we haven’t made any changes to the plugin that can affect loading the apertures.

As usual, can you share the problematic 3DM file with us? This is a really strange case and it is the first time that it has been reported.

3DM file has been shared privately. We’ll update the tread after a solution has been found in case anyone else has apertures that are present in the model but not appearing in the energy model.

1 Like

Hi @justinshultz,

So here is how each object finds its host/children objects:
In the host object (room), the aperture object’s reference id is saved to each sub-face (room face), so that a room knows all child objects by looking into each sub-faces data.

In the child object, there is also a reference id saved inside the geometry which marks this object as a child object when the saved host id is not itself’s id.

When the Rhino plugin generates each item in the Room Manager, it just takes all room objects and takes whatever is saved inside each room object from top to bottom. So in your case, for whatever reason, the room doesn’t save any aperture’s id inside, that’s why in the Room Manager, you can’t find any apertures under rooms. In the meantime, each aperture object has its host room’s id inside the aperture geometry, which allows you to select the aperture geometry and highlight its host room in the Room Manager.

I just added a new command PO_FixRoomChildrenLinks to fix this issue. This command works globally for all existing aperture/door objects. It backtraces to the host room object from each problematic child object and relinks those child objects with host rooms.

I just send you the file that I ran this command with your model. Please let me know if this works for you.

2 Likes

Besides adding a new command to fix this issue, I’d like to know how this issue was created in the first place. please let us know when you find replicable steps to create this issue, I would prefer to address this issue from the source.

1 Like

@mingbo thank you for getting to the bottom of this! Wonderful sleuthing with the back tracing of Host ID in the Aperture objects. Thank you for creating a new command to address this. I’ve seen it before in smaller instances but not to the scale of the whole model.

One way to try and reproduce with problem might be: Create Aperture for a Room then select Apertures and copy to another room. Then Select geometry apertures and apply to the new room. I did this in a few models before I knew about the DupBorder command. I’m not sure if this would create problems but worth a try.

A note for the new installer, please uninstall all LBT plugins and previous Pollination plugins before using the new installer. We have changed the installation location for Rhino to load. It used to be %Appdata%\McNeel\Rhinoceros\packages\, and now changed to %programdata%\McNeel\Rhinoceros\packages\. You’d end up with two copies of plugins and ID conflicts if the old version isn’t removed.

The benefit of this change is that both LBT and Pollination plugins will be available for all users who log in to this machine. So it will be much easier for IT to install the plugin on an employee machine.

2 Likes

Hi @justinshultz! I tried to follow these steps but wasn’t able to recreate the issue. How do you create the apertures for a room? Are they orphaned aperture that you basically copy to two different rooms?

I know @tfedyna was also able to create a similar issue. Trevor, Is this how you prepared your model too?

I was using a NREL/DOE reference building for mine; brought in the *.idf through Gh tools I believe. for the topical model in question

1 Like

Thank you, @tfedyna! Still unable to recreate the issue. :grimacing: I will keep an eye on this and we will fix it when we know the source of the problem.

1 Like

right on I just installed the version you told me to of PO tooling; about to see if it’s rectified on my end and will let you know

downloading the latest version available on “install plugins” via pollination.app and running PO_FixRoomChildrenLinks as per @mingbo: all checks good 4.0, 100% mission capability

1 Like

@mostapha kay sooo I take the checks 4.0 back slightly :sweat_smile: PO_ValidateModel which previously to this issue was 4.0:

Pollination Rhino Plugin: 1.0.0.0 (04/16/2022)
System.ArgumentException: Command:
C:\Program Files/ladybug_tools\python\python -m honeybee validate model "C:\Users\TREVOR\AppData\Local\Temp\from_NREL_reference.3dm.hbjson"
honeybee.cli.validate - ERROR - Model validation failed.
Room "Room 33e9f[Room_33e9f219]" is invalid:
Room "Room 33e9f[Room_33e9f219]" is not valid and is not following honeybee-schema:
Face "Face d4fc3[Face_d4fc3045]" is invalid:
Face "Face d4fc3[Face_d4fc3045]" is not valid and is not following honeybee-schema:
Adiabatic cannot be assigned to a Face with apertures or doors.
Traceback (most recent call last):
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\face.py", line 145, in from_dict
    face.boundary_condition = bc_class.from_dict(data['boundary_condition'])
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\face.py", line 204, in boundary_condition
    '{} cannot be assigned to a Face with apertures or doors.'.format(value)
AssertionError: Adiabatic cannot be assigned to a Face with apertures or doors.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\room.py", line 144, in from_dict
    faces.append(Face.from_dict(f_dict))
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\face.py", line 154, in from_dict
    cls._from_dict_error_message(data, e)
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\_base.py", line 118, in _from_dict_error_message
    raise ValueError(msg)
ValueError: Face "Face d4fc3[Face_d4fc3045]" is not valid and is not following honeybee-schema:
Adiabatic cannot be assigned to a Face with apertures or doors.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\room.py", line 146, in from_dict
    invalid_dict_error(f_dict, e)
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\typing.py", line 310, in invalid_dict_error
    raise ValueError('{} "{}" is invalid:\n{}'.format(obj_type, full_id, error))
ValueError: Face "Face d4fc3[Face_d4fc3045]" is invalid:
Face "Face d4fc3[Face_d4fc3045]" is not valid and is not following honeybee-schema:
Adiabatic cannot be assigned to a Face with apertures or doors.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\model.py", line 159, in from_dict
    rooms.append(Room.from_dict(r, tol, angle_tol))
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\room.py", line 164, in from_dict
    cls._from_dict_error_message(data, e)
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\_base.py", line 118, in _from_dict_error_message
    raise ValueError(msg)
ValueError: Room "Room 33e9f[Room_33e9f219]" is not valid and is not following honeybee-schema:
Face "Face d4fc3[Face_d4fc3045]" is invalid:
Face "Face d4fc3[Face_d4fc3045]" is not valid and is not following honeybee-schema:
Adiabatic cannot be assigned to a Face with apertures or doors.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\cli\validate.py", line 40, in validate_model
    parsed_model = Model.from_hbjson(model_json)
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\model.py", line 234, in from_hbjson
    return cls.from_dict(data)
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\model.py", line 161, in from_dict
    invalid_dict_error(r, e)
  File "C:\Program Files\ladybug_tools\python\lib\site-packages\honeybee\typing.py", line 310, in invalid_dict_error
    raise ValueError('{} "{}" is invalid:\n{}'.format(obj_type, full_id, error))
ValueError: Room "Room 33e9f[Room_33e9f219]" is invalid:
Room "Room 33e9f[Room_33e9f219]" is not valid and is not following honeybee-schema:
Face "Face d4fc3[Face_d4fc3045]" is invalid:
Face "Face d4fc3[Face_d4fc3045]" is not valid and is not following honeybee-schema:
Adiabatic cannot be assigned to a Face with apertures or doors.
   at Core.Utility.ExePythonCommand(String argument, String& results)
   at Core.Utility.ValidateModel(String hbJsonPath)
   at Pollination.RH.RhinoCommands.PO_ValidateModel.RunCommand(RhinoDoc doc, RunMode mode)

it appears that faces which are adiabatic in the "untouched NREL/DOE reference model; loose boundary conditions during PO_FixRoomChildrenLinks


i.e some of the wall BC’s in the negative spaces of the reference building are supposed to be adiabatic; which is NBD to manually change; just wanted to let you know what happend