Revit Architecture

Revit Architecture

Reply
Contributor
13 Posts
1 Kudo
Registered: ‎10-02-2013
Post 1 of 8
Accepted Solution

Revit family not working correctly when imported into project

1233 Views, 7 Replies
10-16-2013 01:05 PM

 

I have created a lighting fixture family. The fixture length needs to be adjustable and the fixture heads need to flip. I have the family working correctly when I flex it in the family editor but not when I import into a project. When in the project the flip parameter works fine at the height of the family when imported. After you change the height of the fixture in the project then the flip parameter gets messed up.

 

The attached PLED10 is a nested face based family - Revit 2014 Family files

 

The attached CLED 10-13 is a nested face based family with swappable fixture heads - Revit 2014 Family files

 

Any help would be appreciated.

 

Regards,

Dion

I see that the fixture is hosted by a reference plane, and rotates with an angular dimension. Although it seems to work in the family editor, this will fail sooner or later in the project, as you have alreday seen. The recommended method for generic families is to host the work-plane fixture on a reference line that has its startpoint constrained at the intersection of two reference planes and has its rotation controlled by an angular dimension. Once the rotation is controlled, you set the angle to zero, and place the fixture on the reference line, by using "edit work plane" on the fixture.

 

There is another issue in the family, which is that extrusion in between the two fixtures. That extrusion is not responding correctly to changes in the length of the arm or the rotation of the fixtures.


diona.roland wrote:

"if( Length < 6", 6", if (Length > 6", 12", if (Length > 12", 18", if (Length >18", 24", if (Length > 24", 30", if (Length > 30", 34"))))))"


This formula is flawed. The way it is currently written (in addition to requiring a final default as per Alfredo's advice), if Length is anything greater than 6", a result of 12" will be returned. Because of this, the other expressions such as " if(Length>12",18",... " will never be checked because the first step was deemed True. Reverse the order of progression for the conditional statements; go from longest to shortest.

 

Edit: Revise your formula to...

 

if (Length > 30", 34", if (Length > 24", 30", if (Length >18", 24", if (Length > 12", 18", if (Length > 6", 12", 6")))))

 

You can omit the if(Length<6" condition because that will be accounted for by process of elimination, so place that 6" value at the end as your "default" for when none of the statements are True.

*Expert Elite*
2,889 Posts
363 Kudos
Registered: ‎06-11-2009
Post 2 of 8

Re: Revit family not working correctly when imported into project

10-16-2013 07:05 PM in reply to: diona.roland

I see that the fixture is hosted by a reference plane, and rotates with an angular dimension. Although it seems to work in the family editor, this will fail sooner or later in the project, as you have alreday seen. The recommended method for generic families is to host the work-plane fixture on a reference line that has its startpoint constrained at the intersection of two reference planes and has its rotation controlled by an angular dimension. Once the rotation is controlled, you set the angle to zero, and place the fixture on the reference line, by using "edit work plane" on the fixture.

 

There is another issue in the family, which is that extrusion in between the two fixtures. That extrusion is not responding correctly to changes in the length of the arm or the rotation of the fixtures.

-----------------------------------------------------------------------------------------------------------------
Planta1 Revit Online Consulting | info@planta1.com | my Twitter | The Planta1 Blog
Contributor
13 Posts
1 Kudo
Registered: ‎10-02-2013
Post 3 of 8

Re: Revit family not working correctly when imported into project

10-17-2013 06:25 AM in reply to: diona.roland

Thanks for the help. When I try the reference line method, the line does not show up as an option under the set work plane window. Is this because the fixture family I am importing is face base and not work plane based?

 

Contributor
13 Posts
1 Kudo
Registered: ‎10-02-2013
Post 4 of 8

Re: Revit family not working correctly when imported into project

10-17-2013 06:46 AM in reply to: diona.roland

Oh wait! I think i got it. I have to choose the reference line in 3D view. I think i got it to work. If i did i will repost the family. Alfredo you are the man!

Contributor
13 Posts
1 Kudo
Registered: ‎10-02-2013
Post 5 of 8

Re: Revit family not working correctly when imported into project

10-17-2013 11:12 AM in reply to: diona.roland

I have attached the file were the fixture rotation works. I am trying to get the Length parameter to adjust to specify length 6",12",18",24",30",36". I have written this formula (see below) but keep getting an error bad if statement format. Am I missing a comma or something?

 

if( Length < 6", 6", if (Length > 6", 12", if (Length > 12", 18", if (Length >18", 24", if (Length > 24", 30", if (Length > 30", 34"))))))

*Expert Elite*
2,889 Posts
363 Kudos
Registered: ‎06-11-2009
Post 6 of 8

Re: Revit family not working correctly when imported into project

10-17-2013 12:13 PM in reply to: diona.roland

You are missing a default value, at the end, after the number 34. Yyou need a comma and a default value before the closing parenthesis. That is the final "otherwise, use this" value for the last IF statement.

-----------------------------------------------------------------------------------------------------------------
Planta1 Revit Online Consulting | info@planta1.com | my Twitter | The Planta1 Blog
*Expert Elite*
3,502 Posts
1,007 Kudos
Registered: ‎08-28-2009
Post 7 of 8

Re: Revit family not working correctly when imported into project

10-17-2013 12:24 PM in reply to: diona.roland

diona.roland wrote:

"if( Length < 6", 6", if (Length > 6", 12", if (Length > 12", 18", if (Length >18", 24", if (Length > 24", 30", if (Length > 30", 34"))))))"


This formula is flawed. The way it is currently written (in addition to requiring a final default as per Alfredo's advice), if Length is anything greater than 6", a result of 12" will be returned. Because of this, the other expressions such as " if(Length>12",18",... " will never be checked because the first step was deemed True. Reverse the order of progression for the conditional statements; go from longest to shortest.

 

Edit: Revise your formula to...

 

if (Length > 30", 34", if (Length > 24", 30", if (Length >18", 24", if (Length > 12", 18", if (Length > 6", 12", 6")))))

 

You can omit the if(Length<6" condition because that will be accounted for by process of elimination, so place that 6" value at the end as your "default" for when none of the statements are True.

Corey D.                                                                                                                  ADSK_Logo_EE_2013.png    AutoCAD 2014 User  Revit 2014 User
──────────────────────────────────────────────────────────────────────
⁞|⁞ Please use Mark Solutions!.Accept as Solution and Give Kudos!Give Kudos as appropriate to further enhance these forums. Thank you!
Contributor
13 Posts
1 Kudo
Registered: ‎10-02-2013
Post 8 of 8

Re: Revit family not working correctly when imported into project

10-17-2013 12:58 PM in reply to: CADastrophe

Thank you guys. After I made the corrections that Alfredo suggested I did run into the model only flexing the 6" and 12" in the formula. After reversing the order of progression it works now.

 

Thanks again Alfredo and Corey.

 

This is my first leap into formulas. This will help my future attempts a lot.

 

I have attached the fixture for all to use.

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Announcements
Are you interested in helping shape the future of the Autodesk Community? To participate in this brief usability study, please click here. Your time and input is greatly appreciated!