Random cladding wall (based on 3 defined widths)

Hi, I hope someone here on this forum can help me out with the following:

For a project I’m currently working on, the architect wants to have vertical wooden planks as the façade for the building.
The planks are in 3 different widths: 46, 95 and 145mm, wich has to be randomly divided over the length of the wall:
145mm - 50%
95mm - 30%
46mm - 20%
The gap between each plank is 10mm.

I already tried it with a curtain wall with the 3 family types (curtain panels) wich kind of works, but I can’t tell Revit to get the gap between these 3 types 10mm, since the horizontal grid in Revit can’t be adjusted randomly according to these family types.

Please does anyone has an idea how to do this? Any help on this is more than welcome!

Hope I described the problem well enough for you to understand, English is not my native tongue :slight_smile: (dutch is)

How do you think Dynamo could help with this? Did you find any related thread on the forum?

No, I found nothing related, been searching all morning…

You could start by building a graph to model a regularly divided curtain wall and see what’s possible with the panels lengths

what do you mean by that? I think a curtain wall can’t do the trick becaus of the randomly divided (= the 3 different widths) vertical grids,

Curtain wall can do the trick - you have to use one that has the vertical grid disabled.

1 Like

This is what I have so far, and explains my problem:

@w_de_bruijn Something like this?

If so, try to reverse engineer and extend this to serve your purpose …

//Facade dimensions
l = 2;
h = 2;

//Panel widths
pw1 = 0.145;
pw2 = 0.095;
pw3 = 0.046;
spc = 0.010;

pw11 = pw1+spc;
pw21 = pw2+spc;
pw31 = pw3+spc;

//Panel count percentage
pwn1 = Math.Floor((0.5*l)/pw11);
pwn2 = Math.Floor((0.3*l)/pw21);
pwn3 = Math.Floor((0.2*l)/pw31);

pw12 = List.Cycle(pw11,pwn1);
pw22 = List.Cycle(pw21,pwn2);
pw32 = List.Cycle(pw31,pwn3);

a = List.Shuffle(Flatten({pw12,pw22,pw32}));
b = Math.Sum(List.TakeItems(a,1..List.Count(a))<1>);
c = b - a;
d = b - spc;

bp = Point.Origin();
dr = Vector.XAxis();

st = bp.Translate(dr,c);
en = bp.Translate(dr,d);
ln = Line.ByStartPointEndPoint(st,en);
sr = ln.Extrude(Vector.ZAxis(),h);
1 Like

What is described in other posts concerning minimal attachments shouldn’t be applied to every requests? Why are the forum guidelines once more not followed here?

Yes that’s exacly what I ment :slight_smile:
I’m not really known to modeling surfaces in Dynamo, but this helps me so much, thanks for the example!

I got the code working in Dynamo, so now I should also put a Depth on de surfaces to load it as elements into Revit. Let’s see if I can do that.

1 Like

Fixed it, thanks again Vikram_Subbaiah for your help!

1 Like

Please think about sharing what you did. It’s a very bad practice here to ask someone to do a work from scratch, while asking for an “idea” without any graph or piece of code simply looks like an order form for free work. This forum is essentially dedicated to learn and improve Dynamo. If you missed that point, please see here:

1 Like