Retailers, when doing space planning, typically want to be able to arrange shelves on display units and then schedule how many shelves there are. Suppose there are 40 possible shelves (20 on each side), then creating families for each permutation will result in 240 = 1.09951 x 1012 families that have to be created to cover each option. Clearly not a viable possibility.
The following procedure is a work-around for this situation.
First a shelf family is created and a shared instance parameter.
This parameter is then mapped to the visibility parameter of the shelf geometry.
This shelf family is then nested (shared) into the host family (display unit). This is done by setting its shared parameter to true.
Next family instance parameters (in the host) for visibility is created for each instance of the shelf family. For 40 shelves there would be 40 parameters, but only 10 are shown in this example.
These host instance parameters are then mapped to the relevant shelves respectively through their instance geometry visibility parameter.
Once this family is loaded into a project, the shelves may be switched on and off through their (display unit) instance parameters.
There will be 40 of them, but this is a lot less than the 240 permutations that may otherwise be required. Since the shelf family was shared into the display unit host family, they may be scheduled and filtered or arranges as per their shared instance parameters.
Following the above process allows the retailer to switch shelves on and off as required, and to gain an understanding as to how many shelves are required. While shelves within the display unit may be selected by tabbing to them, once selected their instance properties are not accessible. Only by mapping their instance parameters to host family instance parameters can they be controlled with a project.