My wish: Elevation Target with 2 options

My wish: Elevation Target with 2 options

joantopo
Mentor Mentor
6,360 Views
20 Replies
Message 1 of 21

My wish: Elevation Target with 2 options

joantopo
Mentor
Mentor

Currently, the Elevation target only works in a only one way. It would be good that Civil 3D provides 2 options (2 ways) to provide the elevation to the subassembly.  Nowadays, Civil 3D works as the left side (the elevation of the design profile in that station) is dragged to the edge of the subassembly, whereas it would be interesting like the right side one (the new elevation of the subassembly edge is calculated by interpolation (theorical projection) ).

Thus, it doesn´t have to create a new offset alignment (also used for the Horizontal target) with its corresponding design profile to obtain the properly elevation for the subassembly.

 

So, in a corridor Region, for a subassembly, you can choose one of the 2 options for the elevation target.

 

 

 

elevation target options-wish list civil 3D.jpg

 

I attach a drawing file which is the source of this screenshoot.

 

Please, Autodesk staff, remember this improvement.

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
0 Likes
Accepted solutions (2)
6,361 Views
20 Replies
Replies (20)
Message 2 of 21

michael_robertson
Collaborator
Collaborator

I know this is possible if writing your own subassemblies in .NET. Not sure if this is possible in subassembly composer.

Mike Robertson
FL. Dept. of Transportation
CADD Applications Developer
Message 3 of 21

joantopo
Mentor
Mentor

Yesterday I was reading the help guide of the SAC about this.

 

I also think that it is possible with our own subassembly, perhaps like this:

 

 

**The subassembly has 2 points (P1 and P2) and a link (L1) between them.

**TargetElevation is the name of the "Target Parameter" of type=Elevation.

 

(Decision)
TargetElevation.IsValid
(True)

// define variable and set it.

**TargetElevation.Elevation is only the difference bewtween elevations.

ElevationZ_Target= BaseLine.Elevation + TargetElevation.Elevation;
ElevationZ_P1= P1.Elevation;
ElevationZ_BaseLine= BaseLine.Elevation;

//we do the same for the offsets (widths).



//Input parameter, to be filled in by the user.
This input paramater will be used when the subassembly has assigned the Elevation target.

Input parameter (double)---(by default 0) called "offsetBaseLine_ElevTarget"

//new variable:
IncrX= offsetBaseline_ElevTarget - P1.Offset;

//new variable:
IncrY= ElevationZ_Target - ElevationZ_P1;

//new variable:
PartialIncrY= L1.Xlength * IncrY / IncrX ;

//Finally, we put the new elevation for P2 point, which it will be the interpolated elevation using the target elevation.

P2.Elevation= P1.Elevation+ PartialIncrY;


 

In this case, we don´t use an Offset Target, only the ElevationTarget, and the last snippet code only works if the TargetElevation parameter is enabled by the user (is valid).

 

We don´t use an Offset Target but we use an input parameter called "offsetBaseLine_ElevTarget" to know the horizontal distance between the baseline and the ElevationTarget.

 

Perhaps, in the API in SAC, it should have a new member (currently there are: ElevationTarget.IsValid  and ElevationTarget.Elevation), why not ElevationTarget.Offset ?

So, I didn´t have to ask this value to the user with an input parameter.

 

I would like that the stock subassemblies, in special LaneSuperelevationAOR and ShoulderVertical, have this property to catch the interpolated elevation from a ElevationTarget.

 

 

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
0 Likes
Message 4 of 21

joantopo
Mentor
Mentor

for target surface, there is "P1.DistanceToSurface(SurfaceTarget)", why not  this new member:"P1.DistanceToElevationTarget(ElevationTarget)", to obtain the horizontal distance?

 

In my code, the alignment(from the elevation target) must be parallel to the baseline because I add an input parameter for that offset.

 

 

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
0 Likes
Message 5 of 21

joantopo
Mentor
Mentor

Oh yeah! 

I can apply an Offset Target without overriding my width of the subassembly !

 

This way allows me to know the offset assign a Offset Target without overriding.

 

But, Could I enable the Offset Target Override with an Input parameter, boolean type, (new property of the subassembly) if I would want?

 

 

 

without override.jpg

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
0 Likes
Message 6 of 21

Anonymous
Not applicable

Joan, have you tried auxilary links, auxilary surface links and auxilary intersections?

0 Likes
Message 7 of 21

fcernst
Mentor
Mentor

Since your goal is to use those two stock subassemblies anyway, for now it would be easier to use a generic link to compute the projected slope and pass it on.



Fred Ernst, PE
C3D 2027
Ernst Engineering
www.ernstengineering.com
0 Likes
Message 8 of 21

joantopo
Mentor
Mentor

About this:

