# \[IGN-15470\]Is it possible to reset a tag property to default in scripting?

**URL:** <https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [February 9, 2026, 1:33pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849 "2026-02-09T13:33:14Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![JVDM](https://avatars.discourse-cdn.com/v4/letter/j/ac8455/32.png) [@JVDM](https://forum.inductiveautomation.com/u/JVDM)\
**Post date:** [February 9, 2026, 1:33pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/1 "2026-02-09T13:33:14Z")

</div>

I am making a platform for a client, in which tag values get displayed in certain views, based on each tag’s Function, a custom property I added. Users are able to configure each tag’s function in a designated screen.

However, when a property’s value is changed and changed back to default, it is shown as “Overrides Parent Properties”, despite being the same value as default. While testing this new functionality, I used different tags that now all show as ‘Overriden’, while the values are original.

As the title reads; Is it possible to reset the tag property to default, in scripting?

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/7/378e5a1d569917d22ab20253599f124a480d9ae2.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 9, 2026, 2:10pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/2 "2026-02-09T14:10:49Z")

</div>

Have you tried writing a jython `None` to that property?

---

<div class="post-metadata">

**Author:** ![JVDM](https://avatars.discourse-cdn.com/v4/letter/j/ac8455/32.png) [@JVDM](https://forum.inductiveautomation.com/u/JVDM)\
**Post date:** [February 9, 2026, 2:41pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/3 "2026-02-09T14:41:17Z")

</div>

I had not tried that, but I have now. It still shows the Override symbol in the tag browser, and the green circle in the tag editor.

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/7/e7df34f6ec044a66deff76ea2b7e172ec888b9cd.png)

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/3/134f6e80459515720d187ee41ab6c0cfeb0d1dac.png)

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [February 9, 2026, 2:42pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/4 "2026-02-09T14:42:44Z")

</div>

You should be able to read the default value from the UDT definition and then write it? Otherwise, can you read the JSON to find the override, remove it, and then write it back? I haven’t done much with the JSON tag stuff but I know the override information is in there somewhere.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 9, 2026, 2:44pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/5 "2026-02-09T14:44:50Z")

</div>

You may have to use `system.tag.configure()` to write the `None`.

---

<div class="post-metadata">

**Author:** ![JVDM](https://avatars.discourse-cdn.com/v4/letter/j/ac8455/32.png) [@JVDM](https://forum.inductiveautomation.com/u/JVDM)\
**Post date:** [February 9, 2026, 2:49pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/6 "2026-02-09T14:49:48Z")

</div>

I’m sorry, I wasn’t really giving an insight into what I was doing.

```python
config = system.tag.getConfiguration(inputPath, True)
config[0]["_Function"] = 2
system.tag.configure(parentPath, config, 'm')

```

inputPath is the path to the tag containing the \_Function property.

parentpath is inputPath’s parent.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 9, 2026, 3:31pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/7 "2026-02-09T15:31:44Z")

</div>

Whenever you feed the output of `system.tag.getConfiguration()` back into `system.tag.configure()`, you get lots of unexpected overrides.

Construct a list of one configuration dictionary with just the tag name and the props you want to override, and then use `system.tag.configure()` with merge mode.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [February 10, 2026, 12:40am UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/8 "2026-02-10T00:40:29Z")

</div>

