Shared Family In Array Misbehaving

Shared Family In Array Misbehaving

Mark.Ackerley
Advocate Advocate
1,334 Views
14 Replies
Message 1 of 15

Shared Family In Array Misbehaving

Mark.Ackerley
Advocate
Advocate

Hi All,

 

Any assistance appreciated!

 

Please see attached Revit 2019.2.2 file.

 

I have a complex family for a pre-fab balcony... It contains nested shared families so I can tag them.

 

The nested shared families have instance parameters so I can use them in formulas in my array.

 

When I load the host family in, I am getting unexpected behaviour...

 

I have stripped the host family down to just the decking to illustrate the problem...

 

Both family types in the illustration below have been told to be the same width, but the lower one isn't responding correctly:

 

Capture.JPG

Incidentally, I have made the balcony a 'column' family category so that it will be room bounding.

 

As I understand it, my families are all built in a robust manner, I would appreciate any thoughts or comments which might help.

 

Thanks,

 

Mark

 

 

0 Likes
Accepted solutions (2)
1,335 Views
14 Replies
Replies (14)
Message 2 of 15

MostafaElashmawy
Advisor
Advisor

You was connecting the width of the nested family to a parameter called Decking Width while it should be connected to the parameter called BalconyAnnotation 2020-01-10 132937.png width.

Check below and attached.

 

Mostafa Elashmawy
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

0 Likes
Message 3 of 15

Mark.Ackerley
Advocate
Advocate

Hi,

 

Thanks for the response...

 

You are correct that reasigning the parameter to a new value does 'reset' the values... Thank you I will use this for now, but I would also like to understand why that parameter broke...

 

The parameter Decking Width is related by a formula to Balcony Width...

 

Capture.JPG

 

This is because the Decking Width will be different to the Balcony Width.

 

Could you explain why you think using a different parameter would create the inconsistent behaviour seen in the image? Both of the types are linked to Decking Width of the same value, but the lower type is not responding to the value correctly...

 

Here is a gif which shows the inconsistant behaviour... You can see the lower Type does not respond to the change in parameter value...

Nested Family.gif

 

Thanks again,

 

Mark 

0 Likes
Message 4 of 15

MostafaElashmawy
Advisor
Advisor

The parameters of the board seems connected to wrong parameters.

The depth is connected to depth while the width is connected to board width.

Annotation 2020-01-10 140823.png

Mostafa Elashmawy
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

0 Likes
Message 5 of 15

MostafaElashmawy
Advisor
Advisor

Also the parameters of width and depth of this board family are instance parameters while you connected them to type parameters.

I think that's the main problem.

Mostafa Elashmawy
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

Message 6 of 15

Mark.Ackerley
Advocate
Advocate
Accepted solution

"The depth is connected to depth while the width is connected to board width"

Please clarify why you think this would be a problem?

 

I just tried this solution in the original family, it didn't work... But deleting the formula, accepting it, then rewriting it again did work.

 

I think that the Type and Instance issue is the thing...

 

As you will be aware, it is necessary to use an Instance parameter in order to have a shared family parameter be used in a formula in the host issue.

 

My suspicion is that Revit has got confused when trying to resolve these.

 

Thank you again,

 

Mark

 

0 Likes
Message 7 of 15

RDAOU
Mentor
Mentor

 In your posted Revit model it does work sometimes and sometimes not...that has nothing to do with instance and type parameters... It is breaking because you have issues with the way you have constrained the seed family (single board) in the first array family you did.

 

To a certain extent it will work as is but it will at some point snap/break unpredictably.

YOUTUBE | BIM | COMPUTATIONAL DESIGN | PARAMETRIC DESIGN | GENERATIVE DESIGN | VISUAL PROGRAMMING
If you find this reply helpful kindly hit the LIKE BUTTON and if applicable please ACCEPT AS SOLUTION


0 Likes
Message 8 of 15

