I have gone around in circles today with using python for parameter setting. There are crumbs all over the web on how to.
I understand a wall instance and wall type will have different parameters.
import clr
# import RevitNodes
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
# import Revit Services
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
# import Revit API
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
# import system.
import System
from System.Collections.Generic import *
# get the current Revit document.
doc = DocumentManager.Instance.CurrentDBDocument
### ----------- FilterElementCollector --------------###
#All walls in project
#collector = FilteredElementCollector(doc)
wallTypes = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ToElements()
#floorElements = FilteredElementCollector(doc).OfClass(Floor).WhereElementIsNotElementType().ToElements()
elements = wallTypes
outlist=[]
TransactionManager.Instance.EnsureInTransaction(doc)
for type in wallTypes:
params=type.Parameters
for param in params:
if param.Definition.Name == "My Type Parameter":
paramID=param.GUID
type.get_Parameter(paramID).Set("Please set")
TransactionManager.Instance.TransactionTaskDone()
OUT = outlist
The warning is that the Parameter is not shared hence has no GUID.
I also tried using
type.LookupParameter("My Parameter")
Can anyone help me here?