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.

Tuesday, 7 May 2019

Civil 3D and SAC insanity...once again.

I created a subassembly using SAC2014.
It checks corridor stationing to decide to do some actions.
I have a decision like the following.

math.floor((StationValue-StaStart)/Step) = (StationValue-StaStart)/Step and StationValue>=StaStart and StationValue<=StaEnd

For StationValue=4059, StaStart=4045, Step=2, StaEnd=4059 the result was False !!! because floor was 6 (???!!!) and full double was 7. Insane !!!

I changed to math.round and values became equal so it should turn to True. But i did not !!!???

Being one step before madness i reduced the region less than the StaEnd and then i got it back.
Everything got as expected.
Simple Corridor rebuilding  or region stationing extending by grips does not trully rebuilds that station. Only reducing region stationing that much so that the desired station does not exist and then extending back worked out.

Autodesk's products insanity.

I made a test. Changed SAC code back to "Floor". Reloaded subassembly and rebuilded the corridor. Everything looked as expected so the result was True. But i did not trust it. So i reduced region stationing and then restored it.
Guess what. Now it turned to False. Again. So true rebuild for a station takes place only if it is vanished and restored !!!

Back to "Round" and everything worked fine although it should with "Floor".

Insanity continued...
I did the region stationing changes using the plan view grips.
When finally subassembly worked as expected plan view was immediatelly updated.
But the Cross Section View was not ! I had to move the Sample Line back and forth to update !

Wednesday, 27 March 2019

Civil 3D workaround : Corridor Surface Boundary "Add automatically" option not showing although it should

So you have a corridor made of sub assemblies that should expose one or more codes for adding boundaries automatically but this option is not offered although it should.

Watch for locked layers. Assemblies, alignments, profiles, targets, superelevation views, surfaces whatever may be related to the corridor and its surface.

If all unlocked then check this.
Set boundary to Corridor extends.
Rebuild corridor and watch the Event viewer.
If there is a warning that "could not apply mask (0) to corridor due to crossing polygon" then try this.

Set Corridor frequencies to another much larger value.
Apply.
Now the option for Adding automatically should be available.
Select the desired code.
Apply and rebuild.
Reenter corridor properties and change frequencies back to the previous values. Apply and rebuild.

Add automatically is still available and everything is working fine.

Yet another workaround.
Autodesk is unintentionally training our brains to prevent failure due to aging. Or maybe our brains are about to get burned because of all this over the years searching for workarounds, tricks and things like these trying to make their software to work as expected.
We should also not neglect all those extreme feelings of frustration, surprise, anxiety, desperation and finally...triumph that comes with situations like these.