Split region

Hey,
I have 21km long corridor and it has multiple cut/fill transitions. I need on every transition to split region. Im trying to find a way but still nothing. I was thinking if it checks when if polyline is crossing surface but I cant find nodes to make it. Is there any way? Thanks!

just something that came to mind (i do think that you can you can check if a polylin crossing a surface with the geometry intersect and having geometry proxies in dynamo (polycurve for the daylight feature lines and polysurface for the eg for example) but boolean operations tend to be taxing and 21km is long. What about using a temporary volume surface ? Another way would be generating the solids between the corridor surface and the eg and then using the Solid.Separate node to get the individual solids. From there you can figure out when they start and finish to get the station to split the corridor

I really dont have any idea how to do it in Civil, but I will try and write here again if I have progress. Thanks.

I have tried now but I get that:


I have extracted corridor solid and linked it.
Ideas?

How about the following approach:

  1. Determine the slopedirection for the daylight link on every station
  2. Look at previous station and on change add station to list
  3. Split corridor by list of stations

I added a script for getting the stations to clarify the suggested solution.

Small detail: A change usually does nog occur exactly at a current station in your baseline. However same goes for the section in your corridor since the section in always at a baselinestation (I may stand corrected on this). Therefore if your corridor frequency is set to target points you schould be alright…?

Sorry for the spaghetti in the script, getting parallel sets of list and such just requires a lot of nodes.


StationsChange.dyn (45.7 KB)

1 Like

This looks like easier. I will try it ASAP and will write again. Thanks!

@geert.drijfhout I tried now and it didnt help.
Im trying to get all intersection points between these lines and mesh. Then If I have station(lenght of curve) where it occurs, I can split my corridor.
Any ideas?

Another way to find intesection point that I think its possible-to project feature line on surface and then get intersection point with main featureline but I dont know how and then how to get station…

I’m not near a computer for a few days so I’ll look into it Friday.

You would want the nearest station from every point I believe, if such a node does not exist you can try polycurve from alignment and then geometry.closestpointto.

For getting the points the geometry.intersect should work for mesh and featureline. It might be a good idea to assert the change in elevation for generated points I think

Draping it onto the surface should work too, i just dont know if you will get mid-triangle points, theoretically the intersect between mesh and featureline is never on an edge.

Good luck in the meantime

Geometry.intersect is not working for mesh and feature line for me. If I try to create PolySurface its crashing everytime.

Ah, get it now… then drape is indeed a good alternative (i would think the Surface.QuickProfileByObject node would do the trick and the of course Intersect both original and draped polycurve/featureline)

asd.dyn (44.3 KB)
If I try with simple FeatureLine-its working, its finding intersection points. But If I try with corridorFeatureLine-its not finding any intersection. In background view it looks like they are intersecting, but Dynamo is not fining anything.After that, to fin nearest station to point is it StationOffsetByPoint going to work?

@geert.drijfhout If I try to convert it to FeatureLine and then set elevation on surface-its finding intersection but when I want to get intersection points-I have error for inconsistent vertixes?
Any ideas?

@apd: In general, the approach is quite different from the initial question, not sure if this is stil the solution you want. But in reaction to your last posts:

I have similar errors and also long runtime when using the FeatureLines variants. I tried working with points only, that seems to work for me (see the file). However I’m not sure why the polycurve on surface won’t work and the basic point do, my knowledge is still too little on this area. So this is probably not a real solution but it might solve the occuring errors on the featureline for you.

After that, to fin nearest station to point is it StationOffsetByPoint going to work?

Yes, I added the nodes in the script. However I did not manage to get multiple split regions with the node without the use of Python script to loop through the splitting stations. Not sure if this is the right method but it works. Maybe someone else came across the same issue and fixed it differently.

asd_points.dyn (59.1 KB)

HI @apd
Attached example drawing

@geert.drijfhout @hosneyalaa Im trying different aproaches beacase I realised that polycurve is main reason for my problems… All curves are not joined and I dont know why(Im attaching image).


I managed to do it in another way but its not so accurate, its not getting exact point of cut/fill transition and im keep trying to make it. I did it without python script because I dont know anything about python :smiley:


FORUM.dyn (62.4 KB)
File: FORUM.dwg - Google Drive

A question @apd about cut/fill

Depending on the design profile
and natural ground

Alignment is going in the middle of profile. I need to take points where I apply cut/fill subassembly. Because of that Im making quick profile of the feature line.

corridor does not work for me because subassembly is an external file

as an idea

1- Work offset 7 meters FROM Alignment
Then CREATING PROFILE Eenter the Earth’s surface and the corridor


2 Use the node Profile.GetDynamoGeometrySideView

3- Then Geometry.IntersectAll

4 …

1 Like

I will try it. Thanks.