I’m currently working on a Dynamo script that fills parameters for multiple instances of families en masse. Generally, I’m handling parameters such as text and numerical values without any issues. However, I’m encountering a problem with parameters of the FamilyType.
These FamilyType parameters influence the geometry, such as determining whether a cantilever is on the left, right, or centered. Although the script correctly fills these parameters, the family in Revit does not update automatically. When I manually click on the family and reselect the same option from the dropdown list of the parameter, the family updates as expected.
I need assistance to ensure that I don’t have to manually “re-click” the correct values each time. Maybe some sneaky Python could re-enter those values again, so this would force the family geometry to change?
I’ve attached an RVT file (2022) where this issue can be replicated.
What’s interesting, the parameters are filled out correctly, as in Left, Right, Left Right, etc.
The value is correct, but the model is “frozen”, as if - the geometry didn’t get the memo, and stayed as the default “center” position.
Could also try the Elements.SetParameterByNameTypeOrInstance node from the Rhythm package.
I’ve had issues in the past setting instance parameters with the OOTB node so I just stick with that one now.
Unfortunately - none of the solutions worked. I’m attaching the finished RVT file, the parameter we’re talking about is “Side”. RevitTest_2.rvt (7.5 MB)
Can you show us what you tried and any errors you may have gotten? It would be helpful to see the full graph as well. My view updates when I change a FamilyType parameter through Dynamo. My guess is that the element you’re providing is somehow invalid.
Thanks for the advice! It turns out that the issue was because I wasn’t referencing the NestedFamilyTypeReference, but instead was directly referencing the families in the file, which caused the model not to respond. The link you provided helped me fix it. I ended up writing the appropriate code in Python, though I find it a bit surprising that such a useful feature has such a high “entry barrier” – requiring Python to implement it.