To UDT or not to UDT. That is the question

  • at a glance, it’s not possible to see by looking at a component’s properties which UDT instance has been bound to a UDT type property. E.g. in the screenshot below, I have no idea which Tower UDT is bound, I have to click on the binding to find out.
    It’s also far slower to populate template parameters than simply modifying a parameter string value. I tend to use 2 parameters: DeviceParentPath and DeviceName, then combine these together in an internal parameter DeviceTagPath, which also aids in speed of populating values

  • It’s not possible (as far as I know) to pass UDT instances in using a dataset to the template repeater/canvas. (This alone stops me from using them altogether).

  • It looks like they’ve become less restrictive in v8 in terms of accepting other similar UDT types, but that was always a big turn off for me where if a template had a UDT type parameter assigned, it would accept that UDT type and that only.

  • In v7 I also found using UDT types had performance issues with large numbers of templates on the page, however as I understand it this has been significantly improved in 8 (and in fact may even be more efficient now than the tag path method)

2 Likes