.NET

Reply
Active Contributor
pva75
Posts: 48
Registered: ‎07-22-2012
Message 1 of 2 (121 Views)

How to reject layer deleting

121 Views, 1 Replies
08-17-2012 04:47 AM

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.

 

 

 

Valued Mentor
jeff
Posts: 327
Registered: ‎05-12-2009
Message 2 of 2 (107 Views)

Re: How to reject layer deleting

08-17-2012 12:19 PM in reply to: pva75

In link below is a similar thread and was to store the LayerTableRecord's ObjectIDs as Hard Pointers.

 

Would use the advice to store in Owners ExtensionDictionary

 

http://www.theswamp.org/index.php?topic=41870.msg469858#msg469858

You can also find your answers @ TheSwamp
Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.