Upfolding shading device modelling problem

Ok, nevermind. I’ve constructed a plane with X and Y axis (X being world Y and Y being the surface normal, origin is the same as before…).

As long as you are using rectangular section profiles, my suggestion should work by adjusting offset and extrusion distance. But if you use section of custom shape, then you are right.

Yes, I meant custom profiles, sorry if I wasn’t clear.
This is my next obstacle actually: with a rectangular profile my script works now.

If I switch to a custom frame however (coming from the manufacturer as a DXF), Sweep1 dies even for the outline (in the Python component rs.AddSweep1 works), creating the full frame geometry is not working with either one.

Do you have anything in mind?

This is my updated script, the frame curves are internalised in the red group on the right.

shading device2.gh (24.2 KB)

The only thing I got from all your pictures is that your “Upfolding shading device” has only two sections and is fixed at the top. The old code worked only in the WorldXY plane so I fixed that and adapted it (hastily) to handle multiple sections.

FoldingPlates_2020Dec31a.gh (29.5 KB)

The ‘gap’ slider is intended to allow for a hinge but that value can be reduced to zero.
The horizontal gap between sections is hard-coded into the Series ‘N’ input in the cyan group (a fixed value added to ‘Length’).

I’m late, gotta go.

P.S. I see that it fails when there are more than two panels. No time now to fix it.

1 Like

Here is another solution.

shading device_reV2.gh (25.5 KB)

1 Like

For what it’s worth, I’ve had a chance to repair my model to work with more than two folding panels.

FoldingPlates_2020Dec31b.gh (29.5 KB)

And to examine all the other models posted in this thread. It seems to me that some abstractions are needed to take this further, such as:

  1. Using a panel/frame that is constructed separately, with any arbitrary frame cross-section and size, as long as it amounts to a rectangular box. That single panel would be oriented and used as often as needed to make “upfolding” pairs.

  2. Location and orientation of each pair (or vertical set if more than two were used) would be defined by a list of planes.

I tackled the second part first by isolating the code that uses planes from the code that creates the planes in specific locations (cyan group). So far, it works well when all the planes are either XZ or YZ but fails when mixing the two… :thinking:

FoldingPlates_2020Dec31c.gh (31.8 KB)

It responds quickly to all parameter changes.

The problem was only in the cyan group, creating the planes. This model has an internalized list of 30 planes (one per folding pair) facing two directions at four different locations, How they are created can be determined separately, perhaps from properties of the building such as planar surfaces that serve as placeholders for each pair.

FoldingPlates_2020Dec31d.gh (30.1 KB)

Getting there. The orange group is a building with Random Reduce applied to SubSrf (Isotrim) sections to represent locations (planes) for the folding devices (shown in white).

The ‘Custom Frame’ from @HS_Kim’s code is internalized and oriented to each of these planes (shown in yellow) but not yet used by the folding mechanism.

FoldingPlates_2020Dec31f.gh (263.1 KB)

Happy New Year!

shading device_reV3.gh (24.0 KB)

Interesting approaches, thank you! I will try to incorporate them into my model later today.

@Joseph_Oster your definition is really cool to think about tolerances (hinges, operating distances between neighbouring frames to fasten screws, etc.), which I haven’t yet accounted in my solution (it folds to zero at the starting position):

frame anim

@HS_Kim I’m on my laptop now, and your latest file requires Lunchbox (I’m on a Mac when mobile and it is Windows-only if I recall), so I’m not able to test right now. When I get to my desktop I will, but it looks really promising on your GIF.

Thinking loud here about further issues...

What I have issues now is the sorting of my subdivided surfaces, when I built the concept model I haven’t thought about actual structural detailing later on, so I have these annoying misalignments around the edges:

Again, wrong plane construction method. Argh. Lesson (should be) learned…

facade_structure.gh (30.6 KB)

Maybe I’m better off now baking each side as simple surfaces, rebuilding the boundaries in a proper way, and applying the framing logic (either fixed or folding), .gh starts to lag too much now.

I cannot complain, this what you get when your model is becoming a dumpster fire hacked together weeks before a deadline.:slight_smile:

I really appreciate the help, this proves to be a life saver for me. I think I can merge the pieces into a final solution.

Happy New Year!

1 Like

I don’t have Lunchbox installed but I can tell from the animated GIF that only one pair of panels is being folded and then it is copied (using Orient) to all the target planes.

Out of curiosity, I changed the ‘U Count’ slider in my model (orange group) from 3 to 10 and noticed a significant delay (~35 seconds?) that turns out to be caused by Orient in the gray group, which is copying the unused ‘Custom Frame’ to all the target planes. Disabling Custom Frame removes that delay. Re-enabling it freezes the GH canvas for ~35 seconds.

Wow, that’s costly compared to the way I’m creating the folding panels in place.

By the way, I’ve never seen that dropdown arrow you used and almost missed what it reveals when you click it. I see it now in the post editor, the ‘Hide details’ feature?

