To create perforated pattern with line attractor on parametric facade

Hi,
I have created a parametric façade for a building. I want to create a perforated panel design on the façade. But I am not able to find out a way to project it on the surface I want it to. I also want the perforation to be manipulated with curve attractor.
I have though of unrolling the panel and they doing the perforated curve attractor script and then to map it on surface. But am not able to unroll the façade and got stuck there.
Kindly any suggestions how can I achieve it. I am planning to execute the design on site. So any idea to unroll the panels individually and name them for laser cut.
I have attached the rhino and .gh file for reference.




elevation R2.gh (127.8 KB)
Elevation Fascade.3dm (237.2 KB)

This is impressive but not “The Grasshopper Way” of doing things:

In your second image, what looks at first like circles (whose radius is determined by the attractor) are actually extrusions. Do you want to place these extrusions on the facade or cut holes (perforations) in the facade?

It will be better to hide the sides and focus only on the front.

If three sections (bottom, middle and top) are identical, why not create one and copy it?

Instead of creating circles on XY planes and rotating them 90 degrees, use XZ planes:

elevation R2 Edited v0.gh (174.9 KB)


1 Like

When I open your file (R8), I see nothing - until I enable preview on the last List Item.

Did you abandon the attractor curve?

I used one of your green groups, modified your “Perforated Pattern” group and added some code.



elevation R2_2024Oct28a.gh (36.1 KB) (R7)

Curve is internalized, no need for Rhino file.

I limited the grid pattern to 20 by 20. Original resolution of 100 by 45 takes 12.3 minutes :exclamation:

By the way, I hope you realize that the faces of your facade are not planar.

P.S. Faces that are not planar make it more difficult to build. Projected circles (holes) make it extremely difficult, as each face in this design is unique :bangbang:

1 Like

Hi,
Thanks for your reply. I am relatively new to grasshopper. As you said there might be better ways to achieve the result of what I have done. The Second image is for reference. I wanted to achieve the perforation similar to that on my facade.
I will initially focus on the front.
The three sections have minor changed to them. And I think copying them later will affect my perforation pattern.
Yes, I should have used XZ planes.
Thanks for that input

Hi,
The output is almost similar to what I wanted to achieve. Further, I need a curve attractor to affect the opening points. Thanks a lot for the output I will further work on it.

No doubt about it, there are definitely better ways :bangbang: Still, it’s difficult to build.

Hi,
Thanks a lot for your time and solution. As you said, yes I am aware the faces are not planar. Projected circles will have different effect on each panels, and the design pattern will change for each face. I will have a look into the solutions you provided.
Again thanks for the feedback.

Hope by further practice I can achieve it in better way. Yes, I am aware its going to be challenging but will try to execute it as planned. If worst comes will minimalize the design.
Thanks for the feedback and time.

Hi,
@Quan_Li @Joseph_Oster
I have gone through your script inputs they were really insightful. and I tried to incorporate certain points from both the scripts. Currently I am planning to do only the perforation holes on the panel faces and latter try to do the curve point attractor. I got stuck at creating the FLIP matrix for unselecting the points on faces boundary. Individually I am able to flip the faces but together its showing error. I tried using path mapper but couldn’t get the code right. Kindly suggest how can I flip all the faces to work for the second cull pattern to happen like its happening when I am selecting faces separately.


elevation R2.gh (152.8 KB)

Hi,
I have almost completed what I wanted to do for the perforation design. I have created circles on the panels and also the curve to act as attractor for the circle. The circle output is not as I expected and it feels like am doing some error in tree parameters. Kindly suggest how can I do it.
In the file the data tree from flatten and remap numbers are not matching so the output is not what we usually get. How can I match the data tree output.
I want the circle to be smaller near the curve and larger the further its away from curve.
I have attached the image, .gh and rhino file for reference.



Elevation Fascade R4.3dm (205.4 KB)
elevation R4.gh (155.7 KB)