Mark.Ackerley
Advocate
Advocate

That's interesting, thanks for the response... 

 

Could you elaborate?

 

Could you also clarify why it works on some types and not others, both of which have the same value?

 

Cheers,

 

Mark

0 Likes
Message 9 of 15

RDAOU
Mentor
Mentor
  • The seed family (single plank) is ok as is
  • the Balconyfloor_DeckingBoardArray
    • When you insert the plank...lock its width using the shape handles - drag and lock to the reference plane driven by the width parameter (do not use associated parameters)
    • additionally, the array is locked to the start plane but its end is floating. you need to add a ref plane and set the depth...then lock the end of the array to that plane
    • the 10mm offset between the planks if it is always 10 (set its value in the formula to grey the value out) 
  • load into the balconytest family...lock to the center planes and associate parameters 

 

YOUTUBE | BIM | COMPUTATIONAL DESIGN | PARAMETRIC DESIGN | GENERATIVE DESIGN | VISUAL PROGRAMMING
If you find this reply helpful kindly hit the LIKE BUTTON and if applicable please ACCEPT AS SOLUTION


Message 10 of 15

Mark.Ackerley
Advocate
Advocate

Hi,

 

Thanks for the suggestions....

 

"When you insert the plank...lock its width using the shape handles - drag and lock to the reference plane driven by the width parameter (do not use associated parameters)"

 

Am I misinterpreting?  Revit doesn't allow it?

 

Could you post your functioning file?

 

Cheers,

 

Mark

Misbehaving Family.gif

 

 

0 Likes
Message 11 of 15

RDAOU
Mentor
Mentor

Sorry I was out on a meeting... see the attached.

  • slight edit to the above (I kept the array "append to end" noticed you want to keep the offset between planks constant) - the other method of locking beginning and end of the array would resize the gap between planks

 

EDIT: sorry just noticed this is v.2020 I will redo with a screencast

YOUTUBE | BIM | COMPUTATIONAL DESIGN | PARAMETRIC DESIGN | GENERATIVE DESIGN | VISUAL PROGRAMMING
If you find this reply helpful kindly hit the LIKE BUTTON and if applicable please ACCEPT AS SOLUTION


Message 12 of 15

RDAOU
Mentor
Mentor
Accepted solution

Just noticed your gif...you do not have shape handles because you have associated the instance parameters of the plank to those in the Array family... unassociate the plank's depth and the width IP to see the handles

 

After you lock the handles ...lock the middle ref plane then then associate whichever parameters you still need

ar1.png

 

 

 

YOUTUBE | BIM | COMPUTATIONAL DESIGN | PARAMETRIC DESIGN | GENERATIVE DESIGN | VISUAL PROGRAMMING
If you find this reply helpful kindly hit the LIKE BUTTON and if applicable please ACCEPT AS SOLUTION


Message 13 of 15

Mark.Ackerley
Advocate
Advocate

 

Thanks for the follow up.

 

For me, that only works if I subsequently go back into the instance and reapply the instance parameters to the plank, otherwise the width does not update and I get a constraints error... 

 

Am I doing something wrong?

 

Cheers,

 

Mark

0 Likes
Message 14 of 15

RDAOU
Mentor
Mentor

@Mark.Ackerley 

It must be something not constrained properly. Here is the screencast for the full process. Sorry I didn't post it as I thought you have solved your issue and moved on.

 

 

YOUTUBE | BIM | COMPUTATIONAL DESIGN | PARAMETRIC DESIGN | GENERATIVE DESIGN | VISUAL PROGRAMMING
If you find this reply helpful kindly hit the LIKE BUTTON and if applicable please ACCEPT AS SOLUTION


Message 15 of 15

Mark.Ackerley
Advocate
Advocate

Hi,

 

Thanks, no that's fine, I have double constrained and it's working as expected.

 

Thank you again, hopefully that won't break again!

 

Cheers,

 

Mark

0 Likes