How to know if Built-in parameters are Type, Instance, Family Parameters

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.

Any idea?

Thanks

See if this will help.

many thanks @SeanP very indeep answer, but majority of people are not coding monsters, python would be amazing

You could start here:

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

Here is a more complete example after a quick search.

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

2 Likes

Many thanks @SeanP, is possible to avoid inputs?

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.

That line isn’t doing anything in the graph. It is iterating all params currently.

I tested the python code you shared, the result is 3 things, that are not a parameter name