@kerry_w_brown , you can try the below code
[CommandMethod(nameof(TestMarkPointLaneCreation))]
public void TestMarkPointLaneCreation()
{
var doc = Application.DocumentManager.MdiActiveDocument;
using Transaction tr = doc.TransactionManager.StartTransaction();
var assId = CivilApplication.ActiveDocument.AssemblyCollection.Add("Test", AssemblyType.UndividedCrownedRoad, Point3d.Origin);
var markPointTemplateId = CivilApplication.ActiveDocument.SubassemblyCollection.ImportStockSubassembly("MarkPoint", "Subassembly.MarkPoint", Point3d.Origin);
var markPointTemplate = tr.GetObject(markPointTemplateId, OpenMode.ForWrite) as Subassembly;
var pointName = markPointTemplate.ParamsString["PointName"];
pointName.Value = "FirstMarkPoint";
var ass = assId.GetObject(OpenMode.ForWrite) as Assembly;
var assemblyGroupRight = ass.AddSubassembly(markPointTemplateId);
assemblyGroupRight.Name = "Right";
var medianRaiseSlopeId = CivilApplication.ActiveDocument.SubassemblyCollection.ImportStockSubassembly("MedianRaisedConstantSlope", "Subassembly.MedianRaisedConstantSlope", Point3d.Origin);
var median = tr.GetObject(medianRaiseSlopeId, OpenMode.ForWrite) as Subassembly;
var medianMarkPointName = median.ParamsString["MarkedPoint"];
medianMarkPointName.Value = pointName.Value;
ass.AddSubassembly(median.ObjectId, markPointTemplate.Points[0]);
//var medianDepressedId = CivilApplication.ActiveDocument.SubassemblyCollection.ImportStockSubassembly("MedianDepressed", "Subassembly.MedianDepressed", Point3d.Origin);
//var medianDepressed = tr.GetObject(medianDepressedId, OpenMode.ForWrite) as Subassembly;
//var markedPointName = medianDepressed.ParamsString["MarkedPointName"];
//markedPointName.Value = pointName.Value;
//var slope1Val = medianDepressed.ParamsDouble["Slope1"];
//slope1Val.Value = -1/2.0; // somehow this value is exactly the inverse of what you see in the UI...
//Debug.Assert(-1/2.0 == slope1Val.Value);
//ass.AddSubassembly(medianDepressed.ObjectId, markPointTemplate.Points[0]);
tr.Commit();
}
And instead of adding subassembly MedianRaisedConstantSlope, you add MedianDepressed subassembly,
I mean, if you comment out the MedianRaisedConstantSlope, and you uncomment the MedianDepressed code, all while you are attaching to the VS debugger and you rely on hot reload to refresh the code,
then you can see that no, hot reload doesn't always work. You will have to stop the debugging and recompile for it to work.
##########
Ngu Soon Hui##########
I'm the Benevolent Dictator for Life for
MiTS Software. Read more
here I also setup
Civil WHIZ in order to share what I learnt about Civil 3D