Using output parameters between different assemblies

Using output parameters between different assemblies

Karadzhaian_Eduard
Advisor Advisor
2,163 Views
9 Replies
Message 1 of 10

Using output parameters between different assemblies

Karadzhaian_Eduard
Advisor
Advisor

Hi all,

I have two different assemblies (each one includes several custom subassemblies, which have been created in SAC).

I'll be glad to hear that there is a way to use output parameters from first assembly's in the second - i know standart way to use output parameters only inside one assembly with side limitation.

Thanks in advance.

 


Eduard Karadzhaian
Senior Civil Infrastructure Engineer
Blog| LinkedIn| E-mail| Youtube|



Accepted solutions (1)
2,164 Views
9 Replies
Replies (9)
Message 2 of 10

Udo_Huebner
Mentor
Mentor

Hi Eduard,

interesting Question. Could you tell us more about the advantages you expect?

I found an older entry on Idea station with quite a similar question.

https://forums.autodesk.com/t5/civil-3d-ideas/subassembly-get-value-from-lt-lt-global-variable-gt-gt...

 

Gruß Udo Hübner (CAD-Huebner)
Message 3 of 10

udo.huebner
Autodesk Support
Autodesk Support

@Karadzhaian_Eduard 

Currently, there is no way to use shared values, global values or reference parameters across different assemblies.

I suggest to post it on Civil Ideas. Please explain your intension and the advantages for all civil users. I will vote for your suggestion as well.

0 Likes
Message 4 of 10

Karadzhaian_Eduard
Advisor
Advisor

Hi @udo.huebner ,
I apologize for feedback's long delay
The main problem of AutoCAD platform based products (including Civil 3D) is productivity and speed of work. Corridor's rebuilding process of real huge highway projects with 5 km (or above) road's length take a lot of time. I'm keeping silent about section views group (you can make a cup of tee watching this presentation). So we want to increase workflow productivity in Civil 3D.
I want to describe in detail using this simple example:
Current workflow
I. I have the assembly, which includes three subassemblies (created in SAC):
1. Lane - from Crown to ETW (Edge of pavement);
2. Shoulder - from ETW to Hinge;
3. Daylight - from Hinge to daylight.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

II. I create a corridor (very simple situation - whole design profile is located in fill).
This corridor includes only one main baseline. Alignment also has a couple of tuned superelevations.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

III. Detail completion of the daylights.
This is the next step. After corridor has been created (and position of all lanes and shoulders is fixed) it is necessary to create different daylight's type (also different on the left/right) including different slope values of the daylight, benches, ditches, etc. Have a look please the time of corridor rebuilding/refreshing process.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

Conclusion:

Every rebuilding of daylights takes about 7-12 seconds, but the example is so simple. For create different daylight types on the left/right side user need to create/split corridor's regions. Also user automatically split zone of pavement. It’s very unconvenient, because user need to create a lot of different assemblies. There is a one way to turn off several corridor regions – but as a result user loose all corridor element’s zones – from Crown to Daylight.
I don’t know exactly how people design roads and highways in different countries, but in the CIS countries there are two big stages in the road design process transportation industry:
1. Design pavement (including lanes and shoulders);
2. Design, correction, changing daylights (there are a lot of different conditions to change daylights type).

 

What user really need (Advanced and real workflow)
User need to work with lanes, shoulders, daylights separately. Briefly: at first it is necessary to create and work with lanes and shoulders. Then fix and turn off them. The third step is work with the daylights.
Learn this simple example please:
I. Create lane-shoulder assembly - from Crown to Hinge.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

II. Create a corridor on the pavement zone. Extract dynamic feature lines from the left/right Hinge side.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

III. Create two daylight assemblies – from Hinge to daylight: first – for the left, second – for the right.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

IV. Create two new corridor baselines, which consist of extracted dynamic feature lines.
Then create two corridor regions with tuned target parameters for the left/right side.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

Benefits of this way:
I. User can work with different road elements: lanes, shoulders, daylights separately.
II. For create different daylight types on the left/right side user need to create/split corridor's regions only on the daylight zones – is so logical and practical method.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

III. User can turn off region of lanes and shoulders. Extracted dynamic feature lines will exist in the drawing permanently.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

IV. User can turn off each side of the daylights.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

V. As a result user has excellent productivity (less that 1-2 second) to rebuild any corridor region!!! Please compare with rebuilding full time in the end of the video.

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

User need to work with corridor model quickly, effectively and with high performance of the software! Here is a way to do it. When work with any region has been finished user can switch to the next, and then turn on all regions to complete the project.


It will be so great – to have this workflow, but…


Unfortunately Civil 3D has a limitation: Inability to use output parameters between different assemblies, so there is a one big problem:
Assemblies (corridor regions) don’t attached to each other on the borders correctly (I create a section view on the superelevation zone – on the spiral of alignment).

My assembly have different grade values on the top and base (20 per mille for Top and 30 per mille for Base as a standard values), so the last layer will be increase thickness from crown to ETW.
I know that user can extract a lot of feature lines and set them as a targets to correct layers thickness as I did earlier (so unconvenient method because all feature lines will overlay on the plan view). Also this assembly need to have permanent grade value on the top and base of all layers from crown to daylight – how I can do this on the superelevation zone – manually in the Section Editor?! So problem already exist. The main goal is to retranslate grade value from one assembly to a different. I try to use add assembly’s offset function – but unfortunately the same limitation…

