I am trying to cut a number of lines into segments where they intersect curves. The breps are close together and I need short segments between these curves. These represent a connection in our analysis model. The curve closest point is only reporting one of the intersections, but I need 2. Suggestions?
Thank you.
precast-test-FORUM.gh (51.3 KB)
Seems fine to me.
I suppose, however, that this is what you are looking for:
precast-test-FORUM_volker.gh (57.4 KB)
I should have known there was a region tool to complete the task more efficiently. I also learned the difference now between region and regions. 
Thank you very much.
I was testing some different cases, and I see when I add a line that is on top of the region, the trim with regions removes the segments at that level. If you do not mind, what would be the most efficient component to correct this?

precast-test-FORUM.gh (58.6 KB)
There is no single component for this. This is alot of work.
Thank you again. I will work on it.
I had some time to look at the problem today. You already marked a solution, so I don’t know if you already figured it out for yourself. Anyhow, this is one way of getting it done:
precast-test-FORUM_volker2.gh (89.9 KB)
I struggled after managing to get a boolean mask for the lines segments of the panel perimeters that lie on the horizontal reference lines. Ideally, I could have unioned the domain of these line segments and then subtracted them from the domain of the horizontal lines, but no native components for boolean operations on domains exist within Grasshopper, so in the end I created geometry (circles) with which to trim the horizontal lines.
The tree structure creation for the region input of Trim with Regions is also somewhat sketch. I don’t know how something like that is normally done; @aleinno is a much more talented scripter in that regard. Maybe he has some pointers there.
I did come up with a solution. I split the list of elements and calculated the distance between the top split line and the top node. Then I used a move component to copy the additional elements. This is helpful since I can provide a list of indicies to move. There will be cases where not all elements need to move, so it should work if my annotations remind me what I did now. I should have mentioned my solution before. I will review your coding and that will help me understand more coding.
Thanks again.