Hi DEDE2286,
to answer your "only 1" question:
Are there any restrictions on the use of the APIs for generating parametric objects.
Yes, but not every one is well documented.
E.g. when creating an Extrusion, there is a minimum ratio of thickness to the size of the input curves.
You cannot create one if it would be too flat.
Other restrictions must be evaluated by brute force:
http://thebuildingcoder.typepad.com/blog/2014/05/directshape-performance-and-minimum-size.html
And so on...
eg.
can I use CSG (Void).
Yes, you can. There is a BooleanOperationUtils class for use in both project and family context.
is the number of primitives or the parameter limited
Don't know, but I think you can add an unlimited number of parameters, especially those which just store geometry independent information, pieces of text, YesNo parameters,...
Have in mind that all of them will be displayed in the properties palette (forcing the user to scroll, scroll,...).
Also, if there are too many parameters to drive the geometry, it may result in constraints errors, dependig on the values you set.
If doing manually, the creator usually "flexes" a Family, testing several value ranges, observing the Family's behaviour.
The more complex, the more possible constraints errors.
Note that API just mimics what the user does.
Are there any examples to the API
In the SDK, there is a folder named "FamilyCreation".
Revitalizer