CorridorTransitionSet(String, BaselineRegion, String, CorridorTransitionNameType, SubassemblySideType) Constructor |
Constructor.
Namespace: Autodesk.Civil.DatabaseServicesAssembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.9.0.960
Syntaxpublic CorridorTransitionSet(
string setName,
BaselineRegion baselineRegion,
string subassemblyName,
CorridorTransitionNameType nameType,
SubassemblySideType subassemblySide
)
Public Sub New (
setName As String,
baselineRegion As BaselineRegion,
subassemblyName As String,
nameType As CorridorTransitionNameType,
subassemblySide As SubassemblySideType
)
public:
CorridorTransitionSet(
String^ setName,
BaselineRegion^ baselineRegion,
String^ subassemblyName,
CorridorTransitionNameType nameType,
SubassemblySideType subassemblySide
)
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.
- subassemblySide SubassemblySideType
- Side of seed subassemlby, in case subassemblies with same name exist but on different side.
Exceptions| Exception | Condition |
|---|
| ArgumentException |
Thrown when input parameter:
- setName is empty.
- setName exceeds maximum length.
- subassemblyName is empty.
- subassemblyName fails to find a subassembly on the region.
- nameType is not supported.
- subassemblySide 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 1
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
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
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
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