makeVolSurface(string strNameBASE, string strNameCOMP, bool boolShowMessage) { string nameSurface = string.Format("VOL_{0}_{1}", strNameBASE, strNameCOMP); List <string> nameSurfaces = Surf.getSurfaces(); for (int i = 0; i < nameSurfaces.Count; i++) { if (nameSurfaces[i] == nameSurface) { Surf.removeSurface(nameSurfaces[i]); } } TinSurface objSurfaceBASE = Surf.getTinSurface(strNameBASE); TinSurface objSurfaceCOMP = Surf.getTinSurface(strNameCOMP); int lngVolCut = 0; int lngVolFill = 0; ObjectId idSurfFill = TinVolumeSurface.Create(nameSurface, objSurfaceBASE.ObjectId, objSurfaceCOMP.ObjectId); SelectionSet objSSetLim = EW_Utility1.buildSSetGradingLim(); ObjectId[] ids = objSSetLim.GetObjectIds(); TinVolumeSurface objSurfaceFILL = null; if (ids != null && ids.Length > 0) { ObjectId idPoly = ids[0]; idPoly.checkIfClosed(); ObjectId idPoly3d = Conv.poly_Poly3d(idPoly, 0, "0"); ObjectId[] idBndrys = { idPoly3d }; objSurfaceFILL = (TinVolumeSurface)idSurfFill.getEnt(); objSurfaceFILL.BoundariesDefinition.AddBoundaries(new ObjectIdCollection(idBndrys), 1.0, Autodesk.Civil.SurfaceBoundaryType.Outer, true); objSurfaceFILL.Rebuild(); idPoly3d.delete(); } else { MessageBox.Show("GRADING LIMIT not found - OUTER BOUNDARY not added."); } lngVolCut = (int)objSurfaceFILL.GetVolumeProperties().UnadjustedCutVolume / 27; lngVolFill = (int)objSurfaceFILL.GetVolumeProperties().UnadjustedFillVolume / 27; if (boolShowMessage == true) { string mess = string.Format("Cut: {0} CY Fill: {1} CY", lngVolCut, lngVolFill); MessageBox.Show(mess); } EW_Main.viewResults("VOL", false); }
updateVolSurface(string strNameBASE, string strNameCOMP) { string nameSurface = string.Format("VOL_{0}_{1}", strNameBASE, strNameCOMP); List <string> nameSurfaces = Surf.getSurfaces(); for (int i = 0; i < nameSurfaces.Count; i++) { if (nameSurfaces[i] == nameSurface) { Surf.removeSurface(nameSurfaces[i]); } } TinSurface objSurfaceBASE = Surf.getTinSurface(strNameBASE); TinSurface objSurfaceCOMP = Surf.getTinSurface(strNameCOMP); TinVolumeSurface.Create(nameSurface, objSurfaceBASE.ObjectId, objSurfaceCOMP.ObjectId); }
private void btn_UpdateCurb_Click(object sender, EventArgs e) { using (BaseObjs._acadDoc.LockDocument()) { using (Transaction TR = BaseObjs.startTransactionDb()) { Surf.removeSurface("TEMP"); TypedValue[] TVs = new TypedValue[2]; TVs[0] = new TypedValue((int)DxfCode.Start, "POLYLINE"); TVs[1] = new TypedValue((int)DxfCode.LayerName, "CPNT-BRKLINE-TEMP"); Misc.deleteObjs(TVs); TR.Commit(); } } wlc.LocateCurb("CPNT", AlignPL, AlignRF); }
public static void makeSurfaceBOT() { string strSurfaceName = "BOT"; EW_CheckSurfaceStyles.checkSurfaceStyles(strSurfaceName); Surf.removeSurface("BOT"); TinSurface objSurfaceBOT = Surf.addTinSurface("BOT", out exists); ObjectId idCivilPntGrp = CgPnt_Group.checkPntGroup("BOT"); objSurfaceBOT.PointGroupsDefinition.AddPointGroup(idCivilPntGrp); SelectionSet objSSet = EW_Utility1.buildSSet13(); ObjectId[] idsBrksArray = objSSet.GetObjectIds(); ObjectIdCollection idsBrks = new ObjectIdCollection(); foreach (ObjectId id in idsBrksArray) { idsBrks.Add(id); } objSurfaceBOT.BreaklinesDefinition.AddStandardBreaklines(idsBrks, 1.0, 0, 0, 0); ObjectId idLWPline = EW_Utility1.buildSSetGradingLim().GetObjectIds()[0]; if (idLWPline != ObjectId.Null) { ObjectIdCollection ids = new ObjectIdCollection(); ids.Add(idLWPline); objSurfaceBOT.BoundariesDefinition.AddBoundaries(ids, 1, Autodesk.Civil.SurfaceBoundaryType.Outer, true); objSurfaceBOT.Rebuild(); } else { MessageBox.Show("GRADING LIMIT not found - OUTER BOUNDARY not added."); } }
getSurfaceFromXRef(string nameSurf, string strSource) { string nameXRef = ""; if (nameSurf == "CPNT-ON") { nameXRef = "GCAL"; } if (nameSurf == "EXIST") { nameXRef = "CONT"; } ResultBuffer rb = xRef.getXRefsContainingTargetDwgName(nameXRef); TypedValue[] tvs = rb.AsArray(); switch (tvs.Length) { case 0: Application.ShowAlertDialog(string.Format("{0} not attached", nameXRef = (nameSurf == "CPNT-ON") ? "GCAL" : "CONT")); break; case 2: foreach (TypedValue tv in tvs) { if (tv.TypeCode == 1001) { nameXRef = tv.Value.ToString(); } } break; default: string prompt = string.Format("Multible {0} are attached. Select one to use for staking: ", nameXRef = (nameSurf == "CPNT-ON") ? "GCAL" : "CONT"); Application.ShowAlertDialog(prompt); fPickXref = Forms.Stake_Forms.sForms.fPickXref; foreach (TypedValue tv in tvs) { if (tv.TypeCode == 1001) { fPickXref.lboxSelectXref.Items.Add(tv.Value.ToString()); } } fPickXref.Text = string.Format("Multible {0} are attached. Select one to use for staking: ", nameXRef = (nameSurf == "CPNT-ON") ? "GCAL" : "CONT"); Application.ShowModalDialog(null, fPickXref, false); nameXRef = fPickXref.nameXRef; if (nameXRef == "") { return; } break; } Surf.removeSurface(nameSurf); BlockReference br = xRef.getXRefBlockReference(nameXRef); TinSurface s = xRef.getXRefTinSurface(br.Id, nameSurf); if (s == null) { return; } string nameLayer = string.Format("{0}-SURFACE", nameSurf); if (nameSurf == "CPNT-ON") { nameLayer = "CPNT-SURFACE"; } Layer.manageLayers(nameLayer); TinSurface surf = null; string nameStyle = "CPNT-ON"; using (Transaction tr = BaseObjs.startTransactionDb()) { if (nameSurf == "CONT") { nameStyle = "EXIST"; } ObjectId idStyle = Surf_Styles.getSurfaceStyle(nameStyle); ObjectId idSurf = TinSurface.Create(nameSurf, idStyle); surf = (TinSurface)idSurf.GetObject(OpenMode.ForWrite); surf.Layer = nameLayer; surf.Description = string.Format("COPIED FROM {0} - {1}", nameXRef, DateTime.Now); tr.Commit(); } surf.PasteSurface(s.ObjectId); Layer.manageLayer(nameLayer, layerFrozen: true); if (nameSurf == "CPNT-ON") { if (strSource == "STAKE") { sFrms.sForms.fStake.SurfaceCPNT = surf; } } }
private static void deleteSurface(Surface surf) { Surf.removeSurface(surf.Name); }