Добрый день. Приветствую на нашем форуме:
1.
if (!reactor.OwnerId.IsErased)
Идет проверка не удален ли владелец реактора.
if (obj is RasterImage) ImageCount++;
Если владелец реактора имеет тип RasterImage - увеличиваем счетчик.
Т.е. нас интересует не удаленные RasterImage - только их количество мы и подсчитываем.
2.
RasterImage.EnableReactors(false);
Реакторы реагируют на модификацию объекта-владельца. Соответственно если не отключить реакторы, то несмотря на то, что владелец уже удален, реакторы сработают. И вот тут может возникнуть проблема, которая может привести к краху AutoCAD. Так что я советую эту строку оставить как есть.
3.
По этому поводу читаем документацию, которая говорит, что этот метод немедленно освобождает (оперативную) память занятую растровым изображением. Так что вызывать его или нет - это дело вкуса. Если растр достаточно большой (а они бывают и десятки, и сотни мегабайт), то думаю лучше вызвать этот метод. В любом случае если чертеж будет сохранен, когда imageDef удален, то при следующем открытии этого чертежа он уже не будет знать про imageDef и соответственно не будет пытаться загрузить растр и оперативная память не будет занята им.