the code does what I want but when I run the publisher it uses the old settings not the new one.
Public Sub SetPlotSheet(ByVal plotStyleToSet As String)
Dim ReturnValue As Boolean = True
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim acCurDb As Database = acDoc.Database
Using acLckDocCur As DocumentLock = acDoc.LockDocument
Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
Dim AcLayouts As DBDictionary = TryCast(acTrans.GetObject(acCurDb.LayoutDictionaryId, OpenMode.ForRead), DBDictionary)
For Each item As DBDictionaryEntry In AcLayouts
Dim layoutId As ObjectId = item.Value
Dim acLayout As Layout = TryCast(acTrans.GetObject(layoutId, OpenMode.ForWrite), Layout)
Dim sPlotSettingName As String = acLayout.PlotSettingsName
Dim acPlSet As DBDictionary = acTrans.GetObject(acCurDb.PlotSettingsDictionaryId, OpenMode.ForRead)
Dim acPlSetVdr As PlotSettingsValidator = PlotSettingsValidator.Current
Dim sheetList2 As System.Collections.Specialized.StringCollection = acPlSetVdr.GetPlotStyleSheetList
'If acPlSet.Contains(sPlotSettingName) = True Then
' Dim plSet As PlotSettings = acPlSet.GetAt(sPlotSettingName).GetObject(OpenMode.ForWrite)
' acPlSetVdr.RefreshLists(plSet)
' If sheetList2.Contains(plotStyleToSet) Then
' acPlSetVdr.SetCurrentStyleSheet(plSet, plotStyleToSet)
' acLayout.CopyFrom(plSet)
' End If
'End If
If acPlSet.Contains(sPlotSettingName) = True Then
If sheetList2.Contains(plotStyleToSet) Then
acPlSetVdr.RefreshLists(acLayout)
acPlSetVdr.SetCurrentStyleSheet(acLayout, plotStyleToSet)
End If
End If
Next
acTrans.Commit()
End Using
End Using
End Sub