He hecho esto previamente contando un camino generado a partir de una colección de puntos hasta que el resultado excede el encadenamiento, invierto en uno y uso IConsructPoint para encontrar donde el punto habría caído en el segmento, a continuación, iniciar la siguiente línea desde el punto construido.
Donde esto falla es en las características de varias partes, así que asegúrese de que no existe ninguna de ellas.
Si se selecciona la línea por su id, se empieza a contar hasta llegar al encadenamiento inicial y se termina cuando se llega al encadenamiento final, se podría hacer una nueva polilínea para cada encadenamiento.
En este caso, probablemente sería mejor crear una salida utilizando la entrada como plantilla en lugar de intentar romper el original; ¡los originales rotos no pueden utilizarse para encadenamientos sucesivos!