How to torque and line up gridshell beams


I am working on a grasshopper script that creates a timber gridshell, operating on a 1.5m grid, as a barrel vault. I have managed to attain the arc geometries that I need for the spans and they intersect well, but I am having issues with the subsequent beam geometry.

I’ve noticed that these gridshells usually intersect in a perpendicular manner, each joint has something like a flat surface. In my crude attempt at modelling the beams I have created a set of beams that intersect at differing angles, and I am not entirely sure as to how to fix this.

Above is the section of the script that I have created for this (as you can see it is very bare bones). I understand that the cross-sections of the beam have to rotate so that their bases are parallel with the barrel vault geometry, but I don’t know how to do this.

Another thing worth mentioning is that the gridshell doesn’t meet the edges of the barrel vault nicely. I suspect this is due to the plane surfaces (lofted to create the beam) are not defined from the centre of the plane but rather from a corner. Unfortunately, I am not sure how to resolve this, as my grasshopper skills aren’t very good.

Any helps or tips would be appreciated. (19.6 KB)

Your Curve param is not internalized.

P.S. I’m not sure this old post is relevant but you might find it interesting?

significantly better in two respects:

  1. fine adjustment of beam crossing angles. [see “corners”]
  2. beam thickness, centered.


Thank you for this, it looks very relevant. I’m not really sure what the script is doing exactly though, would you mind describing the process for me?

The shape of the roof comes from the My Shape cluster created by someone else.

I use it to create two lines divided by PFrames that generate diagonal roof beams. The notable detail I remember is the ability to fine-tune center the position of beams at all four vertices (“corners”).

Don’t remember much else about how it works… Would have to analyze it.