# Prespective UDT and Bindings

**URL:** <https://forum.inductiveautomation.com/t/prespective-udt-and-bindings/103735>\
**Category:** Ignition\
**Tags:** ignition81, vision, perspective\
**Created:** [March 15, 2025, 2:25am UTC](https://forum.inductiveautomation.com/t/prespective-udt-and-bindings/103735 "2025-03-15T02:25:02Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![Chris\_Bingham](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Chris\_Bingham](https://forum.inductiveautomation.com/u/Chris_Bingham)\
**Post date:** [March 15, 2025, 4:02pm UTC](https://forum.inductiveautomation.com/t/prespective-udt-and-bindings/103735/4 "2025-03-15T16:02:19Z")

</div>

I think it would be worth rearchitecting per @nminchin's recommendation:

> [@nminchin](#):
>
> Instead you should pass the path to the UDT instance to the object and then use indirect tag bindings to read the individual tags.

With this method, you pass in a **single** parameter, which is a string containing the tag path to your UDT instance, and then you create indirect bindings inside of your view based on that single input parameter.  
There are several examples scattered throughout this forum. For convenience, here's a link to mine from the other day:

> [@Issue with Dynamic Popup and Custom Properties](https://forum.inductiveautomation.com/t/issue-with-dynamic-popup-and-custom-properties/103452/9):
>
> This looks like you are writing to the parameters which contain your tag paths, not writing to the tags themselves...? If these are considered to be input parameters - which contain the tag paths (as a string), I would never write back to them. After you click a button to write values to overwrite the tag paths, you are losing any reference back to the actual tags, which might be why your screen displays errors on each of those tags. To keep things simple & straightforward, I would update your…

This input parameter can be configured quickly in your dropConfig of the widget (embedded view) that you are creating. Something resembling:

> **Example dropConfig:**
>
> ```python
> {
> "udts": [
> {
> "type": "Your/UDT_Type/Here",
> "param": "udtPath",
> "action": "path"
> }
> ],
> "dataTypes": []
> }
> 
> ```

Under params of that same view, you'll need to create an input param called `udtPath` (or, match the value of 'param' in example dropConfig code above). Then, create a few **view.custom** properties which bind to actual tags (and UDT parameters) via indirect tag bindings - only bring in the data that you need, not the entire UDT.

---

_[View the full topic](https://forum.inductiveautomation.com/t/prespective-udt-and-bindings/103735)._