This is an example of the 'Hide details' feature (CLICK ME)

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Seeing how slow Orient can be, I made the ‘Custom Frame’ optional. It is now used to get dimensions (‘Length’, ‘Width’ and ‘Thickness’ sliders removed) but as noted in the gray group:

Enable Orient to use ‘Custom Frame’ (SLOW!)

How slow? Enough to make interactive folding impractical, even when the number of “folding devices” is low. When ‘U Count’ (orange group) is changed from 3 to 10, the number of planes goes from 24 to 304 and takes more than 1.5 minutes with Orient enabled, so default is disabled.

FoldingPlates_2021Jan1a.gh (269.2 KB)

Yeah, it takes minutes.

I’m not sure how else to do custom profiling other than Orient, but I need(ed) the geometric complexity, I don’t want to draw the profiles in 2D on all my sections (I bake the results into Rhino then export it to ARCHICAD as a Rhino 5 model).

I didn’t think the “detailed” model would be this heavy, I’m thinking about only using the rectangular cross section for lightness… At a scale of 1:50 the profile itself is not really visible anyway, but it bugs me.

Sweeping manufacturer provided frames is a generic issue which surfaces whenever creating windows, curtain walls, or other metal framings.

Maybe creating blocks could help?

The interior details of the ‘Custom Frame’ are complex and completely lost at building scale. A much simpler version could be created that more closely approximates the dimensions and cross-section.

P.S. Here is a simple ''Rectangle Frame" that is much faster than the ‘Custom Frame’, though still slow interactively with a large number of planes.

RectangleFrame_2021Jan1a.gh (12.9 KB)

Maybe what you should do is show an animation using only one plane with the ‘Custom Frame’ and use a simpler version when showing the whole building?

That may be, I’ve never used them.

I intended to create close up renderings from a section of the facade.
It must have been the food coma after Christmas that I am recovering from now.:slight_smile:

I recall seeing quite detailed structural models on this forum, but I couldn’t find them now, I’m wondering how they are managed.

I managed to open it. The operation is really fast, I like how you reused half of the folding panel to scatter it across the surface.

I wonder if this method is the trade-off for speed. I was thinking in panels from the beginning, maybe it would be better to create a set from all the different sized closed polylines and use blocks to populate the facade

Me neither. If I’m correct, there isn’t much native components to define and manage blocks in Grasshopper, right? So I need to use the likes of Human, Elefront, etc.?

Argentina-based Grandio created the Hüga, a $75,000 prefab concrete tiny home that is both weather and bulletproof.


This image shows it fully “upfolded” with no visible means of support?

1 Like

Interesting, thank you!

I’m often wondering if I’m living in a “bad” country, but being weatherproof is enough most of the times…:slight_smile:

Yes, this is the “ideal”, but gravity wouldn’t approve in my case I’m afraid.
I’m struggling to figure out a proper solution. My biggest opening spans 875 cm (huge glulam beam to support it, with a max allowed deflection of 35mm), so I guess I will need visible interium supports. Based on the studio’s website, the assembled size of the prefab house is “3,90 X 3,90 X 11,00” (m), assuming 20cm for the reinforced concrete, their thing is is approximately 350cm wide, that would mean I could get away with one interim support.

I’m thinking about attaching a mid supporting frame-column that is attached to the bottom of the beam and the top of the parapet wall + connected to the wooden curtain wall to reduce effective length (? I don’t really know these words in English:(), but that seems a bit sketchy without calculating it (lateral stiffness for windload in the opened state, mostly).

I wonder if there is a spring in the side that keeps it up in the opened state.

I dodged the sweeping problem for now, by the way. I generated “Curtain walls” with the ARCHICAD add-on onto the polylines, that was the fastest for me (I’m not documenting in Rhino). I had some flipped ones but it was easy enough to manually reverse them. I’ll get back to it, it frustrates me that there is no “fast” solution for now - it is also not “live” in the sense that it doesn’t allow to show the movement.

This discussion shows Solidworks in action, that would be awesome for this modelling problem, but I don’t have the budget or the time to invest in yet another program:

~29 feet! Wow, that’s a big wing in strong wind.

Even if there is, that won’t support a cantilevered structure as shown. You could have cables attached at the hinge point, lifting from above… Spectra/Dyneema-core or Vectran-core, as used for halyards on sail boats, though they would be visible and possibly “sing” in the wind.

From the diagram you just posted, it appears the rail is not vertical? Looks to me like an additional complication rather than a solution?

Or just don’t lift them all the way, as in the second image, instead of trying to get both panels horizontal as in the third image (a rendering rather than a photo).

I had steel cord in mind, that would be put on an Archimedean pulley running in a bay (to reduce the necessary lifting force and the performance of the lift):


Yes, the problem is the angle (5 ° deviation from the vertical plane). Were the panels vertical, I wouldn’t have a crooked line to follow* or a big cantilever to add momentum and bending to the support. I cannot change at this point…

*To make things “easier”, I’m toying with the idea to get the moving bottom cart to a vertical-only movement that would result in a filleted polyline path.