BaselineSetTransitions Method

Sets the transitions to the baseline.

Namespace: Autodesk.Civil.DatabaseServices
Assembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.8.0.292
Syntax
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
C#
 1// Test command SetBaselineTransitions by using tutorial file "Corridor-5c.dwg".
 2[CommandMethod(ReferenceGuideSample.GoupId, "SetBaselineTransitions", CommandFlags.Modal)]
 3public void SetBaselineTransitions()
 4{
 5    using (Transaction tr = startTransaction())
 6    {
 7        ObjectId corridorId = _civildoc.CorridorCollection["Corridor - (1)"];
 8        Corridor corridor = corridorId.GetObject(OpenMode.ForWrite) as Corridor;
 9        Baseline baseline = corridor.Baselines["Baseline (1)"];
10
11        List<CorridorTransitionSet> transitionSets = new List<CorridorTransitionSet>();
12        // Create transition set by seed subassembly id.
13        BaselineRegion seedBaselineRegion = baseline.BaselineRegions["Corridor Region (1)"];
14        ObjectId seedSA = getAppliedSubassemblyIdAtStation(seedBaselineRegion, 300, "ShoulderExtendSubbase - (Left)");
15        CorridorTransitionSet transitionSet = new CorridorTransitionSet("Test Set 1", seedBaselineRegion, seedSA, CorridorTransitionNameType.SubassemblyName);
16        CorridorTransition tranData = transitionSet.AddTransition("ShoulderWidth");
17        setTransitionValues(tranData, 318.46, 20, 390.15, 100, CorridorTransitionType.Linear);
18        tranData = transitionSet.AddTransition();
19        setTransitionValues(tranData, 390.15, 100, 500, 50, CorridorTransitionType.CubicIn);
20        transitionSets.Add(transitionSet);
21
22        // Create transition set by subassembly name and side.
23        seedBaselineRegion = baseline.BaselineRegions["Corridor Region (1)"];
24        transitionSet = new CorridorTransitionSet("Test Set 2", seedBaselineRegion, "Subassembly.LaneSuperelevationAOR", CorridorTransitionNameType.ClassName, SubassemblySideType.Right);
25        tranData = transitionSet.AddTransition("Width");
26        setTransitionValues(tranData, 590.22, 30.2, 792.56, 66, CorridorTransitionType.BayTaper);
27        transitionSets.Add(transitionSet);
28
29        // Create transition set by subassembly name.
30        seedBaselineRegion = baseline.BaselineRegions["Corridor Region (1)"];
31        transitionSet = new CorridorTransitionSet("Test Set 3", seedBaselineRegion, "Subassembly.MedianDepressedShoulderExt", CorridorTransitionNameType.ClassName);
32        tranData = transitionSet.AddTransition("LeftMedianWidth");
33        setTransitionValues(tranData, 83.2, 50, 150.20, 50, CorridorTransitionType.Linear);
34        transitionSets.Add(transitionSet);
35
36        baseline.SetTransitions(transitionSets);
37        tr.Commit();
38    }
39}
40
41private void setTransitionValues(CorridorTransition tranData, double startStation, Object startValue, double endStation, Object endValue, CorridorTransitionType eTransitionType)
42{
43    tranData.StartStation = startStation;
44    tranData.StartValue = startValue;
45    tranData.EndStation = endStation;
46    tranData.EndValue = endValue;
47    tranData.TransitionType = eTransitionType;
48}
49
50private ObjectId getAppliedSubassemblyIdAtStation(BaselineRegion baselineRegion, double dStation, string saName)
51{
52    AppliedAssembly assembly = baselineRegion.AppliedAssemblies.GetItemAt(dStation);
53    AppliedSubassemblyCollection asacollection = assembly.GetAppliedSubassemblies();
54    foreach (AppliedSubassembly appliedSA in asacollection)
55    {
56        ObjectId oidSA = appliedSA.SubassemblyId;
57        Subassembly sa = oidSA.GetObject(OpenMode.ForRead) as Subassembly;
58        if (sa.Name == saName)
59        {
60            return appliedSA.SubassemblyId;
61        }
62    }
63    return ObjectId.Null;
64}
See Also