hello I am wondering, how to know if the built-in parameters of a list are Type parameters, Instance Parameters, Family Parameters, Global Parameters, Shared Parameters?
I am able to get the built-in parameters but I do not know where they sit on elements.
Sean Page, 2021
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
clr.AddReference('System')
from System.Collections.Generic import List
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
#Preparing input from dynamo to revit
element = UnwrapElement(IN[0])
#Do some action in a Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
bindings = doc.ParameterBindings
defs = []
inst = []
types = []
it = bindings.ForwardIterator()
while(it.MoveNext()):
d = it.Key
b = it.Current
defs.append(d)
if b.GetType() == InstanceBinding:
inst.append("Instance")
else:
inst.append("Type")
#if doc.GetElement(d.Id) is SharedParameterElement:
# types.append("Shared")
#else:
# types.append("Project")
TransactionManager.Instance.TransactionTaskDone()
OUT = defs,inst,types
Hello
if we only refer to the BuiltInParameter I don’t think we can easily determine the type of each parameter from the enumeration (maybe with a filter and FilteredElementCollector)
for example
BuiltInParameter.OMNICLASS_DESCRIPTION → Family
my real intention is to get all existing Revit parameters sorted and grouped by type, instance. I am annoyed that in any new Revit version that can change and I do not know what is new to compare.