# Set parameter with

**URL:** <https://forum.dynamobim.com/t/set-parameter-with/77971>\
**Category:** Developers\
**Tags:** python\
**Created:** [June 23, 2022, 8:40pm UTC](https://forum.dynamobim.com/t/set-parameter-with/77971 "2022-06-23T20:40:14Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![yiningparis](https://avatars.discourse-cdn.com/v4/letter/y/e95f7d/32.png) [@yiningparis](https://forum.dynamobim.com/u/yiningparis)\
**Post date:** [June 23, 2022, 8:40pm UTC](https://forum.dynamobim.com/t/set-parameter-with/77971/1 "2022-06-23T20:40:14Z")

</div>

![python](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/2/f/2f24b0f6140721b4e2fc7dea99f5e4c1257b0b00.jpeg)  
Hi,

After creating viewsheet i would to set parameter of drawn by and checked by with python script but i can’t find a good code.

---

<div class="post-metadata">

**Author:** ![Nick\_Boyts](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/nick_boyts/32/76313_2.png) [@Nick\_Boyts](https://forum.dynamobim.com/u/Nick_Boyts)\
**Post date:** [June 23, 2022, 8:57pm UTC](https://forum.dynamobim.com/t/set-parameter-with/77971/2 "2022-06-23T20:57:49Z")

</div>

Are you sure that’s the right method? String parameters just use `Set(string)`. I believe that method is specifically for parameter values represented by string indicators.

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

---

<div class="post-metadata">

**Author:** ![lsartenaer](https://avatars.discourse-cdn.com/v4/letter/l/6a8cbe/32.png) [@lsartenaer](https://forum.dynamobim.com/u/lsartenaer)\
**Post date:** [June 24, 2022, 9:51am UTC](https://forum.dynamobim.com/t/set-parameter-with/77971/3 "2022-06-24T09:51:11Z")

</div>

Hi, as Nick mentioned, you should use the **Set** method.

Here’s a basic “Set parameters” script as example :

```auto
import clr

clr.AddReference('RevitAPI')
import Autodesk
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])
param = IN[1]
values = IN[2]

done=[]
notDone=[]
#Do some action in a Transaction
for e,vList in zip(element,values):
	flag = False
	for p,v in zip(param,vList):
		TransactionManager.Instance.EnsureInTransaction(doc)
		elem_param = e.LookupParameter(p)
		if v == None or v == "":
			flag = True
		else:
			if not elem_param.IsReadOnly:
				elem_param.Set(v)
			else:
				flag = True
		TransactionManager.Instance.TransactionTaskDone()
	if flag:
		notDone.append(e)
	else:
		done.append(e)

OUT = done,notDone

```

---

<div class="post-metadata">

**Author:** ![yiningparis](https://avatars.discourse-cdn.com/v4/letter/y/e95f7d/32.png) [@yiningparis](https://forum.dynamobim.com/u/yiningparis)\
**Post date:** [June 27, 2022, 7:20am UTC](https://forum.dynamobim.com/t/set-parameter-with/77971/4 "2022-06-27T07:20:09Z")

</div>

Thanks

It works, I just discovered drawn by and checked by for viewsheet don’t need the buitInParameter to set value and the LookupParameter method is enought.

Regards
