Monday 31 July 2017

Civil 3D road corridor with multiple shoulders. One corridor. Two baselines one for each side vs one baseline using conditional subassemblies. Trimble Link Roads export. Leica Infrastructure Link export.

In a road corridor a common case is the existing of both sides different kind shoulders.

A way to deal with it is creating a single corridor with two baselines refering to the same alignment
and profile, one for each side.
Breaking the baselines into multiple regions each one ending to a different shoulder.
So subassemblies are created for one side at a time.
Final count of them is significant less as also regions needed, than if a single baseline would exist for both sides. Also much simpler and understandable.
BUT exporting to a Trimble sensor is a problem. Although user creates a single surface with both sides, Trimble Link exports a seperate RXL for each side.
Also Leica HeXML export breaks apart corridor into two layers, one for each side.

Another way to deal with it is to create a single corridor with one baseline and only one region.
Assembly is based on conditional offset assemblies for different shoulders. So if user declares a target then the correspondent subassembly is applied !
Conditional target needs not to be drawn on the exact trail. Just joining start to end of the certain kind of shoulder.
Caution ! A good practice is to create Targets as properly named Feature Lines and even better in properly named Layers. This approach is time consuming but leads to less mistakes and it is easier to examine and make changes.
Also it is crucial that Sections are added for each start and end of each Conditional Offset Target for each side.
Obviously there is no problem exporting to either sensor.
BUT there is a huge "bug".
In the first case shoulder always changes at the start and end of each region.
But in this case shoulder does not change at the exact station a conditional target is apllied !!!
There is a tolerance which is not user accessible.
I have found that this tolerance is a 0.042m delta East from the edge of the declared target of the Conditional Offset Assembly that has the priority.
This is equivalent to the first case (of two baselines multiple regions) using 4.2cm (East to West) gaps among regions.

So, Conditional Offset Subassemblies is not a solution when strict accuracy is expected regarding stationing performed.

My preffered approach is...
...the first case of Corridor creation
...exporting corridor sections as two LandXML files containing only sections, one for each side, through my custom Civil 3D plugin
...join those two sided sections into a single one, based on stationing using another custom desktop NET software of mine
...finally attaching them to the Civil 3D alignment (and profile) export using my previously mentioned custom software or MS XML editor (not preffered-time consuming) or a Text editor (need to be carefull where to do the join).

But this is also not the best solution if there is a need for ovelapping conditional subassemblies. Leica import for LandXML does not assign C3D point names but custom names based on side and ascending offset position. If names were used points would be joined correct. But in this case sections are totally a mess.
Why overlapping conditional subassemblies ? It is very simple. GOMACO cable extensions !

Worst of all.
Leica Infrastructure Link exporting to HeXML is a perfect LandXML enhancement since points are named -even though using a weird manner- and is LandXML and HeXML schema error free
But in some cases finally unexplained error stops the transformation to RoadRunner job. eg "error found at position 1469"

 

No comments:

Post a Comment