Here is one idea that I have developed based on one of the methods that Marcello used to scale classical column families:
Marcello Sgambelluri - Scaling Classical Order of Columns
Scale By SplineThis concept has also been explored by others, notably
Andy Milburn - Spline Sailing
but I first need to describe the concept here.
A spline can be scaled just by dragging one of its end points. To control this within a scaleable Revit family, you need to lock or attach the end points of the spline to something that you can dimension. Although you can dimension the end points directly, it is better to use something like a reference plane. Here is a simple rig to demonstrate this process:
The offset reference plane and parameter are required in order to control the location of the spline.
Once the rig is set up, draw a spline between the two top reference plane intersections
Use the align tool to lock the ends to the reference planes, in both directions (4 locks required)
Change the width parameter to check that the spline is locked to the vertical reference planes and that it scales properly.
This example establishes the principle of being able to control scaling and location of splines using reference planes. The spline end points do not need to be orthogonal to each other - they can also be at an angle.
Revit Scaleable Spline Tree FamilyWe can now apply this principle to multiple splines linked to each other, to create a simple tree family. This example is proof of concept, and is only done in 2D, but it could be applied to 3D trees.
First make a rig of reference planes that are controlled by parameters
Lock the ends of the splines to the intersections using the Align tool (and then padlock)
No doubt there will be people who say that this is not practicable, or that the trees look terrible - but this is only a proof of concept. I'm hoping that it will give more ideas to others who can run with the concept and create wonderful flexible tree families.