Link to the screencast:

https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/screencast/Main/Details/e22e0401-...

 

@a.zemlyanskaya confirm please that I'm right.

 

@udo.huebner I’m waiting for your comments. 


Eduard Karadzhaian
Senior Civil Infrastructure Engineer
Blog| LinkedIn| E-mail| Youtube|



Message 5 of 10

jae.kwon
Collaborator
Collaborator

Could you have a command center subassembly, so to speak?

 

- Have a switch and some testing/decision making mechanism (EG conditions, station ranges, whatever) to select which option to use. Could even add a second switch and let the user decide what the criteria is after setting up a whole bunch. Also create some output parameters for any values you want to pass along to all the branches.

- each option has an attachment point setup spread out from each other - basically what the generic conditionals do.

- if you need to override which option to use manually, do so in corridor section editor.

 

 

0 Likes
Message 6 of 10

Karadzhaian_Eduard
Advisor
Advisor

@jae.kwon  thank you for your advice.

Tell me please: Have you seen all 12 screencasts (especially the two last)?

Problem is not in custom subassembly properties, functionality, etc.

I (also my CIS colleagues) have great experience in SAC. Also you can see the number of likes under my message - this is really necessary functionality.

I'm talking at first about productivity using corridor in Civil 3D (especcialy in big infrastructure projects). And also about logic of design process.

 

There are a lot of different conditions (except EG conditions, station ranges) - I'm talking about complex infrastructure projects including pipe netwotks, roadway marks, different sites for local treatment facilities, and of course the main goal - design watersheds. For example, EG conditions (created in SAC) want to create fill (and in 70-80 it will be right decision), but the design decision will be to create a fill to cut slope with a ditch. And it is only human factor, you can't tune it in SAC.

If you have a good experience in SAC you should know that subassembly with a lot of parameters, geometry objects, conditions, etc. also have problems with productivity in SAC environment - the mouse cursor slows down over time to "Slow motion" effect. So create a lot of conditions in custom complicated subassembly in SAC environment - isn't good idea.

I will repeat: if Civil 3D (and also SAC) will have excellent productivity and speed - my question would not be relevant.


Eduard Karadzhaian
Senior Civil Infrastructure Engineer
Blog| LinkedIn| E-mail| Youtube|



Message 7 of 10

tcorey
Mentor
Mentor

Thanks. I wish I could give ten likes for your post. 

 

Speed has been an issue with AutoCAD since I first started using it. The engineers at Autodesk know that users want more speed and there have been improvements, though not as much as the user base wants. Hey, we want instantaneous, right? 

 

I appreciate your description of the method of extracting corridor feature lines, to be added back into the corridor as baselines. 



Tim Corey
MicroCAD Training and Consulting, Inc.
Redding, CA
Autodesk Platinum Reseller

New knowledge is the most valuable commodity on earth. -- Kurt Vonnegut
Message 8 of 10

joantopo
Mentor
Mentor

Yeah, good idea.

I don´t like working with extracted corridor feature lines as BaseLines.

Your idea is good with "lane+shoulder" and then the daylight in another assembly with that new BaseLine.

 

However, I would prefer a way to LOCK subassemblies, so Civil 3D understands that it doesn´t need to re-calculate again that subassembly if it was calculated before (maybe it wouldn´t be avaiable for output parameters but I don´t mind). If we turn-off the region, obviously it will have to re-calculate again but there are a lot of things in Civil 3D wich takes long time because it must re-calculate again things than it were calculated without changes the last time.

Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS


Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes
Message 9 of 10

a.zemlyanskaya
Alumni
Alumni
Accepted solution

Hi Eduard! 

Thank you for such a detailed descriptions. You did a great job making all these screencasts! It's a really good example of constructive proposal. I agree with @udo.huebner that the message should be posted on Idea Station to start gathering support. I believe that it would be a more appropriate place. 

 

As for the main idea of using reference parameters across different assemblies, I do confirm that many road designers who work with sophisticated and complex corridors use an approach described by Eduard. Many of our customers demonstrated this way of creating corridors during our industry user events and conferences. I can confirm that this method could speed up the design process and make work with corridors more easier and faster.

And this will be a great advantage for all C3D users. 

 

Message 10 of 10

Yonas89
Collaborator
Collaborator

@Karadzhaian_Eduard,

 

I'm not a frequent guest to Civil 3D forums lately, so I've just noticed your post and found it interesting. I've also wanted to check an old trick of Civil 3D, and it turns out that  you can actually transfer parameter to different assemblies. At least to the offset assembly. The trick is that Civil 3D takes output parameters from the subassembly by name. So if you have 2 subassemblies in your assemblies collection with the same name, it will always take values from the first one: 

Capture.PNG

In my example I've added LaneLT subassembly to the main assembly and the same subassembly to the offset assembly. 

I've also added a ShoulderLT subassembly which is supposed to take a Subgrade grade from the LaneLT subassebly

Cap4.png

 

So on purpose I've changed subgrade grades in both LaneLT subassemblies

Capture1.PNGCapture3.PNG

I've also made my LaneLT subassembly in offset assembly very tiny in width (1 milimeter), so we can ignore it in the corridor. 

Capture4.PNG

And it works. Shoulder LT subassembly takes values from the LaneLT subassembly attached to the main assembly.

Capture5.PNG