beam = selection[0]
sweptProfile = beam.GetSweptProfile()
derivatives = sweptProfile.GetDrivingCurve().ComputeDerivatives(0.5, True)
plane = Plane.CreateByNormalAndOrigin(derivatives.BasisX.Normalize(), derivatives.Origin)
transform = Transform.Identity
transform.Origin = plane.Origin
transform.BasisX = plane.XVec
transform.BasisY = plane.YVec
transform.BasisZ = plane.Normal
profile = sweptProfile.GetSweptProfile()
tx = Transaction(doc, "swept profile")
tx.Start()
sketchPlane = SketchPlane.Create(doc, plane)
for curve in profile.Curves:
transformedCurve = curve.CreateTransformed(transform)
doc.Create.NewModelCurve(transformedCurve, sketchPlane)
tx.Commit()