TO make it work on my sistem I have done this: lower it down to framework 3.5, remove reference to Csharp.
Marvelously! I am really impressed how you have done this with so little coding.I have tested it on few of my files and i find it superb. It works with big files (10mb or more) but it takes time.
Timing on bigger drawing: 13.0mb vs 12.9mb acad 2010 format, amd x2 6000+ 32bits ram4mb, release mode dll => 62sec
============================
CORE PROBLEMS:
**in big file comparison (13mb) - older has a closed polyline entitiy (Sample_5-10-11), newer not (Sample_8-11-11)=> NOT DETECTED - empty in TestDrawing (nothing of 3 possibilityes: not equal, eqal, new? I expect 'deleted' or similar?)
**in big file comparison (13mb) - older has a Text multiline entitiy (Sample_5-10-11), newer not (Sample_8-11-11)=> NOT DETECTED - empty in TestDrawing (nothing of 3 possibilityes: not equal, equal, new? I expect 'deleted' or similar?)
++ I think that DELETED state must also be shown on separate layer
============================
SUGGESTIONS:
**Show deleted state
**I suggest adding a ProgressBar...
**I suggest adding small dialog form where user can select file path 1, file path 2, output file path - (disable posibly overwriting)
**Create TestDwg form scratch,
Hmmm, or better, add TestDwg to solution and "extract" it when you need it (let say: to TEMP folder),
populate it with differences and copy it to destination output folder from DialogForm - or something along this lines
**possibility to do it without closing currently opened drawings/dwg's
============================
ERRORS:
**it throws error if one of files is password protected
Autodesk.AutoCAD.Runtime.Exception: eSecErrorDecryptingData
at Autodesk.AutoCAD.DatabaseServices.Database.ReadDwgFile(String fileName, FileOpenMode mode, Boolean allowCPConversion, String password)
at DwgComparer.Commands.runCompareFiler() in *\DwgCompaer\DwgCompaer\Commands.cs:line 44
at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()
**it throws error if one of layers is locked
Autodesk.AutoCAD.Runtime.Exception: eOnLockedLayer
at Autodesk.AutoCAD.DatabaseServices.TransactionManager.GetObjectInternal(AcDbTransactionManager* pTM, ObjectId id, OpenMode mode, Boolean openErased, Boolean forceOpenOnLockedLayer)
at Autodesk.AutoCAD.DatabaseServices.Transaction.GetObject(ObjectId id, OpenMode mode)
at DwgComparer.Commands.runCompareFiler() in *\DwgCompaer\DwgCompaer\Commands.cs:line 124
at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()
============================
OVERALL:
**it works beautifully with acad files. It's definetly under category of "The Add-In of Year"- TWO THUMBS UP
**it does not work wery well with drawing what we get from external architects (probably not created in acad;
or as autodesk says it: Non Autodesk DWG. This DWG file was saved by a software application that was not developed or licensed by Autodesk.
Autodesk cannot guarantee the application compatibility or integrity of this file.)
Hope it helps.
Z