Curvilinear Geometry-Pollination vs HB Room from Solid


I’m having issues bringing in curvilinear geometry as a Room using the Add Rooms> Select Geometry option of the Pollination plugin for Rhino.

I’m able to select and bring it in as a room using HBRoomSolid component in Grasshopper. (Image below)

Is this a bug in the Pollination plugin?
Could you please have a look at the geometry and help me figure out how we can create a room for these types of geometry using the Pollination plugin? ([Hightail link to the files

Thank you,

Hi @kpai, this is the expected behavior. See here for how to use the Convert command to prepare your geometry.

We decided to remove the automated conversation from non-planar to planar geometry to minimize the possible issues, and give more control to the user to prepare the model.

@chriswmackey, I was expecting this case to also fail with the LBT plugin. Did we change our strategy there? If that’s the case, we should probably align the development of the Pollination Rhino plugin with the Ladybug Tools plugins.

Hi Mostapha,

Thanks for the explanation!

The geometry was already planarized. I thought the Add Room by selecting geometry function should be able to work since I planarized it. It would be great and faster if the option allowed for this.

Thank you,

1 Like

Thanks, @kpai and @mostapha .

No, the LBT-Grasshopper plugin has always accepted non-planar Breps for Honeybee geometry and it converts them into planar geometries using this module that is purely devoted to planarizing geometry in a manner that makes the most sense for BEM platforms. There is even a HB Planarize Brep component that is devoted just to brep planarization if you want more control over the meshing parameters used in the process.

I agree with you, @mostapha , that native Rhino capabilities do most of the hard work for us by either creating polylines from curves or creating closed planar meshes from closed breps. But the raw output planar mesh is almost never what you want to go off to the BEM engine. At a minimum, you usually want to merge back the coplanar triangles and quads into contiguous faces so that you aren’t sending a bunch of triangles off to an interface like the OpenStudio Application or IES-VE. This merging back of coplanar quads/triangles is what the ladybug_rhino.planarize module does.

If this decision was made at some point, I can respect the decision and maybe I’m just forgetting whether I had input into it. But it is not the decision that I would make at this point in time:

As I said, Rhino’s native commands are powerful and take care of the hard part but, if it were up to me, we would still add a PO_PlanarizeBrep command that works like the Grasshopper component. I would also meet the expectations of @kpai here by planarizing the Room geometry as it was converted to a Pollination Room. Both of these Rhino commands could use the same ladybug_rhino.planarize module as the LBT-Grasshopper plugin, which we know is reliable because it gets used a lot in LBT-Grasshopper world.

I think @mingbo and I had talked about adding support for this type of Pollination command at some point into the Rhino plugin but I know it has not been prioritized because there is a multi-step but work-able way to get around the Rhino Plugin’s limitations right now for any brep:

  1. Run the Rhino Mesh command on the closed curved brep. This will give you a closed planar mesh.
  2. Use the MeshToNURB command to convert the planar mesh to a brep.
  3. Use the MergeAllCoplanarFaces command to merge the coplanar faces of the brep together.

If the input geometry is simple and there is only single-curvature, there is also the option that you showed in the other post with the curve Convert command.

Granted, both options require some manual work such that I usually don’t bother with them. If I find myself in the position of having to convert a non-planar geometry to a Room in Pollination, I just use the LBT-Grasshopper Planarize Brep component right now and bake it back to Rhino since I find that this whole workflow is often faster and more reliable when it comes to giving me what I want than the native Rhino commands. So I really would not want to remove this functionality from LBT-Grasshopper that I use on a fairly regular basis.

Still, I can respect the decision to leave out automated planarization from the Rhino plugin or to keep this as a low priority. After all, there is currently a fast workaround with either 3 Rhino commands or with Grasshopper so I don’t have too much that I can complain about. Plus, all of the geometry that we get from sources like Revit or other BEM engines is always going to be planar anyway.

1 Like

A thought: is pt 3 in your list @chris MergeAllCoplanarFaces is what I do after MeshToNURB preventing the need to explode the Brep to clean it up I believe?
I could totally be missing something though but that should make 4-5 not needed?
as I said I could be missing something here and just wanted to share the MergeAllCoplanarFaces thing

1 Like

Thanks, @tfedyna . I just updated my response above because you are right that using MergeAllCoplanarFaces is the fastest way to do it with native Rhino commands. It had just been so long since I used the native Rhino commands that I had forgotten what they were.

1 Like

Hi @kpai,

From what I can see, it is not planarized. You can always use the PO_CheckPlanarity command to find the non-planar faces.

Agreed! Let me check this with @mingbo and @chriswmackey and see what the best approach would be. We can add the command that @chriswmackey suggested above.

Thank you, @chriswmackey for the explanation! I was not aware of the native support for the non-planar geometry in Honeybee. Even though Rhino has several useful commands, it never hurts to have an automated option.

1 Like