AVG(ObjectId idPoly, Point3d pnt3dCEN, double dblSlope, double dblPadElev, bool boolSetPointAtCenter, Point3d pnt3dTAR) { ObjectIdCollection idsPoly3d = new ObjectIdCollection(); double dblDist = 0.0; uint pntNum; ObjectId idPoly3d = ObjectId.Null; switch (boolSetPointAtCenter) { case true: pnt3dCEN.setPoint(out pntNum, "CPNT-ON"); break; case false: pnt3dCEN = new Point3d(pnt3dCEN.X, pnt3dCEN.Y, dblPadElev); if (pnt3dTAR != Pub.pnt3dO) { dblDist = pnt3dCEN.getDistance(pnt3dTAR); } using (BaseObjs._acadDoc.LockDocument()) { pnt3dCEN.setPoint(out pntNum, "CPNT-ON"); if (pnt3dTAR != Pub.pnt3dO) { pnt3dTAR = new Point3d(pnt3dTAR.X, pnt3dTAR.Y, pnt3dCEN.Z + dblDist * dblSlope); pnt3dTAR.setPoint(out pntNum, "CPNT-ON"); } idsPoly3d = DrawFloorSlab.build3dPolyFloorSlab(idPoly, pnt3dCEN, pnt3dTAR, dblSlope, "CPNT-ON", "CPNT-BRKLINE", "AVG"); int numBldg = updateDictGRADEDOCK(idsPoly3d[0].getHandle(), dblSlope, pnt3dCEN, pnt3dTAR); modSurface("CPNT-ON", "Finish Surface", idsPoly3d, true); TypedValue[] tvs = new TypedValue[3]; tvs.SetValue(new TypedValue(1001, "AVG"), 0); tvs.SetValue(new TypedValue(1000, "BLDG"), 1); tvs.SetValue(new TypedValue(1070, numBldg), 2); //Number assigned; to building foreach (ObjectId id in idsPoly3d) { id.setXData(tvs, "AVG"); } } break; } using (BaseObjs._acadDoc.LockDocument()) { BaseObjs.regen(); } }