CorridorTransitionSet(String, BaselineRegion, String, CorridorTransitionNameType) Constructor

Constructor.

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

Parameters

setName  String
Transtion set name.
baselineRegion  BaselineRegion
Baseline region that seed subassembly is on.
subassemblyName  String
Name of seed subassembly. 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. 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 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    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