Beispiel #1
0
        public static void doMXR()
        {
            string title  = "Multiple XRef - MXR";
            string dir    = Path.GetDirectoryName(BaseObjs.docFullName);
            string filter = "All Drawings (*.dwg)|*.dwg|Current Design Files1 (*.dwg)|????BNDY.dwg;????CGP.dwg;????CUP.dwg;????CNTL.dwg;????CONT.dwg;????DEMO.dwg;????GCAL.dwg;????SD.dwg;????TOPO.dwg;????T-SITE.dwg;????UTIL.dwg|Current Design Files2(*.dwg)|*BNDY.dwg;*CGP.dwg;*CUP.dwg;*CNTL.dwg;*CONT.dwg;*DEMO.dwg;*GCAL.dwg;*SD.dwg;*TOPO.dwg;*T-SITE.dwg;*UTIL.dwg|_JDH Files (*_JDH.dwg)|*_JDH.dwg";
            string defExt = ".dwg";

            string[] files = FileManager.getFiles(defExt, title, filter, dir);


            if (files == null || files.Length == 0)
            {
                return;
            }

            string jn = BaseObjs.jobNumber();

            object tMode = Application.GetSystemVariable("TILEMODE");

            if (tMode.ToString() != "1")
            {
                BaseObjs._editor.Command("_tilemode", "1", "");
            }

            BaseObjs._editor.Command("_ucs", "w", "");

            for (int i = 0; i < files.Length; i++)
            {
                string nameLayer = string.Format("_{0}", Path.GetFileNameWithoutExtension(files[i]));
                Layer.manageLayers(nameLayer);

                string nameXRef = nameLayer.Replace("_", "x");

                using (Transaction tr = BaseObjs.startTransactionDb())
                {
                    ObjectId id = BaseObjs._db.AttachXref(files[i], nameXRef);

                    if (!id.IsNull)
                    {
                        using (BlockReference br = new BlockReference(Point3d.Origin, id))
                        {
                            BlockTable       bt = (BlockTable)BaseObjs._db.BlockTableId.GetObject(OpenMode.ForRead);
                            BlockTableRecord ms = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
                            ms.AppendEntity(br);
                            tr.AddNewlyCreatedDBObject(br, true);
                            br.Layer = nameLayer;
                        }
                    }
                    tr.Commit();
                }
            }
            Editor ed = BaseObjs._editor;

            ed.Command("_.LAYER", "C", "9", "*TOPO*", "");
        }