Baseline.SetTransitions Method

Sets the transitions to the baseline.



Namespace: Autodesk.Civil.DatabaseServices
Assembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.8.0.1516

Syntax

C#

public void SetTransitions(
	IEnumerable<CorridorTransitionSet> transitionSets
)

VB

Public Sub SetTransitions ( 
	transitionSets As IEnumerable(Of CorridorTransitionSet)
)

C++

public:
void SetTransitions(
	IEnumerable<CorridorTransitionSet^>^ transitionSets
)

Parameters

transitionSets  IEnumerableCorridorTransitionSet
Transition sets to be set into the baseline.

Exceptions

ExceptionCondition
ArgumentException Thrown when transitionSets contains transition set not associated with the current baseline.

Remarks

The transition set in transitionSets won't be set to baseline if it doesn't have a transition.

Example

 1// Test command SetBaselineTransitions by using tutorial file "Corridor-5c.dwg".
 2[CommandMethod(ReferenceGuideSample.GoupId, "SetBaselineTransitions", CommandFlags.Modal)]
 3public void SetBaselineTransitions()
 4{
 5    var doc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;
 6    var civilDoc = CivilApplication.ActiveDocument;
 7
 8    using (Transaction tr = doc.TransactionManager.StartTransaction())
 9    {
10        ObjectId corridorId = civilDoc.CorridorCollection["Corridor - (1)"];
11        Corridor corridor = corridorId.GetObject(OpenMode.ForWrite) as Corridor;
12        Baseline baseline = corridor.Baselines["Baseline (1)"];
13
14        List<CorridorTransitionSet> transitionSets = new List<CorridorTransitionSet>();
15        // Create transition set by seed subassembly id.
16        BaselineRegion seedBaselineRegion = baseline.BaselineRegions["Corridor Region (1)"];
17        ObjectId seedSA = getSubassemblyId(seedBaselineRegion, "ShoulderExtendSubbase - (Left)");
18        CorridorTransitionSet transitionSet = new CorridorTransitionSet("Test Set 1", seedBaselineRegion, seedSA, CorridorTransitionNameType.SubassemblyName);
19        CorridorTransition tranData = transitionSet.AddTransition("ShoulderWidth");
20        setTransitionValues(tranData, 318.46, 20, 390.15, 100, CorridorTransitionType.Linear);
21        tranData = transitionSet.AddTransition();
22        setTransitionValues(tranData, 390.15, 100, 500, 50, CorridorTransitionType.CubicIn);
23        transitionSets.Add(transitionSet);
24
25        // Create transition set by subassembly name and side.
26        seedBaselineRegion = baseline.BaselineRegions["Corridor Region (1)"];
27        transitionSet = new CorridorTransitionSet("Test Set 2", seedBaselineRegion, "Subassembly.LaneSuperelevationAOR", CorridorTransitionNameType.ClassName, SubassemblySideType.Right);
28        tranData = transitionSet.AddTransition("Width");
29        setTransitionValues(tranData, 590.22, 30.2, 792.56, 66, CorridorTransitionType.BayTaper);
30        transitionSets.Add(transitionSet);
31
32        // Create transition set by subassembly name.
33        seedBaselineRegion = baseline.BaselineRegions["Corridor Region (1)"];
34        transitionSet = new CorridorTransitionSet("Test Set 3", seedBaselineRegion, "Subassembly.MedianDepressedShoulderExt", CorridorTransitionNameType.ClassName);
35        tranData = transitionSet.AddTransition("LeftMedianWidth");
36        setTransitionValues(tranData, 83.2, 50, 150.20, 50, CorridorTransitionType.Linear);
37        transitionSets.Add(transitionSet);
38
39        baseline.SetTransitions(transitionSets);
40        tr.Commit();
41    }
42}
43
44private void setTransitionValues(CorridorTransition tranData, double startStation, System.Object startValue, double endStation, System.Object endValue, CorridorTransitionType eTransitionType)
45{
46    tranData.StartStation = startStation;
47    tranData.StartValue = startValue;
48    tranData.EndStation = endStation;
49    tranData.EndValue = endValue;
50    tranData.TransitionType = eTransitionType;
51}
52
53private ObjectId getSubassemblyId(BaselineRegion baselineRegion, string saName)
54{
55    Assembly assembly = baselineRegion.AssemblyId.GetObject(OpenMode.ForRead) as Assembly;
56    foreach (ObjectId oidSA in assembly.Groups[0].GetSubassemblyIds())
57    {
58        Subassembly sa = oidSA.GetObject(OpenMode.ForRead) as Subassembly;
59        if (sa.Name == saName)
60        {
61            return sa.Id;
62        }
63    }
64    return ObjectId.Null;
65}

See Also

Reference

Baseline Class
Autodesk.Civil.DatabaseServices Namespace