Jump to content

Search the Community

Showing results for tags 'wblockcloneobjects'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • CADTutor
    • News, Announcements & FAQ
    • Feedback
  • AutoCAD
    • AutoCAD Beginners' Area
    • AutoCAD 2D Drafting, Object Properties & Interface
    • AutoCAD Drawing Management & Output
    • AutoCAD 3D Modelling & Rendering
    • AutoCAD Vertical Products
    • AutoCAD LT
    • CAD Management
    • AutoCAD Bugs, Error Messages & Quirks
    • AutoCAD General
    • AutoCAD Blogs
  • AutoCAD Customization
    • The CUI, Hatches, Linetypes, Scripts & Macros
    • AutoLISP, Visual LISP & DCL
    • .NET, ObjectARX & VBA
    • Application Beta Testing
    • Application Archive
  • Other Autodesk Products
    • Autodesk 3ds Max
    • Autodesk Revit
    • Autodesk Inventor
    • Autodesk Software General
  • Other CAD Products
    • BricsCAD
    • SketchUp
    • Rhino
    • SolidWorks
    • MicroStation
    • Design Software
    • Catch All
  • Resources
    • Tutorials & Tips'n'Tricks
    • AutoCAD Museum
    • Blocks, Images, Models & Materials
    • Useful Links
  • Community
    • Introduce Yourself
    • Showcase
    • Work In Progress
    • Jobs & Training
    • Chat
    • Competitions

Categories

  • Programs and Scripts
  • 2D AutoCAD Blocks
  • 3D AutoCAD Blocks
  • Images
    • Backgrounds

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 1 result

  1. Hi, i need to read an external dwg and import only some entities. I use WblockCloneObjects, it work fine but i found a memory problem, the memory is not disposed autocad memory process significantly increases after every WblockCloneObjects. Where is the problem? Thank you very much. [CommandMethod("TestClone", CommandFlags.Transparent)] public void TestClone() { // repeated 20 times to highlight the memory consumption for (int i = 0; i < 20; i++) { ObjectIdCollection filteredIds = new ObjectIdCollection(); Database targetDb = ACAP.Application.DocumentManager.MdiActiveDocument​.Database; using (Transaction trMain = targetDb.TransactionManager.StartTransaction()) { using (Database db = new Database(false, true)) { // read the source dwg db.ReadDwgFile(@"D:\he10t.dwg", FileOpenMode.OpenForReadAndAllShare, true, ""); // get all entities using (Transaction trSource = db.TransactionManager.StartTransaction()) { BlockTable pBT = (BlockTable)trSource.GetObject(db.BlockTableId, OpenMode.ForRead, false); BlockTableRecord pBTR = (BlockTableRecord)trSource.GetObject(pBT[blockTabl​eRecord.ModelSpace], OpenMode.ForRead, false); foreach (ObjectId id in pBTR) { // ...open entity and filter filteredIds.Add(id); } } // clone the filtered entities in current document using (ACAP.DocumentLock dl = ACAP.Application.DocumentManager.MdiActiveDocument​.LockDocument()) { using (IdMapping mapping = new IdMapping()) { // now clone the objects into the destdb ObjectId destDbMsId = SymbolUtilityServices.GetBlockModelSpaceId(targetD​b); db.WblockCloneObjects(filteredIds, destDbMsId, mapping, DuplicateRecordCloning.Replace, false); } } } trMain.Commit(); } filteredIds.Dispose(); } }
×
×
  • Create New...