"have you tried auxilary links, auxilary surface links and auxilary intersections?" the intersections is with different links in the same subassembly,  and I am not using a target surface, is a design profile with ElevationTarget.

 

 

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
0 Likes
Message 9 of 21

joantopo
Mentor
Mentor

Hi fcernst.

 

I was just thinking in that possibility too.

 

Mysubassembly would be the closed subassembly of the BaseLine (the first beginning in the right side), I get the properly slope and extract it with an Output parameter, so the the next subassembly( such as LaneSuperelevationAOR ,takes the slope with an Input parameter= Mysubassembly.slope.

In this case, Mysubassembly should very very short, with a width of 1 milimeter, for example.

 

 

 

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
0 Likes
Message 10 of 21

joantopo
Mentor
Mentor

I have a doubt about changing the elevation of P2.

 

I can do this "P2.Elevation" but it´s for read or create a varible using that value.

 

But.. how can I change this value? P2.Elevation?  can I set (write) it again in the Subassembly Composer?

 

 

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
0 Likes
Message 11 of 21

joantopo
Mentor
Mentor

It could be a subassembly with only one point? And this an auxiliar point?

 

I don´t know if I can make a subassembly without links and only one auxiliar point.

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
0 Likes
Message 12 of 21

doni49
Mentor
Mentor
Accepted solution

@joantopo wrote:

Oh yeah! 

I can apply an Offset Target without overriding my width of the subassembly !

 

This way allows me to know the offset assign a Offset Target without overriding.

 

But, Could I enable the Offset Target Override with an Input parameter, boolean type, (new property of the subassembly) if I would want?

 


Do you mean something like the attached (download it and save with a pkt extension instead of zip)?

 

OffsetTargetBool.png



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

Message 13 of 21

doni49
Mentor
Mentor

@joantopo wrote:

I have a doubt about changing the elevation of P2.

 

I can do this "P2.Elevation" but it´s for read or create a varible using that value.

 

But.. how can I change this value? P2.Elevation?  can I set (write) it again in the Subassembly Composer?

 

 


Instead of defining P2 and then trying to change the elevation of P2 later, I would assign an Aux point in place of P2.  Then when you're ready to "chagne" that point, create a real point that is relative to the aux pt.



Don Ireland
Engineering Design Technician




If a reply solves your issue, please remember to click on "Accept as Solution". This will help other users looking to solve a similar issue. Thank you.


Please do not send a PM asking for assistance. That's what the forums are for. This allows everyone to benefit from the question asked and the answers given.

0 Likes
Message 14 of 21

joantopo
Mentor
Mentor

Hi.

 

I attach my pkt file. Perhaps, it could have been another name more correct. XD

 

 

With only one point (is an auxiliar point) works fine (I don´t need a second point neither a link).

 

The Target offset is only to get the Horizontal distance from the base line and the design profile(according to its alignment).

 

The calculated slope is an output parameter to catch it in another subassemblies. (it seems that the output parameter works fine).

 

The only trouble now, is that the calculated slope is not calculated properly. I don´t know what is the reason. Could you check my variables if they are right?

 

Note: I use the elevation BaseLine and the offset of the AP1, because this subassembly can be used between subassemblies, so it is not obligatory that this subassembly was the first. (it is not necessary it was anchored to the BaseLine).

 

Later I will see your pkt file.

 

Thanks.

 

 

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
0 Likes
Message 15 of 21

hmartinez5
Enthusiast
Enthusiast
Accepted solution

Why don't you let the program calculate it for you. See the modified PKT.

Message 16 of 21

joantopo
Mentor
Mentor

Ok, I think what is the issue in my pkt file.

The output parameter is a grade type and should be slope type.

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
0 Likes
Message 17 of 21

joantopo
Mentor
Mentor

Great @hmartinez5 

 

It works now fine!

 

I missed assign both targets in AP2 to override the other values, you are right.

 

I see that the input parameter was right, it must be "grade" but in the expression I multiplied by 100, I thought it should be in percent.

 

I have tested and works perfect.

 

Thank you all.

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
0 Likes
Message 18 of 21

Anonymous
Not applicable
Grading transition between two different targets........
0 Likes
Message 19 of 21

joantopo
Mentor
Mentor

Well, there is only one Elevation target (from a design profile) , the another one is the design profile of the BaseLine.

Pehaps, grading transition between design profiles.

 

We also need the Offset target because we cannot get the Horizontal distance from the design profile to the BaseLine.

I think in the API in SAC, the ElevationTarget needs a new member: ElevationTarget.Offset thus it wouldn´t be necessary to select an Offset Target too.

 

 

And the Auxiliar link doesn´t have to do, because we can do this: AP1.SlopeTo("AP2")

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
0 Likes
Message 20 of 21

Anonymous
Not applicable
I'm just talking about for grading objects.
0 Likes