Пришло время рисовать штриховку и выяснилось, что не рисуется она. Взял пример 
http://adndevblog.typepad.com/autocad/2012/07/hatch-using-the-autocad-net-api.html - работает. Перенес в свой проект - не работает. Долго разбирался и понял, что все дело в транзакции. Если использовать:
Transaction Tx = db.TransactionManager.StartTransaction()
то работает, а вот если так:
OpenCloseTransaction Tx = db.TransactionManager.StartOpenCloseTransaction()
Вот полный код неработающего примера:
        [CommandMethod("testHatch")]
        static public void testHatch()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;
 
            using (OpenCloseTransaction Tx = db.TransactionManager.StartOpenCloseTransaction())
            {
                ObjectId ModelSpaceId = SymbolUtilityServices.GetBlockModelSpaceId(db);
 
                BlockTableRecord btr = Tx.GetObject(ModelSpaceId, OpenMode.ForWrite) as BlockTableRecord;
 
                Polyline plBox = new Polyline();
                plBox.AddVertexAt(0, new Point2d(0, 0), 0, 0, 0);
                plBox.AddVertexAt(1, new Point2d(0, 10), 0, 0, 0);
                plBox.AddVertexAt(2, new Point2d(20, 10), 0, 0, 0);
                plBox.AddVertexAt(3, new Point2d(20, 0), 0, 0, 0);
                plBox.Closed = true;
 
                ObjectId pLineId;
                pLineId = btr.AppendEntity(plBox);
                Tx.AddNewlyCreatedDBObject(plBox, true);
 
                ObjectIdCollection ObjIds = new ObjectIdCollection();
                ObjIds.Add(pLineId);
 
                Hatch oHatch = new Hatch();
                oHatch.Elevation = 0.0;
                oHatch.PatternScale = 2.0;
                oHatch.SetHatchPattern(HatchPatternType.PreDefined, "ZIGZAG");
                oHatch.ColorIndex = 1;
 
                btr.AppendEntity(oHatch);
                Tx.AddNewlyCreatedDBObject(oHatch, true);
 
                oHatch.Associative = true;
                oHatch.AppendLoop((int)HatchLoopTypes.Default, ObjIds);
                oHatch.EvaluateHatch(true);
 
                Tx.Commit();
            }
        }
И вот такая ошибка вылезает:

Это что же такое происходит, товарищи: создание штриховки с заданием контура в виде полилинии не работает при StartOpenCloseTransaction()?