Básicamente quieres alinear un objecto a la normal de un punto no? Pues la solución de morphi no creo que te sirva pq el cluster with center no alinea con la normal el null.
Con un Object to cluster puede que sea lo mas sencillo, creas cluster del punto, constraint del cilindro a ese cluster y activas que le afecte la normal en el PPG del constraint.
Para facilitarte la vida añade esto a un botón:
Selecciona el cilindro y ejecuta esto, después haz pick en el punto que quieras hacer match
from win32com.client import constants as c
Xsi = Application
Sel = Xsi.Selection
oObj = Sel(0)
cPick = Xsi.PickElement( c.siPointFilter, "Pick Reference Point")
iPoint = cPick.Value("PickedElement").SubComponent.ElementArray[0]
oTarget = cPick.Value("PickedElement").SubComponent.Parent3DObject
oCls = oTarget.ActivePrimitive.Geometry.AddCluster( c.siVertexCluster, "BORRAME", iPoint )
oCns = oObj.Kinematics.AddConstraint("ObjectToCluster", oCls)
oCns.Parameters("upvct_active").Value = True