CorridorTransitionSet(String, BaselineRegion, ObjectId, CorridorTransitionNameType) Constructor

Constructor.

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

Parameters

setName  String
Transtion set name.
baselineRegion  BaselineRegion
Baseline region that seed applied subassembly is on.
subassemblyId  ObjectId
Seed applied subassembly's id. Seed applied subassembly is a start point to find other contiguous subassemblies.
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    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