Announcement

Collapse
No announcement yet.

Yes/No Instance Param's with conditional statements to control nested family type's

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Yes/No Instance Param's with conditional statements to control nested family type's

    Hi all,

    I have a family which I have created a number of instance yes/no parameters that are to be used to control the type of a nested generic annotation family. This nested family contains multiple types with a type parameter that changes the value of the label whenever the type is changed. The instance parameters in the parent family would ideally work if you selected one, the rest of the tick boxes greyed out and became unselectable until the original was unticked however I have not yet discovered a way to do this. What I have done is used not(or( conditional statements (learned from the Formula's Megathread on here) which at least lets only 1 value be true at a time even though other tick boxes can still be selected after. Where I am currently stuck is how can I switch the type of the nested annotation family whenever a specific tickbox in the parent family is ticked? I know how link parameters through to the nested family. I think I need another parameter that uses a complex statement to check which of the instance parameters is currently true and then use it to somehow change the nested family type (or alternatively change the value of label in the parent family if that's a simpler method) but I lack the knowledge and understanding of forming complex conditional statements at this stage in my Revit career.

    I'd appreciate if anyone could provide some guidance to help me fill in the missing gaps

    Thanks
    BLothian
    Senior Member
    Last edited by BLothian; May 6, 2014, 12:34 PM.

    #2
    Unfortunately Revit currently only allows checkboxes to be controlled by formulas OR by the user. There are a couple of work-arounds. I use an integer parameter (with each yes/no tied to one or more integers) paired with a text parameter that informs the user of their choice. There is also a method where you use a dummy family to create the dropdown, which is shown here.

    Could you perhaps add some pictures of the parameters you are trying to link? It's hard to visualize what you want the family to do exactly, and how the nested families are structured.
    Julie Kidder
    Architect + BIM Director
    Hartman + Majewski Design Group

    Comment


      #3
      I think I understand what you're getting at. I've attached a family that has Family Type parameters indirectly driven by Yes/No parameters. Here's a breakdown of the setup:

      Select Type 1 Param = Yes/No (user input)
      Family Type 1 Param = Family Type 1 (set this value and leave it)
      Family Type 2 Param = Family Type 2 (set this value and leave it)
      Family Type Selector Param = if(Select Type 1 Param, Family Type 1 Param, Family Type 2 Param)

      Because you can't evaluate the value of a Family Type parameter in a formula, you need other parameters to exist with those values. Evaluate those other parameters, and you get the same effect as long as their values remain unchanged. Obviously, this isn't a perfect solution; the family can get cluttered with parameters that are only there for evaluating, and there's no way to lock the values in. If there's a parameter value that I want to be constant across all types, I'll put that value in as a formula. If we could lock in these values that way, we wouldn't need the parameters to begin with.

      Hopefully I understood what you're looking for. Let me know if you have questions.
      Attached Files
      Owen Drafting Technologies
      Kyle Owen - Owner

      Comment


        #4
        The family I'm working on is a stamp nested into a title sheet family that I want let users to be able to set from a preset list of sheet status options whilst in a sheet view. I have followed Steve Stafford's example found in the link in JMK's response above however my situation is slightly different in that I do not have multiples types of geometry that I need to control the visibility of, I merely want to change the type of a deeply nested label. I will do my best to explain how I have put it together so far.

        Starting at the deepest level:
        • Sheet_Status_Child_RFA.png SheetStatus_Child.RFA - This is a generic annotation family that contains a single label. The label is controlled by a type parameter in the family called SheetStatus. There are 9 types in the family for the 9 different Sheet Status conditions that I wish to use. In Steve Stafford's example this equates to his dummy family whereas in this case it actually contains working data. This is then nested into...


        • Sheet_Status_Parent_RFA.png SheetStatus_Parent.RFA - Again another generic annotation family that contains all the Family Type Parameters. I've added the yes/no parameters but I don't think they are needed in this case as I'm not needing to hide anything as per other examples. This is then nested into..


        • Title_Block.RFA - The nested family is positioned and displays the value of the first type that was created in Sheet_Status_Child.RFA .


        If I load this into a test project, create a sheet a select the title block, there is no option to set the Sheet status. If I tab select the stamp and edit type parameters I get some strange things happening within the Edit type dialog.

        TitleBlockStampEditTypeDialog.PNG
        As you can see above It shows Family: SheetStatus_Child Type: Preliminary(one of the 9 status choices) and parameter SheetStatus is set to preliminary (both are greyed out). It seems like I am actually editing SheetStatus_Child.RFA as I if change the pulldown in the parameter SheetStatus to another type, the original value preliminary is never visible again and, even worse I can replace the string with anything I type instead.

        What I want is to select the title-block only (not have to tab-select the stamp) use a pulldown to choose the status and have the label change whilst not allowing the status to be edited by typing over when the parameter is selected. As I said, I've not created a family using this nesting with family types so I'm unsure what I need to do get it to work as described from the stage its currently at.

        Thanks
        BLothian
        Senior Member
        Last edited by BLothian; May 7, 2014, 11:19 AM.

        Comment


          #5
          What is the purpose/benefit of the double nesting? We have a drop down for our status/stamp on our title blocks, and it chooses a shared generic annotation to display on the titleblock.

          Status.PNG
          Julie Kidder
          Architect + BIM Director
          Hartman + Majewski Design Group

          Comment


            #6
            Sounds just like what I'm trying to make. The reason I did the double nesting is that is how the example family comprised, not because I felt it was better. I take it that I should be keeping the label in a single nested family, are you family type parameters created in the same family or are they in the title block?

            Comment


              #7
              The "Not for Construction", etc tags are just shared family generic annotations, with the center in the same place. They have no parameters. The title block has one of those families labeled with the parameter that gives users a choice. Any shared, generic annotations loaded into the titleblock or project appear as options.

              Title label.PNG
              Julie Kidder
              Architect + BIM Director
              Hartman + Majewski Design Group

              Comment


                #8
                JMK,

                Thanks for the clarification, I've managed to get it working using the original child family and doing multiple save-as and only retaining 1 type per stage leaving 9 shared generic annotations. I could have just started with a clean generic annotation but I had already done some of the typing anyway so thought I'd go this route. One thing I am wondering, my labels use a certain text size however I would like to be able to use the same families within other title blocks for small page sizes but the text size of these currently are too large and need to be smaller. Can I stick with my original 9 nested nested generic annotations and change the text size (by accessing the text styles with the generic annotation families) whilst it is nested into the title block or do I have to duplicate the labels and select a smaller text size for the smaller size stamps?

                Thanks

                Comment


                  #9
                  You can create instance parameters within the family that have visibility controls the other text size (use visibility controls) and tab into change it, connect the parameters to the titleblock (if they are all named the same in each family) or create a separate family type for small text select that type in the drop down (it would look like "Not for Construction: small") There isn't a way to directly link text types to a parameter that is editable outside the family it is created in.

                  Since I assume you want to change to small text across many sheets at once I'd experiment with the latter options.
                  Julie Kidder
                  Architect + BIM Director
                  Hartman + Majewski Design Group

                  Comment

                  Related Topics

                  Collapse

                  Working...
                  X