Пример #1
0
        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();
            }
        }