First of all I wish to greet all.
Then, I wrote a loop to save automatically a list of documents with the SaveAs method (Database.SaveAs).
The code is the following:
doc.Database.SaveAs(path, True, DwgVersion.Current, doc.Database.SecurityParameters).
While the documents are correctly saved with the correct new name (e.g. Map1.dwg, Map2.dwg, etc.) in the correct location, the doc.Name properties are not updated, the title bar of autocad also. They still remains Drawing1.dwg, Drawing2.dwg, etc.
Anyone have some suggestion?
Thanks
Greetings to you too.
Saving the database with a different file name does not update the document.
To do that, you can send the "SaveAs" command as in this code snippet :
[CommandMethod("Test", CommandFlags.Session)] public void TestMethod() { object filediaVariable = Application.GetSystemVariable("FILEDIA"); Application.SetSystemVariable("FILEDIA", 0); DocumentCollection acDocMgr = Application.DocumentManager; foreach (Document doc in acDocMgr) { dynamic acadDoc = doc.GetAcadDocument(); String newFileName = doc.Database.Filename.Replace(".dwg", "_New.dwg"); acadDoc.SendCommand(String.Format("saveas\n\n{0}\n", newFileName)); } Application.SetSystemVariable("FILEDIA", filediaVariable); }
I have used the dynamic keyword available in .Net framework 4.0. If you are using AutoCAD 2011 which targets the 3.5 framework, you can replace it with AcadDocument and add references to the AutoCAD COM interop assemblies.