CorridorTransitionSet(String, BaselineRegion, ObjectId, CorridorTransitionNameType) Constructor

Constructor.

Namespace: Autodesk.Civil.DatabaseServices
Assembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.9.0.960
Syntax
public CorridorTransitionSet(
	string setName,
	BaselineRegion baselineRegion,
	ObjectId subassemblyId,
	CorridorTransitionNameType nameType
)

Parameters

setName  String
Transtion set name.
baselineRegion  BaselineRegion
Baseline region that seed subassembly is on.
subassemblyId  ObjectId
Seed subassembly's id. Seed subassembly is a start point to find other contiguous subassemblies. If corridor is out of date, seed subassembly is from the assebmly latest set for the region.
nameType  CorridorTransitionNameType
Name type to define a rule of how to find contiguous subassemblies.
Exceptions
ExceptionCondition
ArgumentException Thrown when input parameter:
  1. setName is empty.
  2. setName exceeds maximum length.
  3. subassemblyId is invalid.
  4. subassemblyId can't be found on the baseline region.
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