As previously discussed, Revit/Vasari has a couple kinds of splines (regular spline and spline-by-points) that you’d think they were pretty similar (but you’d be wrong). I made some tools to improve on this situation using Adaptive Components, but have refined this method. This image shows 3, 4, and 5 point spline-by-point curves inside of an adaptive component rig, superimposed on a regular control polygon spline to illustrate the divergence (There’s not much difference, but double click to take a closer look).
It uses the same methods as shown in this post but does further subdivisions of the control polygons for greater accuracy and flexibility.
A couple of things I noticed. Most significant, the tangency conditions at the start and end are very close approximations. 99 times out of 100, this should be fine. Here is an example of when it falls down:
On the left, two real b-splines drawn coming to tangency conditions. On the right, the 4 point adaptive component spline by point family.
Because the curves come together into a near tangent, but not quite, they slightly overlap. It isn’t visible even zoomed WAY in.
But the result is that you can’t create a form element from the fake b-splines, because it will create a self intersecting form, but the real b-splines can.
[Clarification: This failure is kind of hard to reproduce, it doesn’t happen for all situations even like the one shown, there is a similar geometry in the sample files, and it works perfectly. I think it has to be of a particular really huge scale. In general, you can use this to make forms just fine, as shown in this post. Here is an exaggerated view of what is happening the joint between the 2 curves at a bazillion times magnification:
Again, I have a hard time reproducing this problem, but it can be done. If you’re worried about it, experiment a little. ]
The other issue that is a bit more obscure, is the four point 4 spline doesn’t create a proper cusp when you do a crossed rectangle (shown here, a rectangle with points going 1, 3,2,4 in clockwise order) as a real bezier does. Rather, it makes a bump.