CorridorTransitionSet(String, BaselineRegion, String, CorridorTransitionNameType) Constructor

Constructor.

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

Parameters

setName  String
Transtion set name.
baselineRegion  BaselineRegion
Baseline region that seed applied subassembly is on.
subassemblyName  String
Name of seed applied subassembly.
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. subassemblyName is empty.
  4. subassemblyName fails to find a subassembly on the region.
  5. nameType is not supported.
Remarks
If there are more than one applied subassembly with the same name on the region, the subassembly nearest to the baseline is to be chosen as seed subassembly.
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