Ejemplo n.º 1
0
        /// <summary>
        ///     Sets the default build options.
        ///     Date: 2/19/2017
        /// </summary>
        /// <param name="surface">The surface.</param>
        public void SetDefaultBuildOptions()
        {
            try
            {
                using (Application.DocumentManager.MdiActiveDocument.LockDocument())
                {
                    using (var tr = CivilApplicationManager.StartTransaction())
                    {
                        MessengerManager.AddLog("Start Setting Build Options");

                        var surface = m_TheSurfaceId.GetObject(OpenMode.ForRead) as C3DLandDb.TinSurface;

                        if (surface == null)
                        {
                            surface = m_TheSurfaceId.GetObject(OpenMode.ForRead) as C3DLandDb.TinSurface;
                        }

                        if (surface == null)
                        {
                            return;
                        }

                        surface.UpgradeOpen();
                        ///Todo:Handle Breaklines for Water and Bulkhead
                        ///
                        if (surface.Name.Contains("WATER"))
                        {
                            surface.BuildOptions.MaximumTriangleLength = 100;
                        }
                        else if (surface.Name.Contains("All"))
                        {
                            surface.BuildOptions.MaximumTriangleLength = 60;
                        }
                        else
                        {
                            surface.BuildOptions.MaximumTriangleLength = 20;
                        }

                        surface.BuildOptions.MaximumTriangleLength             = 20;
                        surface.BuildOptions.UseMaximumTriangleLength          = true;
                        surface.BuildOptions.NeedConvertBreaklines             = true;
                        surface.BuildOptions.ExecludeMinimumElevation          = true;
                        surface.BuildOptions.MinimumElevation                  = 0.1;
                        surface.BuildOptions.CrossingBreaklinesElevationOption =
                            CrossingBreaklinesElevationType.UseLast; ///Todo: Changed 2/19/17 from None.

                        surface.DowngradeOpen();

                        tr.Commit();
                        MessengerManager.AddLog("End Setting Build Options " + surface.Name);
                    }
                }
            }
            catch (Exception e)
            {
                MessengerManager.LogException(e);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sets the default build options.
        /// Date: 2/19/2017
        /// </summary>
        /// <param name="surface">The surface.</param>
        public void SetDefaultBuildOptions(TinSurface surface)
        {
            try
            {
                using (Application.DocumentManager.MdiActiveDocument.LockDocument())
                {
                    using (var tr = CivilApplicationManager.StartTransaction())
                    {
                        MessengerManager.AddLog("Start Setting Build Options");

                        if (surface == null)
                        {
                            return;
                        }

                        surface.UpgradeOpen();
                        ///Todo:Handle Breaklines for Water and Bulkhead-Added 3.7.17
                        ///
                        if (surface.Name.Contains("WATER"))
                        {
                            surface.BuildOptions.MaximumTriangleLength = 100;
                        }
                        else if (surface.Name.Contains("All"))
                        {
                            surface.BuildOptions.MaximumTriangleLength = 200;
                        }
                        else
                        {
                            surface.BuildOptions.MaximumTriangleLength = 20;
                        }

                        surface.BuildOptions.UseMaximumTriangleLength          = true;
                        surface.BuildOptions.NeedConvertBreaklines             = true;
                        surface.BuildOptions.ExecludeMinimumElevation          = true;
                        surface.BuildOptions.MinimumElevation                  = 0.1; // Possible negative elevation
                        surface.BuildOptions.CrossingBreaklinesElevationOption =
                            CrossingBreaklinesElevationType.UseLast;                  ///Todo: Changed 2/19/17 from None.
                        surface.DowngradeOpen();

                        tr.Commit();
                        MessengerManager.AddLog("End Setting Build Options");
                        MessengerManager.AddLog("Surface Settings: " + surface.Name);
                    }
                }
            }
            catch (System.Exception e)
            {
                MessengerManager.LogException(e);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Sets the smoothing to 0.5 ft for select surfaces
        /// </summary>
        /// <param name="surface">The surface.</param>
        /// <param name="points">The points.</param>
        /// <returns>TinSurface.</returns>
        public C3DLandDb.TinSurface SetSmoothing(C3DLandDb.TinSurface surface, Point3dCollection points)
        {
            try
            {
                MessengerManager.AddLog("Start Surface Smoothing: " + surface.Name);

                //Smooth Critical Surfaces//

                if (surface.Name.Contains("GREEN") ||
                    surface.Name.Contains("COLLAR") ||
                    surface.Name.Contains("BUNKER") ||
                    surface.Name.Contains("BRIDGE"))
                {
                    using (Transaction ts = CivilApplicationManager.StartTransaction())
                    {
                        C3DLandDb.SurfacePointOutputOptions pointOutputOptions =
                            new C3DLandDb.SurfacePointOutputOptions();
                        pointOutputOptions.GridSpacingX    = 0.5;
                        pointOutputOptions.GridSpacingY    = 0.5;
                        pointOutputOptions.OutputLocations =
                            SurfacePointOutputLocationsType.GridBased;
                        pointOutputOptions.OutputRegions = new Point3dCollection[]
                        { points };

                        C3DLandDb.SurfaceOperationSmooth op =
                            surface.SmoothSurfaceByNNI(pointOutputOptions);

                        ts.Commit();
                    }
                    MessengerManager.AddLog("End Surface Smoothing: " + surface.Name);
                }
                return(surface);
            }
            catch (System.Exception ex)
            {
                PGA.MessengerManager.MessengerManager.LogException(ex);
            }
            return(null);
        }