Revised Sheet Set

I’m having issues with creating Revised Sheet Sets, thoughts?

ERROR [pyrevit.revit.db.transaction] Error in Transaction Context. Rolling back changes. | <type ‘exceptions.Exception’>:In session views setting failed.

IronPython Traceback:
Traceback (most recent call last):
File “C:\Users\Ken.Koense\AppData\Roaming\pyRevit-Master\extensions\pyRevitTools.extension\pyRevit.tab\Drawing Set.panel\Revision.pulldown\Create Revised Sheet Set.pushbutton\script.py”, line 20, in
File “C:\Users\Ken.Koense\AppData\Roaming\pyRevit-Master\pyrevitlib\pyrevit\revit\db\create.py”, line 302, in create_revision_sheetset
Exception: In session views setting failed.

Script Executor Traceback:
Autodesk.Revit.Exceptions.InvalidOperationException: In session views setting failed.
at Microsoft.Scripting.Interpreter.ThrowInstruction.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.Interpreter.HandleException(InterpretedFrame frame, Exception exception)
at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 arg1)
at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx)
at PyRevitLabs.PyRevit.Runtime.IronPythonEngine.Execute(ScriptRuntime& runtime)

Try this:

import os
import socket
import logging
import getpass
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager


clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference('RevitAPIUI')
clr.AddReference("System.Drawing")
clr.AddReference("System.Windows.Forms")
import System.Drawing
import System.Windows.Forms
from System.Drawing import *
from System.Windows.Forms import *

app = __revit__.Application
doc = __revit__.ActiveUIDocument.Document



class RevisionSelectionForm(Form):
    def __init__(self, RevNames):
        self.revname = RevNames
        self.Font = Font("OpenSans",9)
        self.BackColor = Color.White     
        self.Text = 'Revision Print Set'
        self.label = System.Windows.Forms.Label()
        self.label.Text = "Select Revision"
        self.label.Location = Point(1, 50)
        self.label.Height = 30
        self.label.Width = 200
        self.count = 0
	
	
        self.cb = System.Windows.Forms.ComboBox()
        self.cb.Width = 200
        self.cb.Height = 20
        self.cb.Location = Point(15,20)
        self.cb.DataSource = self.revname
    
        self.button = System.Windows.Forms.Button()
        self.button.Text = 'Select Revision'
        self.button.Location = Point(15,60)
        self.button.Width = self.cb.Width
        self.button.Height = 25
        self.button.Click += self.button_click

        self.Width = self.cb.Width + 50
        self.Height = 150
	
        self.Controls.Add(self.cb)
        self.Controls.Add(self.button)
        self.CenterToScreen()
        self.AutoSize = True

    def button_click(self, sender, event):
        self.selected = self.cb.SelectedValue
        self.Close()

def filter_list(revisionlist, search_str):
	passed = None
	for element in revisionlist:
		name = element.Name
		if search_str == name:
			passed = element
	return passed        

sheets = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Sheets).WhereElementIsNotElementType().ToElements()
revisionlist = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Revisions).WhereElementIsNotElementType().ToElements()
RevNames = [x.Name for x in revisionlist]       
    
form = RevisionSelectionForm(RevNames)
form.ShowDialog()
SelectedRev = form.selected

SelRevEle = filter_list(revisionlist, SelectedRev)

filterview = FilteredElementCollector(doc).OfClass(ViewSheetSet).GetElementIterator()
filterview.Reset()
viewexists = None

sheetToPrint = []
for i in sheets: 
	revIds = i.GetAllRevisionIds()
	if SelRevEle.Id in revIds:
		sheetToPrint.append(i)

# remove viewset if already exists
for f in filterview:
	if f.Name == SelectedRev:
		viewexists = f
		break
if viewexists != None:
	tcheck = Transaction(doc, 'viewcheck')
	tcheck.Start()
	doc.Delete(viewexists.Id)
	tcheck.Commit()
	viewexists = None
	
# create viewset
if viewexists == None:
	viewSet = ViewSet()
	for v in sheetToPrint: (viewSet.Insert(v))
	printManager = doc.PrintManager
	printManager.PrintRange = PrintRange.Select
	viewSS = printManager.ViewSheetSetting
	try:
		trev = Transaction(doc, 'create viewset')
		trev.Start()
		viewSS.CurrentViewSheetSet.Views = viewSet
		viewSS.SaveAs(SelectedRev)
		trev.Commit()
		msg = "Sheet set '" + SelectedRev + "' created."
	except:
		msg = "The ViewSet could not be created"


OUT = msg