запускается OpenedForModify смотрим, что за объект пришел.
если он AcDbLayerTableRecord *lTR=AcDbLayerTableRecord::cast(dbObj);
if (!lTRObj) значит не трогать.
а если наоборот, спросить имя.
если имя lTB->getName(lName); такое, какое нужно,
берем id и записываем в глобальную переменную, типа DocVars.docData().idLayer=lTB->id();
пользователь радуется - поменял настройки. но не тут то было!
идем в objectModified, сравниваем id того, что туда пришло с записанным id, если совпадает - ставим триггер на запрет входа в OpenedForModify, получаем объект
AcDbObjectPointer <AcDbLayerTableRecord> *lTR(DocVars.docData().idLayer,AcDb::kForWrite)
меняем все настройки обратно, закрываем объект, снимаем триггер, выводим сообщения с ругательствами пользователю acedAlert("Не влезай - убьет!");
по моему, так. Завтра попробую накатать.