Кроме того я проверил бы еще и ObjectId на null и в этом случае возвращал сразу false
Вот это, кстати, не стоит делать. Конечно, идея правильная в том ключе, что мы обсуждаем только лишь ObjectOverrule. Но у меня метод IsApplicable работает со всеми overrule и в GripOverrule это вызывает отрицательный эффект. Дело в том, что при работе метода MoveGripPointsAt автокад создает копию блока, которую мы и видим на экране в момент изменения. И вот у этой копии ObjectId.Null как-раз.
Как вариант, просто в параметр метода IsApplicable можно добавить bool checkForNullId = false и в ObjectOverrule уже ставить этот параметр в true