In designing curved surfaces, oftentimes it is not necessary that your panel be entirely planar, but rather planar within a tolerance. In the past, there were ways to do this with the API, but by using reporting parameters in conjunction with the adaptive component functionality, you can make a panel that will tell you how out of plan it is without any coding. In the above image, red is really out of plane, blue is pretty flat.
You need an adaptive component because you can only drive formulas with reporting parameters based on host references (otherwise you have a reporting parameter that can be used for scheduling, but not driving formulas). In a curtain panel by pattern template, the only applicable relationships are the built in points that come with the pattern, and for this application we need to measure something off the surface. Adaptive Point families, on the other hand, have as many host references as you want!
So, back to the conceptual level, first you need to have an element that can detect how far out of plane it is, and then repeat it along the surface.
With the above image you have a five point adaptive component, the little tail has a reporting parameter that controls the visibility of 5 different co-located colored surfaces, different increments of the reporting parameter allow different colors to be visible. So, if you pull the tail longer in the host file, the color of the component changes.
I figure there is a better way to do the coloration part, but I haven’t got it yet. It’s also tricky finding the right way to build a reporting parameter in the adaptive component family such that it relies on “host” references. The main thing to watch for is that you are dimensioning to the adaptive point itself and not the point’s Workplane.
Now load this 5 point adaptive component into a curtain panel by pattern family. You need to construct a three point surface that defines the plane of the panel (see this post on the Invisible 3 Point Workplane Hack), and create a measure by which it goes out of plane. This requires projecting the plane to an intersection point offset from the fourth point of the panel.
Now you have your 5 host points for your adaptive component. (In fact, if you are only interested in scheduling panel deformation and not getting visual feedback, this curtain panel design will be enough to achieve that, just slap a reporting parameter to the 5th point that is derived by intersection.)
Place the adaptive component as shown below.
Load the panels into a freeform surface, and shazaam!
There are probably some sizable gaps in the above description, but here is the file for your dissection.