Constructor.
public 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 )
| Exception | Condition |
|---|---|
| ArgumentException |
Thrown when input parameter:
|
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}