70002757 Deleted method is Slow for table objects

Article 70002757
Type Wish
Product Engine
Date Added 9/18/2025 12:00:00 AM
Fixed 11.4.21 (9/18/2025 12:00:00 AM)
Submitted by Dominique Premillieu

Summary

Deleted method is Slow for table objects like vdBlock,vdDimStyle, vdLayer, vdImageDef,vdTextStyle, vdLineType, vdHatchPattern, vdMultiLineStyle

Solution

A new method InternalDeleteNoCheck was exported for vdPrimary object types
Mark the object as Deleted with out checking if this object is depend from other objects in Document
It is faster than Deleted method
Call this method instead of Deleted method, for table objects return after the vdDocument.GetUnUsedTables method call
-Or- if you are sure that this object is not depend from other objects in Document.


Example

    //Purge unused Tables Layers, Blocks, LineTypes, DimStyles, TextStyles,ImageDefinition, HatchPatterns

      vdDocument mDoc;//an existing vdDocument object

            vdLayers layers = new vdLayers();
            vdBlocks blocks = new vdBlocks();
            vdDimstyles dimstyles = new vdDimstyles();
            vdLineTypes linetypes = new vdLineTypes();
            vdTextstyles textstyles = new vdTextstyles();
            vdImages images = new vdImages();
            vdHatchPatterns hatchpatterns = new vdHatchPatterns();

            mDoc.GetUnUsedTables(layers, blocks, dimstyles, linetypes, textstyles, images, hatchpatterns);

            foreach (vdPrimary item in blocks)
            {
                if (item.Deleted) continue;
                item.InternalDeleteNoCheck = true;
            }
            foreach (vdPrimary item in dimstyles)
            {
                if (item.Deleted) continue;
                item.InternalDeleteNoCheck = true;
            }
            foreach (vdPrimary item in layers)
            {
                if (item.Deleted) continue;
                item.InternalDeleteNoCheck = true;
            }
            foreach (vdPrimary item in images)
            {
                if (item.Deleted) continue;
                item.InternalDeleteNoCheck = true;
            }
            foreach (vdPrimary item in textstyles)
            {
                if (item.Deleted) continue;
                item.InternalDeleteNoCheck = true;
            }
            foreach (vdPrimary item in linetypes)
            {
                if (item.Deleted) continue;
                item.InternalDeleteNoCheck = true;
            }
            foreach (vdPrimary item in hatchpatterns)
            {
                if (item.Deleted) continue;
                item.InternalDeleteNoCheck = true;
            }

Send comments on this topic.