Hey Ferdinand, thanks for the detailed response.
Allow me to expand even further and try to explain some of the issues I have run into. My plugin/tool basically works at the moment via a start point and an end point that sit on the same loop. LIke this image:

What the plugin does is it looks at the joint weights for one point(designated as the start point) and the weights for the other point(designated as the end point). Then, it gets all the other in between points on the loop path and in order.

Then the plugin does an interpolation of the joint weights from the start to end, and interpolates all those in between point's joint weights. That all works fine and I have a function to get those points based off that joint selection, so no issues there.
From a workflow standpoint, this is fine, but it's slow because I have to go loop by loop manually selecting my start and end points, and go loop by loop. So my idea(based off a maya tool used at work) is to be able to select those loops myself with edges, and have it run the interpolation on all the loops at once(well, at once as far as clicking apply once and it does each loop for you).
The issues I am running into is that it seems like working with edge selections is very cumbersome in Cinema. There is op.GetEdgeS() which will return me a BaseSelect, but I cannot properly query whether or not an edge is selected. Edges dont seem to have their own unique id to where I could do something and say like, "Go select Edge 23 and do something with it". The edge seems to be derived from a polygon's info to be either 0-3 for a given polygon.
I don't know I just am having a hard time wrapping my head around these concepts in Cinema. Is it possible to pass in an edge ID and work with edge ID's or do you have to go through the polygon info and all of that to get them? Like if I could store a list of selected edge ID's(in theory op.GetEdgeS() should do this for me, right?) I could in theory just start with one, then walk through the mesh via growing the selection and appending only edges found in the original selection, then deselecting all the rest. This should in theory allow me to grow along the path and organize them by loop and then I could do things like you said convert them to loops later
