Thanks, Kerry.
I was being brain-dead. Well, I when I was working on this last night, it was around midnight, after two days of Christmas celebrations. Probably not the best time to be coding.
I had my BlockReference (br), and I was trying to do this:
BlockTableRecord btr = tr.GetObject(br.OwnerId, OpenMode.ForRead, false) as BlockTableRecord;
instead of this:
BlockTableRecord btr = tr.GetObject(br.BlockTableRecord, OpenMode.ForRead, false) as BlockTableRecord;
After I fixed that, everything is happy again.
I
knew I had been using this and everything was OK, so I couldn't figure out what was going wrong. But I was in one of those modes where I was looking all around the problem without seeing it. Got it now, though. Thanks!