CorridorTransitionSet(String, BaselineRegion, ObjectId, CorridorTransitionNameType) Constructor |
Constructor.
Namespace: Autodesk.Civil.DatabaseServicesAssembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.8.0.292
Syntaxpublic CorridorTransitionSet(
string setName,
BaselineRegion baselineRegion,
ObjectId subassemblyId,
CorridorTransitionNameType nameType
)
Public Sub New (
setName As String,
baselineRegion As BaselineRegion,
subassemblyId As ObjectId,
nameType As CorridorTransitionNameType
)
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.
ExceptionsException | Condition |
---|
ArgumentException |
Thrown when input parameter:
- setName is empty.
- setName exceeds maximum length.
- subassemblyId is invalid.
- subassemblyId can't be found on the baseline region.
|
Example 1
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
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
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
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