Hi All,
I am trying to create a workflow where I export COBie.Type parameters for all wall types to excel get someone to fill in the data and then set these COBie.Type parameters using dynamo at both sides of the excel workflow. Please see attached files below for testing if required.
The error I am getting is No parameter by that name found. So maybe the mistake is in string version of the parameter names but I don’t think I typed them wrong, because odds on I would have got one correct but using Try and Except in python can’t work with any.
I have tried creating a new project and I have also restarted my computer but nothing seems to work.
Thankful for any and all suggestions?
COBie.Type - Wall Types Filling In Excel version -(Retrieveing data from excel).dyn (75.7 KB)
COBie.Type - Wall Types Filling In Excel version.dyn (49.2 KB)
TEST 2.xlsx (13.8 KB)
Version:0.9 StartHTML:00000097 EndHTML:00006131 StartFragment:00000199 EndFragment:00006093
This is the set parameter value by name node - Thanks to @Danny_Bentley
import clr
# Import RevitAPI Classes
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
#the above can be changed to import just specific classes separated by a comma
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('RevitNodes')
import Revit
# Adds ToDSType (bool) extension method to wrapped elements
clr.ImportExtensions(Revit.Elements)
#adds ToProtoType, ToRevitType geometry conversion extension methods to objects
clr.ImportExtensions(Revit.GeometryConversion)
import sys
sys.path.append(r'C:\Program Files (x86)\IronPython 2.7\DLLs')
sys.path.append(r'C:\Program Files (x86)\IronPython 2.7\Lib')
import random
#import documentmanager and transaction manager
clr.AddReference('RevitServices')
from RevitServices.Transactions import TransactionManager
from RevitServices.Persistence import DocumentManager
# create varible for revit document
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# get Revit's current Document file.
doc = DocumentManager.Instance.CurrentDBDocument
# get the current application
app = DocumentManager.Instance.CurrentUIApplication.Application
#get the user interface application
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
# Dynamo input
elements = UnwrapElement(IN[0])
parnams = UnwrapElement(IN[1])
vals = UnwrapElement(IN[2])
# Empty list
troubles = []
familyType = []
i = 0
# loop over elements
TransactionManager.Instance.EnsureInTransaction(doc)
while i < len(elements):
frstele = elements[i]
frspars = parnams[i]
frsvals = vals[i]
i = i + 1
for p,v in zip(frspars,frsvals):
try:
w = i.LookupParameter(p)
w.Set(v)
except:
troubles.append(str(p))
TransactionManager.Instance.TransactionTaskDone()
OUT = troubles