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); }
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) { } }
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) { } }
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); } }