We have a curtain wall design that has six different panel designs that will be randomly placed throughout a curtain wall. So I basically copy ally panel types to all locations in the wall, then randomize which one is visible in each location.
I have a "Master" helper with a CA containing properties for the panels' common properties; height, width, depth, flange/frame width etc. It also has a button that randomizes the panel types in the whole system.
Then I parent 6 different panel types to a dummy with a CA that holds a 'PanelType' ListBox parameter. Each of the 6 panels has an expression controller in the visibility track to test if it is the proper panel type. i.e. if(PanelType = 2, 1, 0). As long as this Attribute holder is unique, I can randomize it's value for each set of three panels.
I then create copies of the panel set and link each of the panel set dummies to each other sequentially. I do this because I control the panel position in parent space. There is probably a better way to do this but this keeps it clear in my head: each panel is always a panel width away from its parent. (or panelWidth + panelFlange) etc.
If anyone has followed me so far, I have a couple general questions.
1. Can I change the .isHidden property of an object based on the CA of its parent and then have that relationship stick after cloning the total hierarchy?
2. How do I clone the panel set and dummy parent while instancing the baseobjects but copying the dummy parent? I would like each panel type, 1-6, to be instanced, but I want the Visibility Track and therefore the parent to remain unique on each set.
3. Is there a completely better way to do this?!!
The file attached is 2010. This is an example of what I'm doing. It is not representative of the full system. I can't share the whole thing with design and all.