# UDT parameters writing at runtime (bulk tag editing)

**URL:** <https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952>\
**Category:** Ignition\
**Tags:** ignition79, scripting\
**Created:** [October 3, 2018, 11:45am UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952 "2018-10-03T11:45:17Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andrew\_P](https://avatars.discourse-cdn.com/v4/letter/a/ce73a5/32.png) [@Andrew\_P](https://forum.inductiveautomation.com/u/Andrew_P)\
**Post date:** [October 3, 2018, 11:45am UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/1 "2018-10-03T11:45:17Z")

</div>

Is there any way to programatically change UDT parameters that belong to UDTs within parent UDTs? I have tried system.tag.editTags but i am pretty sure this has a bug for this specific circumstance based on my testing, and another post on this forum, where someone else has the same problem (I am using 7.9.8 which supposedly fixed the problem, but apparently, didn’t). So I am looking for an alternative way. I am able to (partially) read ExtendedProperties to read UDT parameters, and am trying to find a way to reverse this (i.e write extended properties instead of just reading)

---

<div class="post-metadata">

**Author:** ![martinel3746](https://avatars.discourse-cdn.com/v4/letter/m/e0b2c6/32.png) [@martinel3746](https://forum.inductiveautomation.com/u/martinel3746)\
**Post date:** [October 3, 2018, 7:49pm UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/2 "2018-10-03T19:49:12Z")

</div>

Have you considered adding a Memory tag to your UDT to hold the information you need to read and write at run-time?  
I assume that you have expression tags that are using the parameter values but the expressions can be updated to use the value of another tag which is easy to read and write at run-time.

---

<div class="post-metadata">

**Author:** ![Andrew\_P](https://avatars.discourse-cdn.com/v4/letter/a/ce73a5/32.png) [@Andrew\_P](https://forum.inductiveautomation.com/u/Andrew_P)\
**Post date:** [October 3, 2018, 9:35pm UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/3 "2018-10-03T21:35:59Z")

</div>

Thanks for the reply, yes, I have considered this, but i didn’t want to do the rework, as I have a few places where I am using the UDT Parameters within the UDTs which I will need to change to reference them too, in all my UDTs, but i think this might be the only thing I can do

---

<div class="post-metadata">

**Author:** ![martinel3746](https://avatars.discourse-cdn.com/v4/letter/m/e0b2c6/32.png) [@martinel3746](https://forum.inductiveautomation.com/u/martinel3746)\
**Post date:** [October 4, 2018, 2:13pm UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/4 "2018-10-04T14:13:01Z")

</div>

I understand, I overcommitted tag parameters too so… we wait for version 8.

---

<div class="post-metadata">

**Author:** ![chasondeshotel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/chasondeshotel/32/20032_2.png) [@chasondeshotel](https://forum.inductiveautomation.com/u/chasondeshotel)\
**Post date:** [October 26, 2018, 10:40pm UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/5 "2018-10-26T22:40:51Z")

</div>

Yes, it’s possible–here’s how you modify ExtendedProperties. I will say, finding this post was not reassuring while grinding out a solution 😂

```auto
from com.inductiveautomation.ignition.common.config import Property, BasicProperty
from java.lang import String

def writeUDTParameter( tag, key, value ):
	propertiesList = system.tag.read( '%s.ExtendedProperties' % tag ).value
	
	propertiesList.set(
		BasicProperty( key, String )
		, value
	)
	
	system.tag.editTag( tagPath=tag, attributes={ 'ExtendedProperties': propertiesList } )

writeUDTParameter( '[default]\Path\to\tag', 'ParameterName', 'Value' )

```

---

<div class="post-metadata">

**Author:** ![y.parashchuk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/y.parashchuk/32/37781_2.png) [@y.parashchuk](https://forum.inductiveautomation.com/u/y.parashchuk)\
**Post date:** [October 24, 2019, 5:15pm UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/6 "2019-10-24T17:15:44Z")

</div>

thanks

---

<div class="post-metadata">

**Author:** ![JGJohnson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jgjohnson/32/29582_2.png) [@JGJohnson](https://forum.inductiveautomation.com/u/JGJohnson)\
**Post date:** [October 24, 2019, 5:45pm UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/7 "2019-10-24T17:45:12Z")

</div>

We’ve always done it using this method and it works as expected.

```auto
system.tag.editTags(paths, parameters={"paramName": param_new_value})

```

---

<div class="post-metadata">

**Author:** ![y.parashchuk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/y.parashchuk/32/37781_2.png) [@y.parashchuk](https://forum.inductiveautomation.com/u/y.parashchuk)\
**Post date:** [October 24, 2019, 5:58pm UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/8 "2019-10-24T17:58:56Z")

</div>

Yep, i tried this, it works. Thanks for help.

---

<div class="post-metadata">

**Author:** ![edward.fowler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/edward.fowler/32/24179_2.png) [@edward.fowler](https://forum.inductiveautomation.com/u/edward.fowler)\
**Post date:** [October 26, 2022, 3:42am UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/9 "2022-10-26T03:42:22Z")

</div>

system.tag.editTags was deprecated, does anyone know of a method in v8.1.18?

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 26, 2022, 4:36am UTC](https://forum.inductiveautomation.com/t/udt-parameters-writing-at-runtime-bulk-tag-editing/19952/10 "2022-10-26T04:36:32Z")

</div>

> [@edward.fowler](#):
>
> does anyone know of a method in v8.1.18

[system.tag.configure(basePath, tags, collisionPolicy)](https://docs.inductiveautomation.com/display/DOC80/system.tag.configure)
