Hello everybody, I’m sharing a couple of files and will try to explain what I’m trying to achieve, hope anybody can help me
I’m working on a building which have a facade with a sunscreen outer skin made of a pattern of clay elements of different sizes (3).
At a earlier stage of the design I modelled them as curtain wall panels, but since the wall profile is not straight I had to fill the corner with generic models.
A further peculiarity of the sunscreen system are the openings corresponding to the windows of the base wall (structure) behind the sun"screen" (all about the project is still ongoing), where I placed horizontal mullions.
I am trying to model the element as a curtain wall made of different mullion types (instead of panels) so that when I cut its profile I won’t experience any issue, and I’m defining in dynamo the pattern of mullions and other parameters in order to automate the creation of the model.
I succeded to move the first steps, but I feel I am still far from having reached my goal:
through the script I built I can divide the wall in grids with the step I desire and I can also assign the correct mullion type, but when further variables come in my strategy doesn’t work any longer:
if i add the horizontal grids the mullions assignement breaks, if i cut the wall profile BEFORE assigning the mullions the host element (wall) will no longer be recognised as a proper element and if I need to move the grids I actually delete them all and re-create the system.
Since I am not able to handle this in python I wanted to ask anybody how can I manage it.
I saw around and tryied some facade generator tool and such but no luck at all…
the perfect result would be to dynamically change the sizes in my mullion patterns (both horizontal and vertical) without the profile cut interfering (along the wall boundary other thicker mullions are used) and hopefully to automatically create the openings+horizontal mullions where windows are located.
Find attached the .dyn and .rvt files, thanks a lot for your help!
mullions_forum.dyn (104.1 KB)
CW-forum.rvt (2.3 MB)
I think you might have to simply the process a little bit. Would using adaptive components and structural framing work for you?
I would go about this by creating adaptive component families for the panels then make the mullion patterns by using beam families.
Thanks @bayowindapo but (I forgot to say) the wall path is curved in several parts, and I am not using masses I guess. So (as far as I know) a beam system won’t go.
Honestly I think having it all into a unique element (such as a cw) can better suit to my purpose. And about adaptive panels… Can you cut them (via edit wall profile) and have them behaving like system curtain panels? Meaning not having them replaced as usually occour with custom panels… I am a little bit confused about this…
Tackled a job like this recently in house and we ended up using a curtain panel with a void on each corner that could angle/cut into the panel. So effectively we had whole panels there that could be cut at the panel level and we used the script to drive this condition. It was much easier than mucking around with mullions and far lighter on performance. We designed about 10 modules that delivered different levels of shading and found the closest one in each case, which makes more sense for fabrication and installation purposes. I’d suggest considering such an approach if time is still on your side as the contractors will love you for standardizing as well.
Thank you @GavinCrump ! Indeed the only problem I had is that editing the profile of a curtain wall with custom panels would replace the non-rectangular ones with system panels. Otherwise keeping the curtain wall w/panels would have been great.
When you talk of voids inside the curtain panel are you referring to adaptive or regular ones? Would be great to see an example, maybe in one of your tutorials…
The only thing I would argue about this is how you would create the wall boundary mullion if it’s the panel being cut instead of the wall profile… But I guess generic modelling (which I generally try to stick away from) it’s the key…
Could you provide any example please? Thank you so much!
In this case I can’t share the source as it’s from within a firm with a client, but we effectively intentionally made the grid sit over another surface behind it, then each panel had a void on each corner which could cut into the base geometry (using triangles effectively). We intersected the wall profile with each panel, found the nearest corner and used that to push in the relevant voids from each. If a panel was empty, we replaced it with an empty panel. The panels themselves were a series of extrusion sections in an unnested state so we could cut them with voids at the native level.
A very customized solution that we made to get around the edit profile issue you mentioned, but keep the final outcome fairly scheulable and manageable from a design/modular perspective.
I’ve attached a very basic example of the principle of how a panel can be managed like this with one void corner and some geometry. Noting our actual solution has 4 corners and a script developed to analyze each corner against a base surface behind it with the true profile.
One lesson learnt I’ve added in the attached is to use what I call a ‘safe frame’ to prevent voids breaking when the corner has no void. I had a workaround built into my actual solution to handle this, but the way I’ve done it in attached would be a better approach (with some compensation built into the script to deal with the panel border + safe frame width using an offset of the panel boundaries).
It’s pretty wacky/complex I know, but on the surface the users found it easy enough to manage.
Example panel 1 corner.rfa (400 KB)
Thanks a lot, very kind! I’ll check it out as soon as possible!
Yet I was kind of intrigued about finding a solution to the problem driven by the logics I established, including the matter of the “intersection” between the windows of the backstanding wall with the openings in the sunscreen curtain wall… So still open to proposals!