How to reject layer deleting

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I want to lock my layer from deleting.
I did it as for object:
public class NonErasableLayer : ObjectOverrule
{
public NonErasableLayer()
{
this.SetCustomFilter();
}
protected override void Dispose(bool value)
{
this.SetNoFilter();
base.Dispose(value);
}
public override bool IsApplicable(Autodesk.AutoCAD.Runtime.RXObject overruledSubject)
{
if (overruledSubject == null)
return false;
return (overruledSubject is LayerTableRecord);
}
public override void Erase(DBObject dbObject, bool erasing)
{
if (dbObject is LayerTableRecord)
{
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nLAYER IS LOCKED.\n");
}
throw new Autodesk.AutoCAD.Runtime.Exception(ErrorStatus.NotApplicable);
}
}
Then I set overrule for Drawable objects:
ObjectOverrule.AddOverrule(RXClass.GetClass(typeof(Drawable))...
When I run it I saw my message from Erase method but... layer is deleted.
This method works fine for any objects as Line or Circle, but doen't work for layer.
How I can reject layer deleting?
Thanks,
Pavel.