Evenly Spaced Diamond Facade Pattern for a Tower Design

Hey! I have not used GH for more than 10 years as life led me in a different trajectory, but finally after I started my own practice and made it sustainable, I want to venture back into the wonderful and powerful world of GH and parametric design! So yahhh! Here is my first question on this forum in about 12 years!!! (kinda sad…:((()

I am trying to rationalize a MJ-generated tower design in GH. I can see the diamond pattern, and made a quick script to generate the points. I’m thinking once I can get the four lines connecting the points alternatively from level to level, then I can generate the diamond pattern, and things will be easy after that. I do not want diamond patterns that shrink toward the top and bottom, so when dividing each floor outline (which is also a diamond shape), I used the Divide Length component.

Then using Sift Box to get the alternative floors, and Cull Pattern to get the alternative points, I was somehow able to get the “diamond vertices” selected, but at this point the data structure is such a mess, given there are different numbers of vertices on each floor, I am not able to weave the diamond edges together.

Does anyone see a better approach to this kind of problem other than trying to divide the edges of each floor? Or anyone who is more skillful at handling the data structure can lend some help? The main challenge is to keep the diamonds’ dimensions more or less the same across the tower, aka uniform panelization.

Here is the code:
Diamond Tower.gh (19.8 KB)

Much appreciated!


Bumping this up and hope to get some response.

I would probably construct a surface - as a flat representation of each facade - for each side of the building, then use the diamond panels component from LunchBox.
The fewer surfaces you can manage for each facade, the easier it will be, since the diamond grid will be mapped to each surface individually. The more surfaces you have the harder it will be to make the edge situations, where neighbouring facade surfaces meet, to match in terms of the diamonds.


Hi, yes, I actually thought of this approach, and if you open my script, you’ll see that I attempted this approach in a way, but not constructing the entire tower facade in one surface, but still try to handle the floor to floor facade on one side of the rhomboid only.

But the key problem is that I try to divide the pattern into equal distance so the diamonds do not “squeeze” when the floors become narrower. LunchBox will divide each floor edge into the same number of subdivisions, therefore causing the “squeeze”.

I should have changed my topic to “Equal-Distance Spaced Diamond Facade Pattern”

Maybe a quickie can be with lofting + meshing + diagonalizing?*

*Edit: If you’re lofting ‘floor to floor’ then instead of the MeshSurface component you could just turn each loft segment into a quad mesh via SimpleMesh, then join/weld them all and apply the handy Diagonalize.

Perhaps check out this topic too *for a ‘tower intersection’ method:

1 Like

There are several ways to subdivide if all I need is an equally spaced grid. The hard part that I’m looking for a solution is how to put equal distance between the grids across the floors. In other words, I know how to divide each floor into 20 grids and make diamond pattern out of it, but how do I make the grid points spaced by 10 feet on each floor and then make a diagonal pattern?