# Keynote from element PYTHON

**URL:** <https://forum.dynamobim.com/t/keynote-from-element-python/73467>\
**Category:** Developers\
**Tags:** python\
**Created:** [February 18, 2022, 4:29am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467 "2022-02-18T04:29:21Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![antoniocanerosan](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/antoniocanerosan/32/131219_2.png) [@antoniocanerosan](https://forum.dynamobim.com/u/antoniocanerosan)\
**Post date:** [February 18, 2022, 4:29am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/1 "2022-02-18T04:29:21Z")

</div>

Hi everyone!

Can you help me to get parameter values from BuiltIn Parameters in PYTHON. I know how to get Shared Parameters only…

```auto
import clr

clr.AddReference("RevitAPI")
clr.AddReference("RevitServices")

import Autodesk
import RevitServices

from Autodesk.Revit.DB import *
from RevitServices.Persistence import DocumentManager

doc = DocumentManager.Instance.CurrentDBDocument

collector = FilteredElementCollector(doc)
element = collector.OfCategory(BuiltInCategory.OST_Casework).ToElements()

out = []
for i in element:
    for param in i.Parameters:
        if param.IsShared and param.Definition.Name == 'CATEGORY':
            paramValue = i.get_Parameter(param.GUID)
            out.append(paramValue.AsString())   
         
OUT = out

```

---

<div class="post-metadata">

**Author:** ![c.poupin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/c.poupin/32/89152_2.png) [@c.poupin](https://forum.dynamobim.com/u/c.poupin)\
**Post date:** [February 18, 2022, 6:42am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/2 "2022-02-18T06:42:59Z")

</div>

Hi,  
~~Use this property~~  
~~[IsShared](https://www.revitapidocs.com/2021.1/c1da6ced-7423-46a7-1c53-07c376987d17.htm)~~

_[EDIT]_

---

<div class="post-metadata">

**Author:** ![antoniocanerosan](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/antoniocanerosan/32/131219_2.png) [@antoniocanerosan](https://forum.dynamobim.com/u/antoniocanerosan)\
**Post date:** [February 18, 2022, 6:51am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/3 "2022-02-18T06:51:41Z")

</div>

Hi c.poupin,

Would you mind providing me with an example using the above code?

Cheers,

---

<div class="post-metadata">

**Author:** ![c.poupin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/c.poupin/32/89152_2.png) [@c.poupin](https://forum.dynamobim.com/u/c.poupin)\
**Post date:** [February 18, 2022, 11:30am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/4 "2022-02-18T11:30:15Z")

</div>

Oops, I answered too quickly  
an example to get only BuittInParameter(s)

```auto
import clr

clr.AddReference("RevitAPI")
clr.AddReference("RevitServices")

import Autodesk
import RevitServices

from Autodesk.Revit.DB import *
from RevitServices.Persistence import DocumentManager

doc = DocumentManager.Instance.CurrentDBDocument

collector = FilteredElementCollector(doc)
element = UnwrapElement(IN[0])

myInternalParameters = []

for param in element.Parameters:
    paradef = param.Definition
    if not param.IsShared and isinstance(paradef, InternalDefinition):
    	if paradef.BuiltInParameter != BuiltInParameter.INVALID:
        	myInternalParameters.append([param.Definition.Name, paradef.BuiltInParameter, param])

         
OUT = myInternalParameters

```

---

<div class="post-metadata">

**Author:** ![antoniocanerosan](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/antoniocanerosan/32/131219_2.png) [@antoniocanerosan](https://forum.dynamobim.com/u/antoniocanerosan)\
**Post date:** [February 18, 2022, 9:54pm UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/5 "2022-02-18T21:54:50Z")

</div>

Hi @c.poupin

Thanks for that!

Probably a simple question. I was after the values. Is it possible to add the parameter value within your output list?

Also, could it be applied to multiple elements?

Thank you!

---

<div class="post-metadata">

**Author:** ![antoniocanerosan](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/antoniocanerosan/32/131219_2.png) [@antoniocanerosan](https://forum.dynamobim.com/u/antoniocanerosan)\
**Post date:** [February 21, 2022, 12:36am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/6 "2022-02-21T00:36:22Z")

</div>

Hi @c.poupin

I think I found a way to get the element value:

```auto
elementname = element.get_Parameter(BuiltInParameter.KEYNOTE_PARAM)

parameterstoragetype = elementname.StorageType

paramvalue = elementname.AsString()

```

Can you please help to get a list of all element values?

```auto

import clr

clr.AddReference("RevitAPI")
clr.AddReference("RevitServices")

import Autodesk
import RevitServices

from Autodesk.Revit.DB import *
from RevitServices.Persistence import DocumentManager

doc = DocumentManager.Instance.CurrentDBDocument

collector = FilteredElementCollector(doc)
element = UnwrapElement(IN[0])

myInternalParameters = []
        	
elementname = element.get_Parameter(BuiltInParameter.KEYNOTE_PARAM)

parameterstoragetype = elementname.StorageType
paramvalue = elementname.AsString()

OUT = elementname, paramvalue, parameterstoragetype

```

thanks

---

<div class="post-metadata">

**Author:** ![c.poupin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/c.poupin/32/89152_2.png) [@c.poupin](https://forum.dynamobim.com/u/c.poupin)\
**Post date:** [February 21, 2022, 11:09am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/7 "2022-02-21T11:09:03Z")

</div>

here an example

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/6/a/6a10d1ae4175f38d6cdb514731c901dc4134cb52.png)

```auto

import clr

clr.AddReference("RevitAPI")
clr.AddReference("RevitServices")

import Autodesk
import RevitServices

from Autodesk.Revit.DB import *
from RevitServices.Persistence import DocumentManager

doc = DocumentManager.Instance.CurrentDBDocument

collector = FilteredElementCollector(doc)
toList = lambda x : x if hasattr(x, ' __iter__') else [x]
#Preparing input from dynamo to revit
lstelems = toList(UnwrapElement(IN[0]))

myInternalParameters = []
for element in lstelems:
	for param in element.Parameters:
		paradef = param.Definition
		if not param.IsShared and isinstance(paradef, InternalDefinition):
			if paradef.BuiltInParameter == BuiltInParameter.KEYNOTE_PARAM :
				elementname = element.get_Parameter(BuiltInParameter.KEYNOTE_PARAM)
				paramvalue = elementname.AsString()
				parameterstoragetype = elementname.StorageType
				myInternalParameters.append([param.Definition.Name, paramvalue, parameterstoragetype])

OUT = myInternalParameters

```

---

<div class="post-metadata">

**Author:** ![antoniocanerosan](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/antoniocanerosan/32/131219_2.png) [@antoniocanerosan](https://forum.dynamobim.com/u/antoniocanerosan)\
**Post date:** [February 21, 2022, 9:02pm UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/8 "2022-02-21T21:02:17Z")

</div>

Merci beaucoup @c.poupin!

Cela a bien fonctionné !

---

<div class="post-metadata">

**Author:** ![antoniocanerosan](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/antoniocanerosan/32/131219_2.png) [@antoniocanerosan](https://forum.dynamobim.com/u/antoniocanerosan)\
**Post date:** [February 22, 2022, 5:21am UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/9 "2022-02-22T05:21:46Z")

</div>

Hi @c.poupin

Hopefully quick question. If the parameter is an instance Built In parameter (i.e: Room number, level, etc…) how would you approach it?

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![c.poupin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/c.poupin/32/89152_2.png) [@c.poupin](https://forum.dynamobim.com/u/c.poupin)\
**Post date:** [February 22, 2022, 2:34pm UTC](https://forum.dynamobim.com/t/keynote-from-element-python/73467/10 "2022-02-22T14:34:22Z")

</div>

Here an example

```auto

# get Parameter Type
param_type = element_type.get_Parameter(BuiltInParameter.MY_BUILTIN_NAME)
# get Parameter Instance
param_instance = element_instance.get_Parameter(BuiltInParameter.MY_BUILTIN_NAME)

```
