Revit Architecture Forum
Welcome to Autodesk’s Revit Architecture Forums. Share your knowledge, ask questions, and explore popular Revit Architecture topics.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Flex / increment array spacing with given range?

10 ANTWORTEN 10
Antworten
Nachricht 1 von 11
Duke_W
1695 Aufrufe, 10 Antworten

Flex / increment array spacing with given range?

Hi, all.  I've tried searching but it's a complex issue so maybe I'm not describing it well.

 

I'm trying to create / edit a flexible parametric family with an array of objects within it.

 

My goal is to have the array adjust the spacing via calculation / formula for a user-input overall length... but only within an acceptable range for the spacing dimension.  If the calculated spacing goes above or below the acceptable range, I want the array to add to or subtract from the element count until the calculated spacing IS back in range.

 

Specifically,  I'm making a louver panel for curtainwall infill.  I'm OK with a fixed louver blade height / depth / angle, and I have that family nested into the panel family.  Let's say that the overall blade height is 4".  I need some overlap but not too much, so let's say that the acceptable blade spacing (BS) is 2" < BS < 3".

 

Now I want to create an array where the bottom of the bottom blade is aligned to one edge and the top of the top blade is aligned to the opposite edge.  That means the spacing parameter has to flex in order to make the overall height of the array hit the target, which is easy enough to have Revit calculate for a given blade count (BC).  Where my trouble lies is getting Revit to flex both the BC parameter and the BS parameter so that I always wind up with an integer BC, the BS parameter stays within the 2" to 3" acceptable range, and the top and bottom blades align to their respective edges.

 

Can anybody please point me in the right direction?  Thank you.

10 ANTWORTEN 10
Nachricht 2 von 11
barthbradley
als Antwort auf: Duke_W

Can you post what you have so far?   The rfa. 

Nachricht 3 von 11
Duke_W
als Antwort auf: barthbradley

Thanks for the response.  Here's my current family.

Nachricht 4 von 11
barthbradley
als Antwort auf: Duke_W

are you taking about something like this?

Nachricht 5 von 11
barthbradley
als Antwort auf: barthbradley

...maybe I mis-read you. Maybe you  want to Array to "Last" - not "2nd" (e.g. NOT "Append to End"). 

 

 

Nachricht 6 von 11
Duke_W
als Antwort auf: barthbradley

No, that's not quite it, but thank you.   Your original version successfully adds or subtracts blades, but what it doesn't do is then re-distribute the remaining blades so that they exactly fill the overall height of the panel.  Your second version re-distributes them but doesn't add extra blades when the spacing gets too large.  I'll try to walk through the math in an example:

 

Say we have a louver panel 48" high (LH).  Maximum blade spacing (BS) is 3".  Having Revit do the array math, it's easy to make the array have 16 blades. (BC = LH / BS or 16 = 48 / 3).

 

But if the lover panel flexes to be 50" high, with 16 blades at 3" spacing we are 2" too short overall.  And if it increments to 17 blades at 3" spacing, we are 1" too tall.  The array needs to increment to 17 blades so the BS values doesn't go out of range and then recalculate the BS parameter so that the overall panel height is the required 50".

 

The same thing has to happen in reverse when the louver panel shrinks.  If there is a minimum BS value of 2", once the blade count math results in BS of less than 2", it needs to delete a blade.  But deleting the blade will make it not exactly the right height, so it needs an adjustment factor to re-equalize the blade spacing to match the exact overall height of the panel.

 

Maybe that's the way to do it - add another parameter to calculate that adjustment factor based on the difference between the incremental height and the target height, then apply it.  I bet that would work.

 

Here is a new family.  It still doesn't do what I want, but the parameter names match my description.  Thanks for your help!

Nachricht 7 von 11
ToanDN
als Antwort auf: Duke_W

Shouldn't the blade spacing a fixed value and you distribute the odd space to the first and last distances? For example: a 13" height would be 2-3-3-3-2, a 14: height would be 2.5-3-3-3-2.5
Nachricht 8 von 11
barthbradley
als Antwort auf: Duke_W

you mean something like this?

 

...revised rfa attached

Nachricht 9 von 11
SteveKStafford
als Antwort auf: Duke_W

I abandoned array's for louvers (especially in CW) a long time ago in favor of this technique. By all means, if you want to pursue mastering arrays in families go for it, in this instance I choose to do other things. Good luck!


Steve Stafford
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
EESignature

Nachricht 10 von 11
ToanDN
als Antwort auf: SteveKStafford

I would use that technique (or very similar) as well. The best thing is that they can be of any shapes (edit profile), unlike Arrays.

 

https://forums.autodesk.com/t5/revit-architecture-forum/gable-end-vent-family/m-p/7255905#M157130

 

 

Nachricht 11 von 11
FAIR59
als Antwort auf: Duke_W

Two observations:

  • The spacing also depends on the height of the (first) blade.
  • For a certain (given) height, there are multiple solutions in your acceptable blade spacing range.  So you'd have to choose if you want minimum or maximum number of blades, or somewhere in between.

Here's my solution.

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report