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.

Friday, 1 March 2019

Civil 3D tip : Multiple corridor link codes. Material area fill styles priority.

Suppose a corridor link has multiple codes.
When assigning a Code Set Style that uses more than one of those codes to set a Material Area Fill Style only the last by order code entered is applied.
All others are ignored.
I am talking about the order the codes are declared by the user...
...at the original autodesk sub assemblies, wherever this is possible and 
...at subassemblies created using SubAssemblyComposer.

No matter what the transparency is or if it the hatch is solid or not.

Civil 3D "bug" : QTO material list gaps. Application freezing

I had a case of three similar alignments in the same dwg.
I had to set multiple gaps for the QTO material lists.
First alignment everything worked fine.
Second and third one and by the time i applied whatever gap the application freezed.
No matter what i tried i always ended up to an eternal loop which would set the particular CPU core to work at its maximum endlessly.

I was entering the gap stations by hand. I typed them. One by one. For every alignment.
Trying to set stations to other than those of the sample lines obviously did not work. Only sample line stations are accepted. I tried to bypass it doing a graphical selection. You are only allowed to select sample lines. Not stations. So i entered all gaps graphically. And everything worked fine!!!

Still have not figured out why everything worked fine for the first alignment since i also typed by hand all stations.

Autodesk give us a break. I lost seven whole hours of my working time trying to find a solution. One step before going crazy. No solution over the internet or the Civil 3D forum. I was off time for the deliverables. My supervisor thinks i am slow and i lack of knowledge about this software. For God's shake.