How to get the Revision NUMBER on a Sheet with Python code?

How to get the Revision NUMBER on a Sheet with Python code?

I tried that code, but it does not work with flatten unique item lists as inputs…

import clr
# Import Element wrapper extension methods
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

import sys
pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
sys.path.append(pyt_path)

revisions = UnwrapElement(IN[0])
sheets = UnwrapElement(IN[1])

Output = []

for sheet, revision in zip(sheets, revisions):
    revnum = []
    for rev in revision:
        r = Autodesk.Revit.DB.ViewSheet.GetRevisionNumberOnSheet(sheet, rev.Id) 
        revnum.append(r)        
    Output.append(revnum)
        
OUT = Output


although adding a list level in revision input works.

@ruben.romero check this:

This is because you are unnecessarily looping over the zipped list to get the revision when it is already accessible as ‘revision’. The reason it works when you add another list level is ‘revision’ is no longer and item which you cannot iterate over it is a list containing 1 revision.

Try:

import clr
# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

import sys
pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
sys.path.append(pyt_path)

revisions = UnwrapElement(IN[0])
sheets = UnwrapElement(IN[1])

Output = []

for sheet, revision in zip(sheets, revisions):
    #for rev in revision:
    r = Autodesk.Revit.DB.ViewSheet.GetRevisionNumberOnSheet(sheet, revision.Id)      
    Output.append(r)
      
OUT = Output
2 Likes