Hello everyone, I’m trying to rename all familytypes of a category of families in my project via Dynamo.
When running a python node to rename family types (this is after I have opened all family documents in the background) I get the following exception: A sub-transaction can only be active inside an open Transaction. The error occurs on the line of document.FamilyManager.CurrentType = ftype.
I can’t figure out where this problem is comming from since on the line before the error I open a new transaction. I hope anyone can help me understand why the script is giving me this error.
import clr clr.AddReference('RevitAPI') from Autodesk.Revit.DB import * clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager projectDocument = DocumentManager.Instance.CurrentDBDocument #IN the documents that are opened in the background #IN The typenames as a list with sublists where the sublists equals the amount of types in the family doc = IN newTypeNames = IN typeslist = list() typenameslist = list() newNames = list() i = 0 j = 0 for document in doc: ftypelist =  ftypenameslist =  specificTypeNames = newTypeNames[i] for ftype in document.FamilyManager.Types: TransactionManager.Instance.EnsureInTransaction(document) document.FamilyManager.CurrentType = ftype try: document.FamilyManager.RenameCurrentType(specificTypeNames[j]) newNames.append(ftype.Name) except: newNames.append(['failed to change name',ftype.Name]) j+=1 TransactionManager.Instance.TransactionTaskDone() i+=1 j = 0 OUT = newNames