private static void RemoveBlock() { DxfDocument dxf = new DxfDocument(); Block block = new Block("MyBlock"); Line line1 = new Line(new Vector3(-5, -5, 0), new Vector3(5, 5, 0)); Line line2 = new Line(new Vector3(5, -5, 0), new Vector3(-5, 5, 0)); block.Entities.Add(line1); block.Entities.Add(line2); Insert insert = new Insert(block); dxf.AddEntity(insert); bool ok; // line1 is used by block and cannot be removed (ok = false) ok = dxf.RemoveEntity(line1); // block is used by insert and cannot be removed (ok = false) ok = dxf.Blocks.Remove(block); // it is safe to remove insert, it doesn't belong to anybody (ok = true) ok = dxf.RemoveEntity(insert); // it is safe to remove block, it doesn't belong to anybody (ok = true) // at the same time, all entities that were part of the block have been also removed ok = dxf.Blocks.Remove(block); // obj is null the line1 does not exist in the document, the block was removed DxfObject obj = dxf.GetObjectByHandle(line1.Handle); Console.WriteLine("Press a key..."); Console.ReadKey(); }