# How to set check box parameter of an element using python

**URL:** <https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401>\
**Category:** Revit\
**Tags:** python, dynamo\
**Created:** [April 12, 2022, 4:28am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401 "2022-04-12T04:28:31Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![shashank.baganeACM](https://avatars.discourse-cdn.com/v4/letter/s/35a633/32.png) [@shashank.baganeACM](https://forum.dynamobim.com/u/shashank.baganeACM)\
**Post date:** [April 12, 2022, 4:28am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/1 "2022-04-12T04:28:31Z")

</div>

Hi all, I am trying to set the structural parameter check/uncheck of a structural wall element.

Please let me know how to check and uncheck parameter of an element ? somehow I manage to get the parameter details but getting difficulty in setting the parameter like checkbox.

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/f/2/f2d48d7285dd0499c1cb8a32ccd985896725754d.png)

The code goes as below:

```auto
import clr

import sys
sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib')

import System
from System.Collections.Generic import *

clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager 
from RevitServices.Transactions import TransactionManager 

clr.AddReference("RevitAPI")
clr.AddReference("RevitAPIUI")

import Autodesk 
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication 
app = uiapp.Application 
uidoc = uiapp.ActiveUIDocument

def tolist(obj1):
	if hasattr(obj1," __iter__"): return obj1
	else: return [obj1]

#Preparing input from dynamo to revit
ele = UnwrapElement(IN[0])

#Do some action in a Transaction

TransactionManager.Instance.EnsureInTransaction(doc)

floors=FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Floors).WhereElementIsElementType().ToElements()

struct=ele.LookupParameter("Structural")
Getparam=struct.AsInteger()

setstru=Getparam.Set(0)

TransactionManager.Instance.TransactionTaskDone()

OUT = Getparam

```

---

<div class="post-metadata">

**Author:** ![Draxl\_Andreas](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/draxl_andreas/32/145744_2.png) [@Draxl\_Andreas](https://forum.dynamobim.com/u/Draxl_Andreas)\
**Post date:** [April 12, 2022, 7:08am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/2 "2022-04-12T07:08:18Z")

</div>

Hello,

you need a `for loop`to interate thrue your objects.

KR

Andreas

---

<div class="post-metadata">

**Author:** ![shashank.baganeACM](https://avatars.discourse-cdn.com/v4/letter/s/35a633/32.png) [@shashank.baganeACM](https://forum.dynamobim.com/u/shashank.baganeACM)\
**Post date:** [April 12, 2022, 7:08am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/3 "2022-04-12T07:08:53Z")

</div>

Okay Thanks I’ll try

---

<div class="post-metadata">

**Author:** ![Draxl\_Andreas](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/draxl_andreas/32/145744_2.png) [@Draxl\_Andreas](https://forum.dynamobim.com/u/Draxl_Andreas)\
**Post date:** [April 12, 2022, 7:14am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/4 "2022-04-12T07:14:15Z")

</div>

![2022-04-12_09h11_11](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/f/5/f5585b37b9aef1e2602bd85d3a79bb0a08e198aa.png)  
I have trouble with the lookup… where did you get it.

can you not use just a buildin enumeration?

> **[BuiltInCategory Enumeration](https://www.revitapidocs.com/2019/ba1c5b30-242f-5fdc-8ea9-ec3b61e6e722.htm)**
>
> Online Documentation for Autodesk's Revit API: 2015, 2016, 2017, 2017.1, 2018

i am not shure 🙂 … maybe some users are more into it.

---

<div class="post-metadata">

**Author:** ![MartinSpence](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/martinspence/32/25208_2.png) [@MartinSpence](https://forum.dynamobim.com/u/MartinSpence)\
**Post date:** [April 12, 2022, 8:05am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/5 "2022-04-12T08:05:10Z")

</div>

Hi @shashank.baganeACM,

A couple of things in your initial code:  
In your Revit image, you are previewing a wall, but your code says floors. Small detail I guess, since both have the Structural parameter, but just to be consistent 🙂

In your collector, you are using the method `WhereElementIsElementType()` which will only give you types. It needs to be `WhereElementIsNotElementType()`, if you are collecting instances.

Whenever it’s possible to use BuiltInParameters, I’d recommend going with that, since it will provide you with a more stable code:

```auto
import clr

clr.AddReference("RevitAPI")
import Autodesk 
from Autodesk.Revit.DB import *

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager 
from RevitServices.Transactions import TransactionManager 
doc = DocumentManager.Instance.CurrentDBDocument

#Do some action in a Transaction
walls=FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType().ToElements()

output = []

for i in walls:
	struct= i.get_Parameter(BuiltInParameter.WALL_STRUCTURAL_SIGNIFICANT)
	TransactionManager.Instance.EnsureInTransaction(doc)
	setstru=struct.Set(1)
	TransactionManager.Instance.TransactionTaskDone()
	output.append(setstru)
	
OUT = output

```

One last detail: To set a Boolean to True, it’s 1 and not 0 🙂

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

---

<div class="post-metadata">

**Author:** ![MartinSpence](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/martinspence/32/25208_2.png) [@MartinSpence](https://forum.dynamobim.com/u/MartinSpence)\
**Post date:** [April 12, 2022, 8:07am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/6 "2022-04-12T08:07:57Z")

</div>

Use the Snoop Objects tool to find the BIP:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/1/b/1bdfeafad711c1d0952ecfebfa654e32d611a0e0.png)

---

<div class="post-metadata">

**Author:** ![sovitek](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/sovitek/32/116237_2.png) [@sovitek](https://forum.dynamobim.com/u/sovitek)\
**Post date:** [April 12, 2022, 8:18am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/7 "2022-04-12T08:18:59Z")

</div>

Nice @MartinSpence …og ha en god påske 😉

---

<div class="post-metadata">

**Author:** ![MartinSpence](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/martinspence/32/25208_2.png) [@MartinSpence](https://forum.dynamobim.com/u/MartinSpence)\
**Post date:** [April 12, 2022, 8:23am UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/8 "2022-04-12T08:23:19Z")

</div>

Tak Søren, og i lige måde 🙂

---

<div class="post-metadata">

**Author:** ![shashank.baganeACM](https://avatars.discourse-cdn.com/v4/letter/s/35a633/32.png) [@shashank.baganeACM](https://forum.dynamobim.com/u/shashank.baganeACM)\
**Post date:** [April 12, 2022, 2:43pm UTC](https://forum.dynamobim.com/t/how-to-set-check-box-parameter-of-an-element-using-python/75401/9 "2022-04-12T14:43:40Z")

</div>

Thanks @MartinSpence I really appreciate that. It works
