Get Turnout Properties

Get Turnout Properties

durasovartyom
Advisor Advisor
397 Views
5 Replies
Message 1 of 6

Get Turnout Properties

durasovartyom
Advisor
Advisor

Hello Civil 3D community!

Please advise how to extract the properties of switch points.
However, I need to obtain the following properties:
Names of critical points and coordinates (pickets) of critical points.

Perhaps you know how to obtain these properties using Civil 3D API, C#.

I am attaching several examples.

Autodesk Civil 3D 2026 Help | Turnout.GetCriticalPoints Method | Autodesk

How to customize Rail Turnout catalog in Civil 3D

 

Artyom Durasov

EESignature

0 Likes
Accepted solutions (1)
398 Views
5 Replies
Replies (5)
Message 2 of 6

essam-salah
Advisor
Advisor

Hi

in order to use 

public IList<string> GetCriticalPoints(
	string entryName)

we need to know entryNames  which is not in the documentation

0 Likes
Message 3 of 6

durasovartyom
Advisor
Advisor

Dear Autodesk developers!

Please advise how to obtain the entryName of a turnout and all turnout properties via API or Dynamo for Civil 3D.

I would appreciate an example or recommendations on how to obtain:

Critical Points

Geometric parameters (radius, point angle, length, etc.)

Other available turnout properties

Thank you for your help!

Artyom Durasov

EESignature

0 Likes
Message 4 of 6

hippe013
Advisor
Advisor
Accepted solution

In the following example 'turnout' is a Turnout object opened for read in a transaction.

 

Using the following:

Dim criticalPoints As IList(Of String) = turnout.GetCriticalPoints("default")

 

Returned the following:

CM
CotA_Diverted
CotA_Main
CotB_Diverted
CotB_Main
JP
JT_Diverted
JT_Main
PMA
PRA

 

Then using this: 

  Dim p As Point2d = turnout.GetCriticalPointLocation("default", "CM")

Successfully returned that point. 

 

I hope that this helps get you going in the right direction.  

 

EDIT:

Adding to what I stated above. You can look at the .JSON files provided in:

C:\ProgramData\Autodesk\C3D xxxx\enu\Data\Railway Design Standards\Turnout

 

You can see the additional available "entries" for a given turnout type.  

Single -> "default"

Equilateral -> "default", "left", "right"

Crossing -> "default", "left", "right"

Combined Crossing -> "default", "first", "second"

And so on...

 

 

Message 5 of 6

durasovartyom
Advisor
Advisor
while task_is_not_working:
    help = get_assistance_from_you()
    if help:
        happiness += 100
        print("Thanks'! You're a genius.!")
        break

Artyom Durasov

EESignature

Message 6 of 6

durasovartyom
Advisor
Advisor

LGTM! (Looks Good To Me)

Thank you for your help. You are a true Senior!
Coffee is on me. Let me know when you are in Lithuania.

Artyom Durasov

EESignature