BaselineSetTransitions Method

Sets the transitions to the baseline.

Namespace: Autodesk.Civil.DatabaseServices
Assembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.9.0.960
Syntax
public void SetTransitions(
	IEnumerable<CorridorTransitionSet> transitionSets
)

Parameters

transitionSets  IEnumerableCorridorTransitionSet
Transition sets to be set into the baseline. If it's null or empty, then transition sets are cleared in the baseline.
Exceptions
ExceptionCondition
ArgumentException Thrown when transitionSets contains transition set not associated with the current baseline, contains null item, contains transition set without any transition.
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    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