I'm building a family for a custom curved diffuser, I need this family to have the ability to toggle between multiple end cap options (end caps on both ends of the diffuser body need to turn on and off independently of each other). Ideally, this selection will be as easy as possible from the properties palette when the family is loaded into a project.
I considered building end cap geometry and assigning conditional visibility, but this approach doesn't really fully accomplish everything I want it to and I would still end up with phantom caps counting in any schedule I generate. Instead, I created a separate end cap family (called Diffuser End Cap) and duplicated that family, in the duplicate file I changed all the geometry from solids to voids (this family called Void Cap) and made no other changes. I've nested both of these cap option families into my parent diffuser body family and created parameters for both options - both caps have a family type parameter that can be set to either the Diffuser End Cap or the Void Cap. I have confirmed that I can manually change the family type parameter from option to the other with no issues, since the void family is a duplicate I have problems with constraints.
I'm hoping to control the value of these family type parameters with simpler single inputs rather than having to directly adjust both family type parameter values for each instance of the diffuser family. I tried to create an integer parameter ("End Cap Option", listed under Construction) and link the end cap family types to this integer value, this resulted in the attached error message. I then tried to make an individual yes/no parameter for both right and left caps ("Left" and "Right" respectively) and control the family type parameters conditionally based on the Left/Right Yes/No values. This resulted in the other attached error. Can anyone help me troubleshoot this? I'm fairly new to family creation, I'm not sure if family types aren't conditionally controllable, if I just have syntax errors, if the particular parameters I'm trying to use as controls simply don't have that linkability, or if there are other problems that I haven't even considered.
(also attached are the two end cap options, I want the void option to load in instead of just toggling end cap visibility by diffuser instance so that it doesn't affect any other schedules or counts)
Solved! Go to Solution.
Solved by ToanDN. Go to Solution.
- Create a shared End Cap family with geometry, add Types
- Create a shared Blank End Cap family, no geometry
- Load both in Diffuser family, place an instance of a type of End Cap family at each end of Diffuser
- Add an instance Family Type Parameter <label> for Left End Cap and one for Right End Cap
- Load Diffuser family in project and you can choose an End Cap type for each end of each Diffuser independently, choose Blank(s) if no cap(s) needed
- Create a schedule for End Caps and filter out the Blanks either by Family name or Type name
Thank you Toan! I now realize the issues with both of my methods were that I was trying to define the labeled geometry in the model with conditional formats that returned text; I assumed these text strings to be interpreted by Revit as the type names, whereas Revit was interpreting those results as parameter names that didn't exist in my family. When I added extra family type parameters that weren't linked to any geometry and instead were defined by the types I wanted to toggle between, I was able to format the labelled model geometry type parameters such that my formulas pulled in type definitions by querying the type parameters defined by the individual types. I think this is the approach you detailed here, just in different words.
Wish I'd read the errors more carefully when I first ran into this and recognized that the formulas were asking for parameters instead of values, but I appreciate your time all the same. Thank you for your advice!
For anyone else browsing with a similar problem, please note that the (4) family types parameters in the Model Properties groups in my earlier screenshots all referenced labelled geometry in the model, none of those parameters were providing static definitions of the family types independently of placed instances. This was unclear in my original query and affected the steps I had to take to reach a solution. I've attached a new screenshot to this comment that shows my current parameters dialogue; the (2) parameters in Model Properties both define parameter names by family type and the the (2) parameters in Construction both reference the actual end cap instances in my model.
Can't find what you're looking for? Ask the community or share your knowledge.