Ejemplo n.º 1
0
        public ObjectId findSurface(string surfaceName)
        {
            CivilDocument doc = CivilApplicationManager.ActiveCivilDocument;

            using (Transaction tr = CivilApplicationManager.StartTransaction())
            {
                foreach (ObjectId surfaceId in doc.GetSurfaceIds())
                {
                    C3DLandDb.Surface surface = surfaceId.GetObject(OpenMode.ForRead) as C3DLandDb.Surface;
                    if (surface.Name == surfaceName)
                    {
                        return(surfaceId);
                    }
                }
            }

            return(ObjectId.Null);
        }
Ejemplo n.º 2
0
        public void AddCivil2016ElevationsToFeature(ObjectId surfaceId, ObjectId featureId, ObjectId siteId,
                                                    object o)
        {
            try
            {
                Debug.WriteLine("Starting AddCivil2016ElevationsToFeature");
                using (Application.DocumentManager.MdiActiveDocument.LockDocument())
                {
                    using (Transaction tr = CivilApplicationManager.StartTransaction())
                    {
                        var feature = (C3DLandDb.FeatureLine)featureId.GetObject(OpenMode.ForRead);
                        feature.UpgradeOpen();
                        feature.AssignElevationsFromSurface(surfaceId, false);
                        feature.DowngradeOpen();

                        //Check and Refine Breakline
                        //FeatureLineManager.RecurseElevFromSurface();

                        var p3Dcollection = feature.GetPoints(FeatureLinePointType.AllPoints);
                        //var poly3d = new Polyline3d(Poly3dType.SimplePoly, p3Dcollection, true);

                        C3DLandDb.TinSurface surface = surfaceId.GetObject(OpenMode.ForRead) as C3DLandDb.TinSurface;
                        surface.UpgradeOpen();
                        ///Todo:Handle Breaklines for Water and Bulkhead
                        surface.BuildOptions.ExecludeMinimumElevation          = true;
                        surface.BuildOptions.MinimumElevation                  = 0.1;
                        surface.BuildOptions.CrossingBreaklinesElevationOption =
                            CrossingBreaklinesElevationType.UseNone;
                        surface.BreaklinesDefinition.AddStandardBreaklines(p3Dcollection, 1.0, 2.0, 2.0, 0.0);
                        surface.DowngradeOpen();

                        tr.Commit();
                        Debug.WriteLine("Ending AddCivil2016ElevationsToFeature");
                    }
                }
            }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
            }
            catch (System.AccessViolationException ex)
            {
            }
        }
Ejemplo n.º 3
0
        public void AddBreaklinesByCommandLine()
        {
            try
            {
                using (Application.DocumentManager.MdiActiveDocument.LockDocument())
                {
                    HideAmbientSettingsShowEvntVwer();
                    var surfaceId        = breaklines.FindCivilTinSurface("All");
                    var poly3dCollection = new List <Polyline3d>();

                    var _surObjectId = surfaceId;

                    foreach (ObjectId poly in _polyCollection)
                    {
                        var _siteId = breaklines.GetNewSiteId();

                        using (Transaction tr = CivilApplicationManager.StartTransaction())
                        {
                            //*************ADD BREAKLINES HERE************//

                            var featurelineId = breaklines.AddCivil2016BreaklineByTrans
                                                    (surfaceId, poly, _siteId, null);

                            //*************ADD BREAKLINES HERE************//

                            if (featurelineId == ObjectId.Null)
                            {
                                continue;
                            }
                            //*************ADD ELEVATIONS HERE************//
                            breaklines.AddCivil2016ElevationsToFeature
                                (_surObjectId, featurelineId, _siteId, null);
                            //*************ADD ELEVATIONS HERE************//

                            tr.Commit();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Ejemplo n.º 4
0
        public object OpenFeatureLineForSave(ObjectId featureId)
        {
            Debug.WriteLine("Starting OpenFeatureLineForSave");

            using (Transaction tr = CivilApplicationManager.StartTransaction())
            {
                var feature       = (C3DLandDb.FeatureLine)featureId.GetObject(OpenMode.ForWrite, false, true);
                var p3Dcollection = feature.GetPoints(FeatureLinePointType.AllPoints);

                var poly3d = new Polyline3d(Poly3dType.SimplePoly, p3Dcollection, true);
                poly3d.Layer = feature.Layer;
                poly3d.Color = feature.Color;
                _polylines.Add(poly3d);

                //C3DLandDb.TinSurface surface = surfaceId.GetObject(OpenMode.ForWrite) as C3DLandDb.TinSurface;
                //surface.BreaklinesDefinition.AddStandardBreaklines(p3Dcollection, 1.0, 2.0, 5.0, 0.0);

                tr.Commit();
                Debug.WriteLine("Ending OpenFeatureLineForSave");
                return(poly3d);
            }
        }