# In an empty Model, how to list "BuiltIn parameters" of all "BuiltIn categories" of revit

**URL:** <https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121>\
**Category:** Revit\
**Created:** [June 27, 2018, 7:31am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121 "2018-06-27T07:31:12Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![EiPM\_Xavier](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@EiPM\_Xavier](https://forum.dynamobim.com/u/EiPM_Xavier)\
**Post date:** [June 27, 2018, 7:31am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/1 "2018-06-27T07:31:12Z")

</div>

Hi all,

In an empty model (revit file, without nothing drawn), we know how to extract lists of “BuiltIn Categories” and “Builtin Parameters” separately, using the clockwork nodes.

 ![Snap1](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/d/5/d50729ecafc5b2b5d647c3a50e02a092ee1a1c52.png)

But in an empty model, how to list all “BuiltIn parameters” of every “BuiltIn category”?

We know how to do it in a model with elements drawed (walls, columns, etc…), and we can extrat a list from those elements, listing his parameters and categories.

But we need to do it in an empty model (revit file, without nothing drawn), and we need to list all revit “Builtin parameters” of every “Builtin Categories”, without to need to draw an element of every category.

Is it possible?

Best regards,  
Xavier

---

<div class="post-metadata">

**Author:** ![Jonathan.Olesen](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jonathan.olesen/32/44242_2.png) [@Jonathan.Olesen](https://forum.dynamobim.com/u/Jonathan.Olesen)\
**Post date:** [June 27, 2018, 7:50am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/2 "2018-06-27T07:50:23Z")

</div>

So what you’re in fact after is the parameters of each category in a list?

As the “BuiltInParameters” you are pulling is all the available parameters in the document?

It might be something like this you’re after:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/4/8/4808a1de51ebb0fd7048d5c52572daaa04225dfd.png)

---

<div class="post-metadata">

**Author:** ![EiPM\_Xavier](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@EiPM\_Xavier](https://forum.dynamobim.com/u/EiPM_Xavier)\
**Post date:** [June 27, 2018, 8:23am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/3 "2018-06-27T08:23:19Z")

</div>

Hi Jonathan,

First of all, thanks for your answer. I just test your dynamo, it’s interesting… but it doesn’t works in an empty model (a revit file, without nothing drawn: no walls, no columns, nothing).

The ouput list from “Document.ProjectParameterByCategory” is empty:

 ![Snap2](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/9/3/932cefad80962260dc883dc1cd20473f4b838736.png)

As far as we know, the “Document.BuiltInParameters” node of clockwork, lists the default parameters of the revit api, regardless of whether there is something drawn or not drawn, in the rvt file.

---

<div class="post-metadata">

**Author:** ![m.rijsmus](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@m.rijsmus](https://forum.dynamobim.com/u/m.rijsmus)\
**Post date:** [June 27, 2018, 8:26am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/4 "2018-06-27T08:26:02Z")

</div>

Hi

This might be of use

> **[PUBLIC: Revit Category Guide](https://docs.google.com/spreadsheets/d/1uNa77XYLjeN-1c63gsX6C5D5Pvn_3ZB4B0QMgPeloTw/edit?pli=1#gid=868466927)**
>
> Category Guide
> 
> Read this comment, Please feel free to edit!, Other Resources:, http:// revit. autodesk. com/ Library/ RMCSG/ Revit\_Model\_Content\_Style\_Guide\_v2\_1. zip, http:// www. revitforum. org/ architecture-family-creation/ 601-family-matrix-2....

---

<div class="post-metadata">

**Author:** ![EiPM\_Xavier](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@EiPM\_Xavier](https://forum.dynamobim.com/u/EiPM_Xavier)\
**Post date:** [June 27, 2018, 8:32am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/5 "2018-06-27T08:32:32Z")

</div>

Hi m.rijsmus,

Thanks for your answer. We know this list, it’s very interesting. But some of his sheets have incomplete lists, and it’s not useful for us. We need to query those lists, from revit api directly…

Thanks and best regards,  
Xavier

---

<div class="post-metadata">

**Author:** ![awilliams](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/awilliams/32/114496_2.png) [@awilliams](https://forum.dynamobim.com/u/awilliams)\
**Post date:** [June 28, 2018, 4:07pm UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/6 "2018-06-28T16:07:55Z")

</div>

@EiPM_Xavier If I’m understanding correctly you are looking to get the BuiltInParameters for each BuiltInCategory on an empty model… I believe the [GetFilterableParametersInCommon()](http://www.revitapidocs.com/2018.1/7ea624c7-2c0d-c9bb-3b2c-1ac798cf6606.htm) method does the trick. I took a swing at a Python script and it likely has a lot of room for improvement but it appears to be providing the list you are seeking:

 ![BicBips](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/0/5/05690970dc83bf52b88ef5d7474c5187688d567c.png)

```
import clr
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
import System
from System.Collections.Generic import List
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

builtInCats = System.Enum.GetValues(BuiltInCategory)

def getBips(bic):
	bic = [ElementId(bic)]
	catlist = List[ElementId](bic)
	paramUtils = Autodesk.Revit.DB.ParameterFilterUtilities
	paramIds = paramUtils.GetFilterableParametersInCommon(doc,catlist)
	builtInParams = System.Enum.GetValues(BuiltInParameter)
	bipIds = []
	for bip in builtInParams:
		bipIds.append(ElementId(bip))
	bipDict = dict(zip(bipIds,builtInParams))
	bips = [bipDict.get(pId, None) for pId in paramIds]
	if bips == []:
		bips = [None]
	return bips

OUT = zip(builtInCats, map(getBips, builtInCats))

```

Here is the output Excel file, but it could use some formatting help since the lists are rather large: [BuiltInCategoryBIPs.xlsx](https://forum.dynamobim.com/uploads/short-url/3J40AAUjnRbhAKGQFVFgt8bBtEk.xlsx) (77.9 KB)

I believe this script would fail on a model that has additional project parameters (they will just return null because of how it is written). It would need to be adjusted to return the project parameters by their IDs, right now it will only find BuiltInParameters by their IDs.

Hope this helps!

---

<div class="post-metadata">

**Author:** ![Jonathan.Olesen](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jonathan.olesen/32/44242_2.png) [@Jonathan.Olesen](https://forum.dynamobim.com/u/Jonathan.Olesen)\
**Post date:** [June 29, 2018, 8:57am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/7 "2018-06-29T08:57:47Z")

</div>

In addition to Amy’s great script I’ll just add links to the Revit API guides actually listing the BuiltInCategories and Parameters.

Categories:  
[http://www.revitapidocs.com/2018.1/ba1c5b30-242f-5fdc-8ea9-ec3b61e6e722.htm](http://www.revitapidocs.com/2018.1/ba1c5b30-242f-5fdc-8ea9-ec3b61e6e722.htm)  
Parameters:  
[http://www.revitapidocs.com/2018.1/fb011c91-be7e-f737-28c7-3f1e1917a0e0.htm](http://www.revitapidocs.com/2018.1/fb011c91-be7e-f737-28c7-3f1e1917a0e0.htm)

Pulling only these using Python would look something like this:

```
import clr
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
import System
from System.Collections.Generic import List
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

builtInCats = System.Enum.GetValues(BuiltInCategory)
builtInParams = System.Enum.GetValues(BuiltInParameter)
OUT = builtInCats,builtInParams
```

---

<div class="post-metadata">

**Author:** ![EiPM\_Xavier](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@EiPM\_Xavier](https://forum.dynamobim.com/u/EiPM_Xavier)\
**Post date:** [June 29, 2018, 4:52pm UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/8 "2018-06-29T16:52:39Z")

</div>

Superb!  
Thanks a lot Amy and Jonathan for yours answers!

I will test it.  
Best regards,  
Xavier

---

<div class="post-metadata">

**Author:** ![Vikram\_Subbaiah](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/vikram_subbaiah/32/50797_2.png) [@Vikram\_Subbaiah](https://forum.dynamobim.com/u/Vikram_Subbaiah)\
**Post date:** [July 1, 2018, 6:28pm UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/9 "2018-07-01T18:28:31Z")

</div>

@EiPM_Xavier See if this OOTB approach works for you…

 ![elementParameters](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/7/a/7a679803f651a25bca2fec112a224cc7debf8dce.png)  
[parameterNames.dyn](https://forum.dynamobim.com/uploads/short-url/e7cYexTirOLnkxZtLQLUWhU0uSK.dyn) (15.8 KB)

---

<div class="post-metadata">

**Author:** ![EiPM\_Xavier](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@EiPM\_Xavier](https://forum.dynamobim.com/u/EiPM_Xavier)\
**Post date:** [July 2, 2018, 7:27am UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/10 "2018-07-02T07:27:34Z")

</div>

Very interesting approach Vikram, It’s good a script, thanks!  
Although in “code block” shows a warning, the dyn file works (I run this dyn in an empty revit file)

I show this warning:

 ![Snap2](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/1/6/16e61ae739b88087b5621cb69014a67eda1e800b.png)

Best Regards,  
Xavier

---

<div class="post-metadata">

**Author:** ![RubenVivancos](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/rubenvivancos/32/185795_2.png) [@RubenVivancos](https://forum.dynamobim.com/u/RubenVivancos)\
**Post date:** [March 12, 2021, 5:13pm UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/11 "2021-03-12T17:13:17Z")

</div>

> [@Vikram\_Subbaiah](#):
>
> OOTB approach

hello @Vikram_Subbaiah how to know if the built-in parameters of a list are Type parameters, Instance Parameters, Family Parameters, Global Parameters, Shared Parameters

---

<div class="post-metadata">

**Author:** ![ruben.romero](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/ruben.romero/32/115842_2.png) [@ruben.romero](https://forum.dynamobim.com/u/ruben.romero)\
**Post date:** [September 8, 2021, 8:42pm UTC](https://forum.dynamobim.com/t/in-an-empty-model-how-to-list-builtin-parameters-of-all-builtin-categories-of-revit/23121/12 "2021-09-08T20:42:31Z")

</div>

> [@awilliams](#):
>
> it will only find BuiltInParameters by their IDs

I really appreciate if the script can give output of a list of builtin parameters as same names that you could read in Revit properties of elements, as this does with **LabelUtils.GetLabelFor(bip)**

```auto
import clr
import System
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.DB import *
import Autodesk

bips = System.Enum.GetValues(BuiltInParameter)
pdata = list()
for bip in bips:
	try:
		pdata.append((bip,ElementId(bip),LabelUtils.GetLabelFor(bip)))
	except:
		pass
OUT = pdata

```
