After spending some time trying to make a workable, geometrically driven random reactor, I decided that it was far easier to use dp Stuff Randomizer (get 2014 version for free from here or older 2013 one on Exchange here).  This is a great little addin that just drives random instance number parameters into family instances.  You pick the parameter to drive, give it a max and min “bracket”, click Add and then Randomize.

I set up an Adaptive tree family that used the scaling method, linked through some parameters, Repeated it on a Divided Surface, and then used Randomizer – this random forest is so easy 🙂  With the scaling method working, we can even just drop some imported Sketchup trees into the most deeply nested family (the one that gets scaled), reload it through the hosts back to the project, and even these imported CAD files will scale correctly.

This is the simple tree randomizer (height only):

Next, I added an X and Y offset so I could randomize the position from the grid slightly, resulting in this…

Tree randomizer with move parameter:

Here are the sample files for download.  Enjoy!

(this is the Sketchup tree that I used for the example above)

Dave Light gives the very concise version:
So as others have shown, I have various nested generic model families, dropped them into a plant family template. This family is then nested into another plant family. This is then placed into a project. Using the height parameter in the family, changing this, scales the family.
via
Revit : Scaling families – #empirebim

In brilliant form, he then describes how you can use an instance reporting parameter in a Curtain Wall Panel family to drive the Height value in a nested Planting family, making a Curtain Panel that can scale its nested geometry to any panel size.

To save you some time and trouble, I have created a template for this scenario.  Basically, it is a Revit project file that contains the Curtain Wall Panel family with the fully nested setup already in place.  I also added a Scale Override type parameter in the Curtain Panel family that allows you to globally adjust the scale of the resident geometry.

Download the project and family files here
(the project RVT is Family Scaling Template – GM to Planting to Planting to Curtain Wall Panel.rvt)

Note:  using a shared Generic Model family will not work (it breaks the automatic scaling ability of Planting families)

EDIT:
Looks like original credit actually goes to Kelvin Tam.

Original credit for this general idea goes to Marcello (I think), and partly to Dave.  It is definitely one of those hacks that is getting re-interpreted and expanded upon as it gets blogged and reblogged…