# Access custom parameters of UDT type

**URL:** <https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [April 29, 2022, 9:08pm UTC](https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075 "2022-04-29T21:08:41Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![david.rigby](https://avatars.discourse-cdn.com/v4/letter/d/5f9b8f/32.png) [@david.rigby](https://forum.inductiveautomation.com/u/david.rigby)\
**Post date:** [April 29, 2022, 9:08pm UTC](https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075/1 "2022-04-29T21:08:41Z")

</div>

Hi All.

Windows Server 2019 - Ignition 8.1.15

I have a UDT with a bunch of parameters and OPC tags.  
I have defined custom properties at the UDT structure layer and the tag layer

The custom properties make my parameters available to my templates and pop pages.

Anyway, the problem.  
At the tag layer I can read the properties (including custom) no problem,  
With the structure layer I can read the properties (including custom) - however, the custom properties present the binding description and not the supplied parameter information.

 ![getparamissue](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/2/029282b567691f9d3746d4d3cc39b205414c6597.png)

Am I missing something here? I can add a memory tag for now to get by but would prefer to go the parameter path.

Regards Dave

---

<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:** [April 29, 2022, 10:48pm UTC](https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075/2 "2022-04-29T22:48:31Z")

</div>

You can’t bind tag properties to anything but udt parameters

---

<div class="post-metadata">

**Author:** ![david.rigby](https://avatars.discourse-cdn.com/v4/letter/d/5f9b8f/32.png) [@david.rigby](https://forum.inductiveautomation.com/u/david.rigby)\
**Post date:** [April 29, 2022, 11:47pm UTC](https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075/3 "2022-04-29T23:47:22Z")

</div>

Thanks Nick.

So why am I allowed to create custom parameters at the udt level? and why does it let me bind them to parameters if the functionality doesn’t work?!??

 ![getparamissue2](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/4/84b4d8fdf42ad4ca994322e34405633094ca3530.png)

Regards  
Dave

---

<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:** [April 30, 2022, 1:36am UTC](https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075/4 "2022-04-30T01:36:01Z")

</div>

Actually I was on my phone before and quickly replied and missed a part of your screenshot, i’ll get back to that, but i’ve tested and this works for me:

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

I created a new UDT with a single UDT param `param1` and a single custom property `custom1` which I bound to `{param1`}. I created an instance and set `param1` to 4, and then bound a Label to `New Instance.custom1` which shows 4 in the Label.

Back to the other thing.

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

Don’t do this. You should use RunScript very sparingly and cautiously (e.g. never use it to call functions that request stuff from the gateway like system.alarm.queryStatus or system.tag.read\*)

For tag bindings such as this, use a Tag binding.

Other things to be cautious of are overusing script transforms. If you can use an expression, then use that as they’re faster and more efficient. Script transforms all run on the gateway so the more you have and the more clients you have, the more work the gateway has to do.

---

<div class="post-metadata">

**Author:** ![david.rigby](https://avatars.discourse-cdn.com/v4/letter/d/5f9b8f/32.png) [@david.rigby](https://forum.inductiveautomation.com/u/david.rigby)\
**Post date:** [April 30, 2022, 2:00am UTC](https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075/5 "2022-04-30T02:00:39Z")

</div>

Thanks Nick.

I never even thought to use an indirect tag in my template and directly access the parameters (the udt instance of the template doesnt expose the parameters - thats why i went with custom properties)… learn something new every day.

Duly noted about the runScript… I notice it heavily used in the adHoc Trend from ignition exchange and didnt think anything of it… Luckily your insight has removed any need for me to do this now inmy templates

Regards  
Dave

---

<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:** [April 30, 2022, 2:27am UTC](https://forum.inductiveautomation.com/t/access-custom-parameters-of-udt-type/59075/6 "2022-04-30T02:27:59Z")

</div>

You should be able to ref udt params using  
`{path/to/udtinstance/Parameters.param1}`. These should show up in the tag browser as well
