Friday 9 April 2021

Trimble Business Center : Incapable of exporting corridor with variable SideSlope through RXL templates.

There are some cases that a corridor can not be exported correctly or at all through RXL templates.

Correct surface


One of this is when a template has a Side Slope with a varying slope through eg a table with no surface to catch assigned.
It simply fails showing an error message. Complete failure. No file at all.
 
 
Error message
 


At a similar case where a surface is not assigned but the SideSlope is constant then the exported RXL is a complete mess. Added lines from nowhere and wrong SideSlopes . A now warning at all RXL file full of serious mistakes !!!
 
No comment



Another case is when a template ends either with a varied SideSlope or with an element such as Offset/Elevation that is based on a target or a table to set its exact width, height or slope.
In this case the exported templates do not reflect the desired form.
The exported template is broken into templates adjusted at each horizontal and vertical point of intersection of the hinge point. The slope that the original template had at this stationing is kept and applied constantly throughout until the next template.
Finally you get an RXL file full of errors, no warning at all !!!


Red for wrong daylights. Green for correct. Yellow for POIs.


So it is impossible to export through RXL templates a variable Side Slope either in the form of a SideSlope/CutFill or just in the form of line.

Such a frustrating limitation!

The only semi workaround i have found is to do the export through "RXL road export from surface".

Trimble Business Center : RXL road exporter from surface : Critical parameter for curved alignments

Exported Corridor Surface can have a wrong form like the below.

Watch the triangles top right. 

This is happening only at curved alignments when an exporting parameter is not set to the proper value.

Here is what to do.
Select Export.
At the Export window select RXL road exporter by surface.
At the settings set parameter "Adjust for arc/chord offset:" Yes
 

Now the exported RXL is correct.

 


Thursday 8 April 2021

Trimble Business Center v5.20 : Corridor : Slope/Elevation direction tip

I created a template with a Slope/Elevation for the left side. Desired slope direction was towards the left side no further actions required.
I mirrored it to the right. And the Slope/Elevation direction was towards left though it should be to the right.
I got almost crazy trying to find what was going on.
 
Finally i found the solution.
By default the slope is towards the left side. To set it to the right the point that is attached to must have a positive offset from its previous one! If it is vertical a 0.00001 value is enough to turn the set the direction to the right.
 
Trimble should mention this at the manual. I lost 7 hours from my work trying to find a solution.
 
This problem was reported to a Trimble forum and was answered by Alan Sharp. The solution was the same. I should have checked there from the very first time.
 

Thursday 4 March 2021

Subassembly composer multiple nested decisions issues and workarounds

I used to work with SubAssembly Composer (SAC) 2014 because it was the last version allowing a variable to be deleted and recreated with the same name not reporting the message that this variable already exists. Same thing happens when a variable is cut and pasted somewhere else. Trying to rename from copy to the previous name resulted to the same message. A serious bug that autodesk never responded to my notifications at the civil 3d customization support forum.

I created a subassembly using SAC 2014.Working at it, step by step it became huge and unresponsive.
Solution :
I turned to SAC 2018. This version handles huge subassemblies far better.

Copy or cut/paste a variable makes it impossible to use it with the same name, as mentioned at the beginning of this topic.
Solution :
Declare all variables inside a Sequence at the very start of the program. So there is no need to move it to another place. Not a good solution for someone that is used to programming but...

Finally i reached to a level of complexivity that doing a minor change had a huge time cost.
Solution :
I started unlinking all unecessary nodes keeping linked only those for the case i wanted to create or examine. Quite annoying but i did not find another workaround. For this to work  properly i had to keep written notes about how to reproduce each case.

But even so there was also a quite annoying time lag during changes or addings.
Solution :
Cut the preceding link. Everything takes place on the fly.

But no link or point already entered is available to select. Empty dropdown lists !
Solution :
The above method is perfect as long as no poimt or link selection has to be made. If so i found a better workaround.
Instead of cutting the preceding link i do a dummy insertion eg an empty shape so an error takes place.
Whatever is inserted, changed or moved takes place on the fly.
And best of all, all points and links are available to select.

Finally i have to connect all nodes. Program becomes completely unresponsible. It never unfreezes.
Solution :
Cut the very first node.
Join all others.
Save it using a name that identifies this.
Save it again removing this identification.
Do the every first join.
It freezes. Finally it reports a message that it is out of memory. Press OK. Save it.
It freezes again. But it is saved.
End it by force.
In case of changes use the one that is cut at the very first node. Repeat the above steps.

Notice :
Variables, Points and Links declared in a Switch or Decision are NOT available out of this Switch or Decision scope !!!

Saturday 6 February 2021

Civil 3D upgrade. Native subassembly property GetValueFrom issues.

So you have some complex assemblies made of native Civil 3D subassemblies.
You upgrade to a newer version.
You use the same assemblies to a new dwg or even you just open an existing dwg with the new version.
Everything works fine.
BUT...you have to make a change. Make subassemblies property changes to GetValueFrom eg Slope from a previous one. You select the value to override with. Check is automatically assigned.
But no changes take place at the drawing. You look again and the value is not assigned! Yes, Civil 3D fooled you.
The only way to achieve this change is to use a current version of the native Civil 3D subassembly for the one to GetValueFrom . Then the following, previous version, subassemblies can actually GetValueFrom.