In Revit 2011 we (finally) have something that I've been hoping for since I started in on the whole BIM thing. With the exception of things like old style curtain panels and beams, you could never get a placed family to tell you anything about the context that it was placed in. Lots of work has been done in the API with users trying to get doors and windows to "know" how thick the walls are that they are hosted in, and curtain panels have had this power, as long as they were flat, four sided and had all right angle corners. But now, we have the "reporting parameter", which is a labeled dimension that simply tells you what it is. "Hi, in the family editor I was hosted in a 8" wall, but over here in the project you placed me in a 6" wall, and over here I'm in a 12" wall. I'm good, schedule me, please".
But then, if you make your reporting parameter to "host" geometry (a concept I still have a shaky grasp of, loosely, geometry that was baked into the family before you got there) you can use that dimension to drive formulas. So, now your door family can not only tell you how thick the wall is that it is hosted in, it can adjust itself accordingly. "I'm in a 12" wall, so I'm going to be a six panel door instead of 2" or whatever.
So in these two videos, I'm going to show how to apply reporting parameters to a curtain panel by pattern and use that information to schedule and drive geometry. The first is simple length dimensioning, the second is slightly more complex, dealing with angular measurement.