copy page setup from another file

copy page setup from another file

Anonymous
Not applicable
327 Views
1 Reply
Message 1 of 2

copy page setup from another file

Anonymous
Not applicable

Any idea why the following code doesn't work?  The important/significant lines are toward the end in a for . . . next loop.

 

Private Sub subCopyPageSetupFromFile()

Dim strDrvPathFileExt As String

Dim objSrcDB As New Database

Dim objTransactionManager As Autodesk.AutoCAD.DatabaseServices.TransactionManager

Dim objTransaction As Transaction

Dim objSrcPlotSettingsDictionary As DBDictionary

Dim objDictionaryEntry As DictionaryEntry

Dim objPlotSettings As PlotSettings

 

 

strDrvPathFileExt = "C:\ProgramData\Autodesk\ApplicationPlugins\Acad.dwt"

objSrcDB.ReadDwgFile(strDrvPathFileExt, FileOpenMode.OpenForReadAndReadShare, True, "")

 

objTransactionManager = objSrcDB.TransactionManager

objTransaction = objTransactionManager.StartTransaction

objSrcPlotSettingsDictionary = objTransaction.GetObject(objSrcDB.PlotSettingsDictionaryId, OpenMode.ForRead)

For Each objDictionaryEntry In objSrcPlotSettingsDictionary

 

objPlotSettings = objTransaction.GetObject(objDictionaryEntry.Value, OpenMode.ForRead)

MsgBox(objDictionaryEntry.Key.ToString.ToUpper)

 

Next

 

objTransaction.Dispose()

objTransactionManager.Dispose()

 

0 Likes
328 Views
1 Reply
Reply (1)
Message 2 of 2

SENL1362
Advisor
Advisor
...
DeletePlotSettings(db);
            using (var sourceDb = new Database(false, true))
            {
                sourceDb.ReadDwgFile(plotSettingsPathname, FileOpenMode.OpenForReadAndReadShare, true, null);

                using (var trSource = sourceDb.TransactionManager.StartTransaction())
                {
                    using (var tr = db.TransactionManager.StartTransaction())
                    {
                        var sourcePlotSettingsDict = (DBDictionary)trSource.GetObject(sourceDb.PlotSettingsDictionaryId, OpenMode.ForRead);
                        foreach (DBDictionaryEntry sourcePlotSettingsDictEntry in sourcePlotSettingsDict)
                        {
                            var sourcePlotSettings = (PlotSettings)trSource.GetObject(sourcePlotSettingsDictEntry.Value, OpenMode.ForRead);
                            var plotSettings = new PlotSettings(sourcePlotSettings.ModelType);
                            plotSettings.CopyFrom(sourcePlotSettings);
                            plotSettings.AddToPlotSettingsDictionary(db);
                            tr.AddNewlyCreatedDBObject(plotSettings, true);
                        }
                        tr.Commit();
                    }
                    trSource.Commit();
                }
            }
...


public static void DeletePlotSettings(Database db)
        {
using (var tr = db.TransactionManager.StartTransaction())
            {
                var plotSettingsDict = (DBDictionary)tr.GetObject(db.PlotSettingsDictionaryId, OpenMode.ForRead);

                using (var psIdsToRemove = new ObjectIdCollection())
                {
                    foreach (DBDictionaryEntry plotSettingsDictEntry in plotSettingsDict)
                    {
                        psIdsToRemove.Add(plotSettingsDictEntry.Value);
                    }

                    foreach (ObjectId psId in psIdsToRemove)
                    {
                        var plotSettings = (PlotSettings)tr.GetObject(psId, OpenMode.ForWrite);
                        plotSettings.Erase();
                    }
                }
                tr.Commit();
            }
}




0 Likes