Polycurve of cable tray and fitting

Hi,
Is it possible to get all points of a cable tray by selection with tab tab (CableTray and cable tray fitting) with correct endpoint and startpoint like a polycurve
Because when i try to do this some point are inverted.

to get lines:

lstDS_Geo = [] 
for e in lstElemNetWork:
    if isinstance(e.Location, LocationCurve):
        rvtCurve = e.Location.Curve
        lstDS_Geo.append(rvtCurve.ToProtoType())
    else:
        lstLines = []
        locPt = e.Location.Point
        connSet = e.MEPModel.ConnectorManager.Connectors
        lstConn = list(connSet)
        if connSet.Size == 1:
            lstDS_Geo.append(None)
        elif connSet.Size == 2:
            try:
                line = DB.Line.CreateBound(lstConn[0].Origin, lstConn[1].Origin)
                lstDS_Geo.append(line.ToProtoType())
            except:  
                # Unable to create Line. Points are likely coincident
                pline = DB.PolyLine.Create(List[XYZ]([lstConn[0].Origin, locPt, lstConn[1].Origin]))
                lstDS_Geo.append(pline.ToProtoType())
        elif connSet.Size == 3 and [con for con in connSet if con.Domain != Domain.DomainElectrical].Count == 2:
            lstConn2=[con for con in connSet if con.Domain != Domain.DomainElectrical]
            line = DB.Line.CreateBound(lstConn2[0].Origin, lstConn2[1].Origin)
            lstDS_Geo.append(line.ToProtoType())		
        else:
            for con in connSet:
                #doc.Application.ShortCurveTolerance :
                if locPt.DistanceTo(con.Origin) > 0.00256026455729167 and con.Domain != Domain.DomainElectrical:
                    line = DB.Line.CreateBound(locPt, con.Origin)
                    lstLines.append(line.ToProtoType())
            lstDS_Geo.append(lstLines)

For selection :

import clr

clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
uidoc = uiapp.ActiveUIDocument

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)

ueWrapper = None
wrappers = clr.GetClrType(Revit.Elements.ElementWrapper).GetMethods()
for w in wrappers:
	if w.ToString().startswith("Revit.Elements.UnknownElement"):
		ueWrapper = w
		break
		
out = []
selectElemId = uidoc.Selection.GetElementIds()
selectElem = [doc.GetElement(xId) for xId in selectElemId]

for i in selectElem:
	try:
		check = Revit.Elements.ElementWrapper.Wrap(i, True)
	except: check = None

	if check is None:
		out.append(ueWrapper.Invoke(None, (i, False)))
	else:
		out.append(i) 

OUT = out, selectElemId

Daniel OLIVES