basically create a mesh with the tools in grasshopper or via c# / phyton.
this will become the later control-polygon for the subd.
then converting vom mesh to subd is easy. (see screeenshot above)
if you need creases and corners, there is also a
SubD from Mesh component