Actually, some of the scripts did use script links in the python challenges (I know at least one of mine did).
I’m thinking python may be overkill for what your doing though, since script links, unfortunately are not what I’d like them to be, since they do not store the previous state of meshes (since that would be highly memory intensive), meaning that when you have a script linked to the change frame action, it will advance the animation by one frame whether you go forward or back. This means no “rewind” of course, which is a horrible workflow for real animators. The other option is to generate IPOs, of course, but depending on the number of objects, this can get a little heavy on memory and CPU as well.
For things like pistons, its probably best and more efficient to actually use the armature and constraint system already in place, rather than trying to reinvent the wheel, unless there is some behavior of pistons you need that cannot easily be achieved via armatures and clever animation.
Ok…Sorry…Reread your post (all that’s above is still valid stuff to consider as you get more and more advanced, though)…
As far as parametrically modelling a hydraulic cylinder (which I will continue to call a piston for ease of use), it shouldn’t be too hard unless you are looking for some wacky shape. I assume you pretty much mean a couple of cylinders modelled in different parts, which should be relatively easy.
Attaching empties should be relatively trivial as well, once you know the API.