This contains none of your original code for creating the facade.


facade_2024Oct30a.gh (46.9 KB)

1 Like

I added pink groups to convert two lofted non-planar surfaces to four planar triangles.


facade_2024Oct31b.gh (45.0 KB)

The Grasshopper Way” is a double-edged sword. It can be elegant, succinct and clever. Or it can be a long struggle, wrestling with stubborn data trees that don’t cooperate. There are many ways to implement planar triangles, for example. I had hoped for something clever, with a switch to choose from four different ways of doing peaks and valleys, but ended up with a brutish approach with redundant components and no options.

Yesterday (version ‘30a’) I had minimal code in the first white group until I tried to make it work with two or more base planes. I struggled with it, slept on it, and finally used two parallel sets of components, one for each panel, duplicating things I had previously done in branches. I believe it will handle three or more base planes but haven’t tested it. :violin: :sweat:

Thanks a lot for you reply. Your insight in grasshopper has really helped me with new ideas to approach design. I will look into the script and will proceed with the design process.
Thanks again.

I had an idea… :thinking: The current method of projecting a grid of holes onto the facade makes all the panels (faces) unique, which increases the difficulty and cost of building it. The idea is that distance between each face and the attractor curve could determine a hole pattern, limiting the number of unique panels, making it easier and cheaper to construct.

To test this idea, I used four holes of the same size (determined by attractor distance) on each non-planar face. A Range of hole sizes is defined (‘MinR’ to ‘MaxR’ domain) with 7 steps.

Planar faces (a different GH model) are roughly half the size of non-planar faces so only one hole is used, which required changes to the “cut holes” group. The concept is the same though, that the pattern is determined by distance from panels to the attractor curve.

I added ‘NP’ and ‘P’ to the GH filenames to distinguish between non-planar and planar faces.

facade_NP_2024Nov3a.gh (51.6 KB)
facade_P_2024Nov3a.gh (48.9 KB)

This image shows code in version ‘NP’. Note that a new group was added at the lower left to create attractor curves (light teal color):

The pay-off is in the gold colored group on the right. Version ‘NP’ shows two faces before holes. The whole facade is built by replicating them, though mirrored copies must be counted so double these numbers. After holes are cut, there are 14 unique panels to be constructed and replicated (actually 28 counting the mirrored panels).

Version ‘P’ has twice as many panels (roughly half the size): 4 before holes are cut, 28 after. Planar panels might be flipped instead of mirrored?

These models create all four walls of the building, two of them hidden in the Mirror component shown in the orange group. More work is required to mirror them after holes are cut.

Version ‘NP(non-planar, lofted, four holes per panel):

Version ‘P(planar, single hole per panel, slightly greater diameter):

Added a blue group blob to close the corners, modified the orange group to mirror holed sides (twice!), joined all four sides and corners into a single brep (bottom right of blue group).


facade_NP_2024Nov3b.gh (61.3 KB)
facade_P_2024Nov3b.gh (62.3 KB)

1 Like

Hi Joshep,
I have seen your script and gained a good insight into Grasshopper. I have simplified the script for the Facade and took a few script ideas from your input. I have an issue with lofting the corners. On one side it’s fine but on the other side the lines are not in proper order and the loft is happening irregularly. I have tried sorting the line but that didn’t help. Kindly suggest how can I rectify it.



elevation_option 2_R4.gh (37.0 KB)

Sorry, Pottery Barn Rule applies: “you break it, you own it”. I posted working code and don’t want to debug your “simplified” version. Maybe a Mirror problem?

I learned some things about data trees two days ago watching Andrew Heumann’s excellent videoThe deal with Data Trees”. Highly recommended :bangbang: :+1: The main thing was avoiding ‘Simplify’ by religious use of Shift Paths to keep data trees compatible.

I have a similar problem with my script. I want to put the pattern on the surface. Please help!!


Sports Complex.gh (14.0 KB)
Sports complex.3dm (49.5 KB)