Optimize Linestrings Command

D_OptimizeLinestrings_64 Optimize Linestrings Command

Command Licensing and Default Menu Location

  • The Optimize Linestrings command is part of the RPS Modeling Toolbox
  • The command is located on the Modeling macros menu ribbon
  • The command is located in the Corridor menu group

Command Description

Converts chorded linework into optimized curvilinear linestrings in both horizontal and vertical components for use in stringless paving and to improve 3D models for corridors and site projects. Optionally adds in lead in and exit lines for stringless paver navigation

*** ## Command Interface Description

The Optimize Linestrings command dialog looks as follows

Select the linestrings that you wish to optimize. Select Options if you wish to select lines using advanced selection methods like Select by Layer, Advanced Select, Select Similar. Select by Elevation etc.

The report area displays the results of the optimization on execution - see later in help document

The Optimization Process

The optimization process allows you to optimize the selected lines either horizontally, vertically or both. If both horizontal and vertical optimizations are selected, the horizontal optimization is run first and the vertical optimization second in all cases.

Horizontal Optimization:
In the horizontal optimization process, the command fits arc curve geometry to chorded line geometry. The processor looks at sequences of points to determine which points lie on curved sections of a line vs straight sections of a line, determines where the start and end points of the elements are likely to be and then derives arcs of computed radii that best fit the source line within the defined offset tolerance.

The process will significantly reduce the number of nodes in the resulting lines and should replicate the designers intent.

The results will however depend heavily on the source data and how it was created, and how well the chorded lines reflect the original CAD linework in terms of where tangent points etc. are present / absent. It will also depend on how many points exist on the chorded curve sections of the source lines as to whether or not an arc can be computed.

Where the source lines were generated along a corridor model, the source alignment may have included arcs, straights and spirals. Offset lines from a spiral cannot be a spiral, so the optimizer will fit a series of decreasing or increasing radius arcs to create a curvilinear line.

Vertical Optimization:
In the vertical optimization process, the command will fit small vertical curves to chorded profile geometry where the break angle between the inbound and outbound slopes of two adjacent segments exceed a specified break angle.

The optimizer also looks at the shape of the horizontal geometry to find angular breaks greater than a specified angle and will not create a vertical curve at sharp breaks in the horizontal geometry. This process step is designed to prohibit the creation of vertical curves at corners of parking lot islands e.g. at the rear of a parking bay, where the parking bay slope meets the long slope of the parking lot at which point you would expect a sharp transition in slope.

The optimizer will also strip out vertical controls on long sloping sections of lines where the additional vertical nodes do not alter the shape of the profile.

The vertical optimization tolerance controls include a minimum angle (slop break) below which a vertical curve will not be inserted, a maximum offset to limit the deviation of the new vertical curve from the elevation of the VPI point at which it is being placed and a maximum length to prohibit the creation of long vertical curves from being created.

If you do find examples of lines that do not work, please email them to us at info@rockpilesolutions.com so we can further enhance this optimization process to cover more variants of data.

Reporting tolerance:
The reporting tolerance allows you to define a minimum value for the reporting process that is lower than the tolerances defined below, this way you can determine the actual offsets for all nodes along the line that are greater than the reporting tolerance vs those that fail to meet the horizontal or vertical tolerances defined above.

Report mid points checkbox:
As an additional check, for each segment of the optimized line, you can optionally elect to report the mid point of the segment against the source line as well - this allows you to check for gross differences that may occur if the system fits a bulge curve where it should have fitted a straight line for example. Note that the mid point locations will very often be greater offset than the input tolerances (especially on curved sections of the lines) because the tolerances only apply at the node points of the source lines for the optimization.

Optimize horizontal checkbox:
Check this checkbox if you wish to optimize the horizontal geometry of the selected lines.

Maximum offset:
Enter the maximum offset that you will allow the optimized linestrings to deviate from the source line nodes. The larger the value you enter here, the smoother the geometry will be, but the looser it will fit to the source line nodes. The tighter the tolerance the greater the number of elements that may be required to fit the source line nodes, but the closer the optimized line will fit the source data.

Note: CAD or LandXML type linework can typically be fitted with a tight tolerance of e.g. 0.01’ (0.003m) whereas PDF extracted linework may need a looser tolerance of e.g. 0.05’ (0.015m) or 0.1’ (0.030m). Each data set will be different, so you may need to try a tight tolerance first and if it produces undesirable results try again with a slightly looser tolerance until you find the appropriate setting for the data that you are working with.

