Dynamic Parametric Array not working with multiple array

Dynamic Parametric Array not working with multiple array

Anonymous
Not applicable
10,624 Views
38 Replies
Message 1 of 39

Dynamic Parametric Array not working with multiple array

Anonymous
Not applicable

Hi, I have spent many hours/days trying to get this parametric array object to function properly, to no avail. It is a multi-panel roof/canopy system that I have tried creating as a 'line-based generic model (metric)', as the overall width determines the number of panels and the centres of each.

I have worked with the basic formula patterns for Revit and have managed to get the intermediate rails to work parametrically, but not the roofing sheets! It is also not adjusting the width of the panels (centres) to suit the overall width (i.e. overall width / number of panels = panel width). To add additional levels of complexity to this component, the width of the panels needs to have a 'variant' values added to it, in that its minimum width is 450mm and the maximum is 1245mm.

 

This has become extremely frustrating and I need to get this solved, sooner rather than later, as I am spending too much time on the one object - regardless of its complexity.

 

I am sure it is a minor thing that I have missed in the set up of the fomulas, but I really need some assistance on completing this, as its driving me insane!

 

I have attached a few images to show you where I'm at so far.

 

Image 1 - Appears to be graphically correct

Image 2 - Reduction in width and it 'breaks'

Image 3 - Formulas used, so far

0 Likes
Accepted solutions (2)
10,625 Views
38 Replies
Replies (38)
Message 21 of 39

Keith_Wilkinson
Advisor
Advisor
Marc,

I have completely failed to save last nights work onto my flash drive - if I can get access to my home PC at some point today I'll see if I can get it - sorry for the delay, but who know's you might have it done before me.


"Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime."
Maimonides
0 Likes
Message 22 of 39

Anonymous
Not applicable

Hi Keith.

 

I hate it when that happens! Not to worry.

 

I'm still having no luck at my end, so would appreciate it if you or anyone else (just throwing it out there!) can come up with a solution, to reduce the smallest line length to 1500mm (from 4000mm), soonest.

 

Thanks, Marc.

0 Likes
Message 23 of 39

L.Maas
Mentor
Mentor

Only Revit 2016 avalable at the moment. But here is how I approach it.

 

Two instances of single family placed in project

00Panels.png

 

The family.

01Panels.png

 

In this screenshot, for clarity (I hope), I have unhidden the array panel and moved it downwards. In the actual panel it would beon the position of the single centerpanel and hidden from view.

 

If you look at the formula what I am basically doing is to calcualte the qty of panels needed. If array gets smaller than 2 than I hide the arrapnels and unhide a single panel. The array panels stays at 2 so not to break the array. Further I resize the (hidden) arraypanels so they will not stick out. For convenience I size them so the size of the single panel.

If the size ofthe array becomes 2 or more the single panel is hidden and the arraypanel shown.

Whole family is build up from single panel family. I hope this will be enough to enable you to modify your own family.

 

 

 

 

 

 

 

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

0 Likes
Message 24 of 39

Anonymous
Not applicable

Thank Louis.

 

Adding this feature futher complicates the family, but will be worthwhile doing.

 

I'll get onto it showrtly.

 

Firstly though, now that I have my families nested to my 'Array_family', I want the 'Host_family' to be a Roof-based family, with the added functionality of a Line-based family. The reason for this is that the family needs to be operational, within the project, to be hosted to the roof and sized (in Width) on placement, via 2 clicks (Start and End). IS this possible with the set up of the family I currently have?

 

Thanks,

 

Marc

0 Likes
Message 25 of 39

L.Maas
Mentor
Mentor

No this is not possible. Roofs (like walls) are system families and thus not loadable. So it will not be possible to change the category to roof.

 

It was also the reason that in one of my earlier posts I hinted at using curtain walls (vertical/walls) and sloped glazing (horizontal/roofs).

 

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

0 Likes
Message 26 of 39

Anonymous
Not applicable

Can it not be loaded to as Work plane-based family and retain the functionality of the 'reference line'?

0 Likes
Message 27 of 39

Keith_Wilkinson
Advisor
Advisor
Accepted solution

hi Marc,

 

Okay, firstly I'm a firm believer that you need to understand these things yourself, if you do you ability to manipulate Revit will increase significantly.  So with that in mind I've not changed your family but rather built my own version.

 

I've attached two versions - the first has the single panel and single glazing bar pulled away from the main assembly (Split) so that you can see how the vis parameters are working.  The second is the family in its working state (Aligned).


Some of the parameter names are a bit inconsistent (Length and Width partiuclarly) but there should be enough in here for you to get to grips with what you need to do.

 

Some things to note : 

 

1) I have two families - a glazing bar and a glass panel.  I have created different types of these for the different applications (ie standard panels and end panels) - this approach is a bit different from Louis' but it's personal perference.

2) There are a LOT of parameters calculating quantities for the arrays and visibility.  Some of these are to prevent the array from breaking (ie ending up with a value less than 2) whilst others simply work out how many should be in the array itself.  It might be possible to whittle this down a bit but this has been a bit of a rush job and in it's current state it seems to work!  

 

