老师,下面的代码是我参考另一个帖子老师提供的创建点控制例子,廊道和控制线都已经获取到了,但是还是设置失败。这是我的测试文件111.dgn
public static void PointCtrlTest() { DgnModel model = Bentley.MstnPlatformNET.Session.Instance.GetActiveDgnModel(); Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit con = Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit.GetActive(); Bentley.CifNET.GeometryModel.SDK.Alignment planAlignment = null; foreach (Bentley.CifNET.GeometryModel.SDK.Alignment alignment in con.GetActiveGeometricModel().Alignments) { if (alignment.FeatureName == "Alignment\\Geom_Baseline" && alignment.ActiveProfile != null) { planAlignment = alignment; break; } } Bentley.CifNET.GeometryModel.SDK.Corridor corridor = null; foreach (Bentley.CifNET.GeometryModel.SDK.Corridor cor in con.GetActiveGeometricModel().Corridors) { corridor = cor; break; } con.StartTransientMode(); if(planAlignment == null || corridor == null) { return; } Bentley.CifNET.GeometryModel.SDK.Edit.CorridorEdit corridorEdit = corridor as Bentley.CifNET.GeometryModel.SDK.Edit.CorridorEdit; //CreatePointControl Bentley.CifNET.GeometryModel.SDK.Edit.PointControlParameter parameters = new PointControlParameter(planAlignment, planAlignment.ActiveProfile, corridorEdit.StartDistance, corridorEdit.EndDistance, PointControlMode.Both, PointControlType.Alignment3d); parameters.Description = "Test Create PointControl"; parameters.PointName = "EOP_L"; parameters.UseAsSecondaryAlignment = false; parameters.Priority = 1; Bentley.CifNET.GeometryModel.SDK.Edit.PointControlEdit newPointControlEdit = corridorEdit.AddPointControl(parameters); con.PersistTransients(); }
您好,也遇到了PointControlParameter传参有问题。请问是否已解决?
目前看暂时还没解决,我会继续跟进。
PointControlParameter(planAlignment, planAlignment.ActiveProfile, corridorEdit.StartDistance, corridorEdit.EndDistance, PointControlMode.Both, PointControlType.Alignment3d);
这个方法 PointControlMode.Both和横向都不生效,只有纵向生效,怎么能让横向生效呢?
还有StartDistance和EndDistance两个参数反了
你试试 Bentley.CifNET.GeometryModel.SDK.Edit.PointControlParameter parameters = new PointControlParameter(planAlignment , planAlignment.ActiveProfile, 0, 10, PointControlMode.Horizontal, PointControlType.Alignment3d);
目前测试出来有两个问题
1、只有PointControlMode.Vertical能生效,PointControlMode.Both和PointControlMode.Horizontal都无法生效
2、double startDistance, double endDistance这两个参数位置是反的。