# Enable Python support and load DesignScript library
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# Import RevitAPI
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
# Import RevitNodes
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
# Import DocumentManager
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
# The inputs to this node will be stored as a list in the IN variables.
panelschedule = UnwrapElement(IN[0][0])
excelsheet = IN[1]
headers = excelsheet.pop(0)
fulldata = excelsheet
for rowInd, rowData in enumerate(fulldata):
for colInd, cellData in enumerate(rowData):
panelschedule.SetParamValue(SectionType.Body,rowInd + 1,colInd + 1, cellData)
OUT = "success";
Any help would be appreciated. This is done in Revit 2017 and Dynamo 2.0.2. Unfortunately I cannot upload the Revit or Excel file.
# Enable Python support and load DesignScript library
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# Import RevitAPI
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
# Import RevitNodes
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
# Import DocumentManager
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
# The inputs to this node will be stored as a list in the IN variables.
panelschedule = UnwrapElement(IN[0][0])
tabledata = panelschedule.GetSectionData(SectionType.Body)
excelsheet = IN[1]
headers = excelsheet.pop(0)
fulldata = excelsheet
TransactionManager.Instance.EnsureInTransaction(doc)
for rowInd, rowData in enumerate(fulldata):
for colInd, cellData in enumerate(rowData):
tabledata.SetCellText(rowInd + 2, colInd + 1, cellData)
TransactionManager.Instance.TransactionTaskDone()
OUT = 'success'