【ORD C#】廊道创建点控制

老师,下面的代码是我参考另一个帖子老师提供的创建点控制例子,廊道和控制线都已经获取到了,但是还是设置失败。这是我的测试文件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();
        }