public static void AddNextBlock( string blockName ) { Editor ed = Autodesk.AutoCAD.ApplicationServices. Application.DocumentManager.MdiActiveDocument.Editor; Database db = HostApplicationServices.WorkingDatabase; TypedValue[] filter = new TypedValue[2] { new TypedValue((int)DxfCode.Start, "insert"), new TypedValue((int)DxfCode.BlockName, blockName + "*"), }; SelectionFilter filterSS = new SelectionFilter(filter); PromptSelectionResult psr = ed.SelectAll(filterSS); if (psr.Status != PromptStatus.OK) return; using (Transaction tr = db.TransactionManager.StartTransaction()) { SelectionSet brSS = null; brSS = psr.Value; ArrayList blockList = new ArrayList(); for (int i = 0; i < brSS.Count; i++) { BlockReference oEnt; oEnt = (BlockReference)tr.GetObject(brSS[i].ObjectId, OpenMode.ForWrite); blockList.Add(oEnt.Name); } blockList.Sort(); string lastBlock; lastBlock = blockList[blockList.Count - 1].ToString(); //insert lastBlock + 1 } }