From the point of view of learning you should try just building a basic array in a family and then look as using visiblity parameters to control what you see and prevent the array breaking - as I say this is actually qute a complex arrangement when you get into it.

 

Finally I would suggest you simplify your glazing bar.  If you need to show the detail in section use a detail family but don't use this to generate the actual extrusion - it's way too much detail IMO.

 

Anyway see how you go - between this and what Louis has posted you should pretty much be able to conquer the world.  😉

 

Good luck!

 

Cheers

 

K.



"Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime."
Maimonides
Message 28 of 39

Keith_Wilkinson
Advisor
Advisor

It needs to be either roof based or line based - you can't have both.  I would suggest line based might work best for you, when you load it and go to place it you can select a 'face' or 'workplane' to place it on.

 

it's worth noting that line based families cannot report the level they are on.

 

K.



"Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime."
Maimonides
0 Likes
Message 29 of 39

L.Maas
Mentor
Mentor

Roof.png

Example the line based family put  on top of a face of a roof

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

Message 30 of 39

Anonymous
Not applicable

Thanks Keith / Louis.

 

You've both been a real help.

 

I completely agree with your opening statement, Keith.

 

There is a lot of information there to digest and it comes down to being methodical with the whole process. That will come. It's just difficult to see the wood from the trees when the time pressures are on and its holding up a deadline. I'll just have to get it out as near as I can for now and revisit it at a later date - perhaps starting the process from the beginning, once more!!

 

With regards you final comment... I have created a line-based family, for the same reasons you've stated, but I can not seem to determine the TotalWidth of the family on placement. Surely, this is the whole point of line-based families?!

 

Thanks again guys. I really appreciate it.

 

Marc

0 Likes
Message 31 of 39

Anonymous
Not applicable

That's it!

 

Were you able to use the reference line, within the family, to select a start and end point or did you manually enter the TotalWidth (Length) to suit the roof?

 

I've just tried it again and could only do it manually, but its not cutting through the roof - even though it is set to 'Cut with Voids When Loaded'?

 

Marc

0 Likes
Message 32 of 39

L.Maas
Mentor
Mentor

I used the line to pick start and end point on roof.

 

In my case I cheated a little as the endplate was falling between lines of the line base family. So after initial snapping I had to stretch the line (+/- 2 mm) to get the end-plate over the edge of the roof. Blue dot is the end point of the line of the family. Other red arrow points to edge of the roof.

 

Edge.png

 

 

 

 

These are minor adaptations/finetuning to the family.

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

0 Likes
Message 33 of 39

Keith_Wilkinson
Advisor
Advisor

Families like this, if they are something that gets used on a lot of projects are well worht the effort to get right IMO.  yes it takes longer to make the first one but once it's done that's you, plus you know it's right.  that said you need to weigh it up against deadlines - is it worth putting in the effort now or deal with it a little further down the line.  I tend to find my families are constantly developing as and when I have time.

 

with regards to the line based issue - just nest your arrayed family into a generic line based one, align and lock the family to the left hand reference plane and then select the nested family, Edit Type and link the Lenght to the Length parameter in the Line based family and that should be you done.  Load this into your project and place on the necessary face.



"Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime."
Maimonides
0 Likes
Message 34 of 39

L.Maas
Mentor
Mentor

Have you added a void to your family that is in the location of the roof?

As line based families do not realy have a host (like face based) they will not cut automatically.

 

Modified the family by adding void and use cut command in project to cut roof.

 

Hole.png

 

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

0 Likes
Message 35 of 39

Anonymous
Not applicable

I'd put the void extrusion in, but relied on the family to use the Cut Void command automatically. Didn't think to use the 'Cut Geomertry' command - that's another chunk of time you've saved me!

 

There's just the other gripe to solve now.

0 Likes
Message 36 of 39

L.Maas
Mentor
Mentor

Maybe I missed/misread something 🙂

What 'other gripe" do you mean?

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

0 Likes
Message 37 of 39

Anonymous
Not applicable

Where you can utilise the 'reference line' to dictate your insertion length (Start and End point); for whatever reason, I cannot and have to revert to a manual input within the family properties.

0 Likes
Message 38 of 39

Keith_Wilkinson
Advisor
Advisor
Accepted solution

Try this;

 

 



"Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime."
Maimonides
Message 39 of 39

L.Maas
Mentor
Mentor

I takes me a few clicks to place the system

Selected the family and use pick line and place on face to select edge of roof.

Step 1.png

 

And click, follwed by the cut command....done

 

Step2.png

 

The length parameter in the preprties panel is indeed greyed out.

 

Need to go to a certain length? One or more edges (e.g reference plane) and for example the align tool it easy to adapt the length of the sytem to a fixed length.

 

Step3.png

 

My take on this quite manageable.

 

 

Louis

EESignature

Please mention Revit version, especially when uploading Revit files.

0 Likes