> [@pturmel](#):
>
> Whenever you feed the output of `system.tag.getConfiguration()` back into `system.tag.configure()`, you get lots of unexpected overrides.

If I may go into this a bit more.

getConfiguration will get the JSON definition of the select tag path. It will contain at a minimum the names and types of the nodes (tags/UDT insts/folders etc) within it, along with every property value that has been configured by the user – these are all essentially overrides to the default values (note that a default value can be overridden to the default value itself). For tags within UDT instances, it will also include the user-set values for their props as well, both from overrides placed on the instance a_s well as those set within the definition_. So if you then go to write this all back to the system, the UDT instance tags will have overrides configured on their tags that were originally only defined in the UDT definition and not at the instance level. This has the effect of essentially decoupling that config from the UDT definition, as those values are now overridden at the instance. This is the danger of using getConfiguration with configure as then changes to those props on the definition will no longer propagate to the instances.

The minimum that you need to supply to the configure function is the name of the nodes you want to affect (and the structure to them). With the merge option, you can then add the props that you want to modify into the node/tag dicts and it will only set prop overrides for those props. Be sure to set it to merge though otherwise you will clear all other config on those tags

---

<div class="post-metadata">

**Author:** ![JVDM](https://avatars.discourse-cdn.com/v4/letter/j/ac8455/32.png) [@JVDM](https://forum.inductiveautomation.com/u/JVDM)\
**Post date:** [February 10, 2026, 6:26am UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/9 "2026-02-10T06:26:38Z")

</div>

Wow, okay. Since I couldn’t find any other thread on the forum about this subject, I assumed nobody had the same issue. I’m positively surprised that I’m now learning about a function of which I initially thought “Yeah lets give this a try” (system.tag.configure())

> [@pturmel](#):
>
> Whenever you feed the output of `system.tag.getConfiguration()` back into `system.tag.configure()`, you get lots of unexpected overrides.

I had noticed this during my quick tests yesterday, but wasn’t sure whether I was hallucinating or ‘random’ properties were being shown as overriden without changing value. Thank you for confirming I’m not going crazy.

> [@nminchin](#):
>
> The minimum that you need to supply to the configure function is the name of the nodes you want to affect (and the structure to them).

But I can’t get them through `system.tag.getConfiguration()`, right? Since that would cause the same issue, just on a smaller scale?

I’ll be trying some things out and report back later this week. Thank you, gentlemen.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 10, 2026, 2:42pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/10 "2026-02-10T14:42:51Z")

</div>

When using merge mode, you **only** have to supply the properties you wish to **change** (and the name, to apply to the correct tag). `system.tag.getConfiguration()` gives you everything that is there, including default values for things that aren't overridden. If you don't want to change these properties, don't feed them back into `system.tag.configure()`.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [February 10, 2026, 2:51pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/11 "2026-02-10T14:51:06Z")

</div>

Following on from Phil, you c_an_ use `system.tag.getConfiguration` to pull the tag structure itself if you don't know it or need it to be dynamic, but you should first be cleansing every tag that is returned by removing the props other than the name and tags objects, depending what parts of the returned structure you actually need. Then you can add the props and their values that you want to change. You could technically also use the other tag browse functions like tag.browse and tag.query (memory’s off on that one - I havent been at work for a while, on long service leave), however with these you will need to create the folder structures from the tagpaths yourself which is doable, but more effort.

Note also, that configure is only needed to be used to set read only configuration or to add binding types to prop values (and some other situations like to remove prop values). If you just want to write to read write prop values (ie set prop value overrides) or write to the value of tags, then you can and should use tag.write

---

<div class="post-metadata">

**Author:** ![JVDM](https://avatars.discourse-cdn.com/v4/letter/j/ac8455/32.png) [@JVDM](https://forum.inductiveautomation.com/u/JVDM)\
**Post date:** [February 11, 2026, 8:54am UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/12 "2026-02-11T08:54:22Z")

</div>

I do feel like I’m learning a lot about how `system.tag.configure()` works, but I don’t think it’s the solution to my original answer.

I really hope I’m not missing an important detail one of you already shared in this thread. I’m really trying to understand, but I feel like I’m missing something.

> [@nminchin](#):
>
> If you just want to write to read write prop values (ie set prop value overrides) or write to the value of tags, then you can and should use tag.write

When initialised, the \_Function property has a value of 2:

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/8/98ee49bf968e37f511a8cc0feaf3efd63d999389.png)

Originally, I changed the value through `system.tag.writeBlocking([path],[value])` This, logically, would show the value as overriden.

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/d/3d5c82e8b22b12170b70e6e7c673e4931a05e221.png)

If I would then change it back to 2, through the same function, it would still show overriden.

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/8/f8f6e7ff850d6f6fe2108bd29990c97fbcf8d9a6.png)

> [@pturmel](#):
>
> You may have to use `system.tag.configure()` to write the `None`.

What I then tried, but did in the incorrect way, was using `system.tag.configure()`

The value is currently still showing Overriden.

Writing None changes the value to null:

```python
params = [{'_Function': None, 'name': 'tagName'}]
system.tag.configure(parentPath, params, 'm')

```

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/6/a63d256fe79b6f5f334c92543f141bea3b68c532.png)

Writing 2 directly after, sets the value correctly, but still shows Overriden:

```python
params = [{'_Function': 2, 'name': 'tagName'}]
system.tag.configure(parentPath, params, 'm')

```

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/a/7a43add3492c9d51e12a3d679b89c756d833273c.png)

Thank you again for your time. I really appreciate your input.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [February 11, 2026, 1:54pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/13 "2026-02-11T13:54:07Z")

</div>

It’s still showing overridden when you set it to 2 because it’s still a value that exists in the instance of it. You need to remove the value prop altogether from the UDT instance json. In this case, it’s a lot more difficult a task programmatically, since you need to get the _local_ json definition and not the full definition. The local definition being exactly what you would get from right clicking on the UDT instance and copying the JSON. This is the exact reason I requested the getLocalConfiguration in [Paul’s extensions module](https://forum.inductiveautomation.com/t/ignition-extensions-convenience-utilities-for-advanced-users/64615)

Do you actually want to do this programmatically, or are you just trying to get it done using any way?

To do it manually, you can right click on the UDT instance, copy json. Paste into notepad, find your tag and remove the value prop. Save the file as a json file, and then reimport it back into the designer using overwrite

---

<div class="post-metadata">

**Author:** ![JVDM](https://avatars.discourse-cdn.com/v4/letter/j/ac8455/32.png) [@JVDM](https://forum.inductiveautomation.com/u/JVDM)\
**Post date:** [February 11, 2026, 2:20pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/14 "2026-02-11T14:20:28Z")

</div>

> [@nminchin](#):
>
> Do you actually want to do this programmatically, or are you just trying to get it done using any way?

My first step in the process was to get it done in any way, to see if it was possible. Step 2 would be to do it programmatically.

Thank you for your clear explaination. It’s like you guys are peeling away Ignition’s software layer by layer, showing me how ignition _really_ works.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 11, 2026, 2:26pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/15 "2026-02-11T14:26:03Z")

</div>

I suspect that you are hitting a corner case because the target property is **custom**. It doesn't have a platform definition or 3rd party module definition that would indicate what the default value is. That it exists in the UDT definition _should_ provide the default for this case, but doesn't. 🤷‍♂️

I suggest you open a support ticket so this can be investigated properly.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [February 11, 2026, 2:27pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/16 "2026-02-11T14:27:38Z")

</div>

> [@amarks](#):
>
> You should be able to read the default value from the UDT definition and then write it? Otherwise, can you read the JSON to find the override, remove it, and then write it back? I haven’t done much with the JSON tag stuff but I know the override information is in there somewhere.

~~I’m going to circle back to this. If you read the entire UDT definition using the path to the UDT definition you get JSON with the default values. Why not read that UDT definition and then pull out the members that you want and write the individual tags to the instance?~~

edit: nevermind, I see that the issue is not getting the default value into the UDT instance but getting rid of the override marker.

---

<div class="post-metadata">

**Author:** ![ggross](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ggross/32/12668_2.png) [@ggross](https://forum.inductiveautomation.com/u/ggross)\
**Post date:** [February 11, 2026, 11:43pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/17 "2026-02-11T23:43:12Z")

</div>

Not that it should be this difficult, but an example of how to make this work is as follows. Use this only as a guideline as it is a VERY basic example of how it can be done:

```python
# Update the provider as needed
provider = 'default'

# Query to find all UDT Members that have overrides
query = {
  "options": {
    "includeUdtMembers": True,
    "includeUdtDefinitions": False
  },
  "condition": {
    "attributes": {
      "values": [
        "override"
      ],
      "requireAll": True
    }
  },
  "returnProperties": [
    "tagQueryOverrides"
  ]
}

results = system.tag.query(provider, query)

# For all items that have overrides
for result in results:
	# Generate a list of all the overrides
	overrides = [item.strip() for item in result['tagQueryOverrides'].split(',')]
	
	# Query again returning the singular tag we are working with ensuring that we are returning overrides in the query
	query1 = {
        "options": {
        "includeUdtMembers": True,
        "includeUdtDefinitions": False
      },
      "condition": {
        "path": result['fullPath'].toStringFull(),
        "attributes": {
          "values": [],
          "requireAll": True
        }
      },
      "returnProperties": overrides
    }
	results1 = system.tag.query(provider, query1)

	# Process the results to construct a dictionary of all the overrides values being returned
	for result1 in results1:
		overrideVals = {'name': result1['name']}
		
		for override in overrides:
			if override == 'value':
				# Special handling is needed for values (and potentially others, including alarms) because a Qualifed Value is returned 
				overrideVals[override] = result1[override].getValue()
			else:
				overrideVals[override] = result1[override]
		# Example of removing a specifc override
		del overrideVals['value']
		
		# Log to show what is being set for the member tag definition
		print('Writing {0} to tag {1}/{2}'.format(overrideVals, result1['fullPath'].getParentPath(), overrideVals['name']))
		
		# Write configuration to the member tag, overwriting the existing definition
		system.tag.configure(result1['fullPath'].getParentPath(), overrideVals, 'o')

```

An internal ticket has been created to try and make something easier to achieve. Let me know if you have any questions.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [February 12, 2026, 2:19am UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/18 "2026-02-12T02:19:57Z")

</div>

> [@ggross](#):
>
> An internal ticket has been created to try and make something easier to achieve

Check @paul-griffith ‘s ignition extensions module as this already has a function getLocalConfigurarion which returns exactly what you get when you right click on a UDT instance and copy the json. Ie you get the basic tag structure and any overridden prop values applied for the instance; you don't get any overridden prop values defined in the UDT definition itself. I’ve always wanted this to be a part of the product rather than within a 3rd party module which doesn’t work on edge. That and the `isAvailable` expression function which is an absolute necessity imo, which checks if a tag is both not disabled and exists – ie the two conditions which might hide a graphical element for a UDT that supports multiple configurations. Without having this in a single function requires a surprisingly difficult and overly complicated expression!

---

<div class="post-metadata">

**Author:** ![JVDM](https://avatars.discourse-cdn.com/v4/letter/j/ac8455/32.png) [@JVDM](https://forum.inductiveautomation.com/u/JVDM)\
**Post date:** [March 6, 2026, 1:33pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/19 "2026-03-06T13:33:44Z")

</div>

Is there something I must do towards this internal ticket? Or just wait and see if/when it has been picked up?

---

<div class="post-metadata">

**Author:** ![Matrix\_Engineering](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/matrix_engineering/32/19781_2.png) [@Matrix\_Engineering](https://forum.inductiveautomation.com/u/Matrix_Engineering)\
**Post date:** [March 6, 2026, 1:50pm UTC](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849/20 "2026-03-06T13:50:22Z")

</div>

If it is logged with support, you will get an automatic email.

You can also keep an eye on the “nightly updates” forum thread specific to your Ignition major version.

[Next page](https://forum.inductiveautomation.com/t/ign-15470-is-it-possible-to-reset-a-tag-property-to-default-in-scripting/113849.md?page=2)