Maximum Radius:
Sometimes when you look at three points in a line, they may have slight deviations between them that can be determined to be on a very large radius vs on a straight segment of a line. In this case you can assist the command to determine what you consider to be the largest radius that would be encountered in the selected linework, to help it determine when nodes should be considered to be a straight vs on an arc. Enter the largest radius that you think should be created - this is a β€œgross error check” so you don’t have to be super precise on this - a value like 10,000’ should do the job to determine what is straight vs what is arc.

Optimize vertical checkbox:
Check this checkbox if you wish to optimize the vertical geometry of the selected lines.

Minimum Angle:
Enter the minimum value for the break angle between two adjacent profile segments below which you do not wish to create a vertical curve to smooth out the grade break. Note that corridor models will likely have been generated at regular intervals and may have been densified to create a smooth road surface with minimal grade breaks between chords, in these scenarios, adding vertical curves to the grade breaks will likely have little effect on the end result. Typically place vertical curves where the grade break is greater than 2 or 3 degrees. Some users will use Z0.5 as the input here.

Maximum offset:
Enter the maximum offset that you will allow a vertical curve to deviate from the source profile node at which it is being placed. This value is used to determine the maximum length that a vertical curve can be at the defined location. The length of the vertical curve can also be no longer than 2x half the length of the shortest segment either side of the VPI at which the vertical curve is being placed. For example if the inbound segment is 8’ long and the outbound segment is 12’ long then the max vertical curve length can only be 8’ (2*8/2) because the prior element may also create a vertical curve at the start of the 8’ segment etc. This maximum offset computes a second value for the max length that limits the offset of the curve to the point. The shorter of the two values is then used as the value to control the curve.

Maximum length:
This is a third control that is used to control the length of the vertical curve created. If as a user you want to limit the length of the vertical curves to 5’ then you can enter it here. If 5’ is then less than the value computed by the earlier processes then the 5’ control will limit the vertical optimization process.

Ignore VPI on sharp corners checkbox:
When optimizing the vertical on e.g. Curb and Gutter lines for parking lots, you will likely want to check this checkbox and enter an angle value like 45 degrees to prohibit the fitting of vertical curves through sharp angle breaks in the horizontal geometry e.g. for corners at the back of parking bays on parking islands where a sharper change in slope would be expected. Enter the maximum angle above which you do not wish to fit vertical curves to the vertical geometry. The angle is the change in direction of the line at the node i.e. in the example shown with the arrow, the inbound line is at orientation 0 and the outbound line is at orientation 90 so the angle deflection is 90 degrees.

Output options:
The process will generate either linestrings or alignments or both as output. The linestrings and alignments will be placed on layers with names derived from the name of the layers on which the source linework is placed by adding the extensions defined in the settings controls below. The linestrings and alignments can be given different colors so that they can easily be differentiated from the source lines once created as a visual check.

Linestring checkbox:
Check this checkbox if you wish to create linestrings as an output.

Name template:
If the linestring output option is checked, select the naming you require for the layer on which the optimized linestrings will be created e.g. {L}-LS where {L} is the name of the source line layer.

Select the default (ByLayer) color for the new layer to be created. The linestrings created will be set to ByLayer color so that they automatically pick up the color property defined.

Alignment checkbox:
Check this checkbox if you wish to create alignments as an output.

Name template:
If the alignment output option is checked, select the naming you require for the layer on which the optimized alignments will be created e.g. {L}-AL where {L} is the name of the source line layer.

Select the default (ByLayer) color for the new layer to be created. The alignments created will be set to ByLayer color so that they automatically pick up the color property defined.

When you tap apply, the selected linestrings will be optimized and the linestrings or alignments will be generated, the report will be created as a check on the new geometry. The command will ready itself for another selection set and repeat process execution. If you do not want to make a second selection and repeat the process tap Close to finish the process.

Executes the command and closes on completion

Closes the command without further execution.

Video Demonstration

The following video shows how to utilize the Optimize Linestrings command

Use Case Videos

The following videos show the use of the Optimize Linestrings command in a work process context

Feedback and Enhancement Requests

If you would like to provide feedback on the use of the Optimize Linestrings command or to request enhancements or improvements to the command please Click Reply below

1 Like