# Deciphering a key associated with property overrides

**URL:** <https://forum.inductiveautomation.com/t/deciphering-a-key-associated-with-property-overrides/16567>\
**Category:** Ignition\
**Created:** [January 11, 2018, 9:01pm UTC](https://forum.inductiveautomation.com/t/deciphering-a-key-associated-with-property-overrides/16567 "2018-01-11T21:01:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mrogers](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mrogers/32/4110_2.png) [@mrogers](https://forum.inductiveautomation.com/u/mrogers)\
**Post date:** [January 11, 2018, 9:01pm UTC](https://forum.inductiveautomation.com/t/deciphering-a-key-associated-with-property-overrides/16567/1 "2018-01-11T21:01:18Z")

</div>

I’m trying to dig down on the overrides of a list of UDT instances to get their overrides and have them in at least a semi-readable format. I have some messy code that gets a list of the OverrideMap objects for each instance. I’m trying to get some sort of path for each of these - so far all I can find is a keyset (something like ‘42d48838-e9d8-4aa4-adce-c3c532da94dd’) and occasionally a meaningful tag name will be in the value as a part of something like an ExtendedPropertySet.

Anyone know how I can get something like the path for each override?

Here’s the portion of my code I have so far that gathers all this information. Not the most readable thing but works so far.

```auto
overrides = [[x for x in z if str(x[1]) <> "{}"] for z in 
				[ zip(o.keySet(), o.values()) for o in 
					[t.value for t in system.tag.readAll([p + ".PropertyOverrides" for p in tagSet])]] ]

```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [January 11, 2018, 10:08pm UTC](https://forum.inductiveautomation.com/t/deciphering-a-key-associated-with-property-overrides/16567/2 "2018-01-11T22:08:14Z")

</div>

I don’t know off the top of my head how to reverse from a UID into an instance/member item, but you _can_ clean up the code a bit thanks to Jython’s automagic iteration:

```auto
v = system.tag.read("UDT Instance.PropertyOverrides").value

for key in v:
	props = v.getOrCreate(key)
	for prop in props.getProperties():
		print key, prop, props.get(prop)

```

---

<div class="post-metadata">

**Author:** ![mrogers](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mrogers/32/4110_2.png) [@mrogers](https://forum.inductiveautomation.com/u/mrogers)\
**Post date:** [January 11, 2018, 10:41pm UTC](https://forum.inductiveautomation.com/t/deciphering-a-key-associated-with-property-overrides/16567/3 "2018-01-11T22:41:07Z")

</div>

That helps a lot! Much more readable now at least.

---

<div class="post-metadata">

**Author:** ![mrogers](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mrogers/32/4110_2.png) [@mrogers](https://forum.inductiveautomation.com/u/mrogers)\
**Post date:** [January 15, 2018, 9:48pm UTC](https://forum.inductiveautomation.com/t/deciphering-a-key-associated-with-property-overrides/16567/4 "2018-01-15T21:48:45Z")

</div>

I have a workable solution, not my favorite but it does the job for my purpose. I noticed the “UDTMemberUID” property in the Tag Attributes page. Sure enough, there is one of these for each item in a UDT and they are consistent across instances. So I grab one, use browseTags() and collect the UDTMemberUID for each then convert using that.

---

<div class="post-metadata">

**Author:** ![mrogers](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mrogers/32/4110_2.png) [@mrogers](https://forum.inductiveautomation.com/u/mrogers)\
**Post date:** [January 15, 2018, 11:07pm UTC](https://forum.inductiveautomation.com/t/deciphering-a-key-associated-with-property-overrides/16567/5 "2018-01-15T23:07:59Z")

</div>

I’m wondering if there is any way to read the values from the UDT definitions themselves - right now, I have to actually find a UDT instance to try and get the UIDs. I’d like to be a bit more abstract here if I can, and just get them straight from the definition. I know that they’re prefaced by “_types_”, and I’ve used browseTags to actually find them all, but using read on them just gives a null value on any member of that UDT. Is it possible to do this?
