Overlay Opt. Out and isGood()

I have a general template set up to use with a few different UDTs. Some UDTs contain more options than others, so I have the tags bound to internal properties of the template.

Being that some tags don't exist for some UDTs, those bindings have the overlay opt out selected, otherwise I get a bad tag overlay for the template instance.

However, I also wanted to use the isGood() expression function to check if the connection to the tag is good (basically, detect if the tag exists or not) and using that check to toggle visibility of the component that would typically show the value.

What I'm running into is that using the overlay opt out option on the tag binding results in isGood() always returning true.

I'm also using indirection, so I can't use an expression on the tag directly, before applying the overlay opt out.

Is that the intended behavior, and how might I work around that?

I just ran into the same problem this week doing templates. I ended up working around it by making a custom property with an indirect bind to each member's Quality value(some/tag/path.Quality), and then checking that the value was in the known 'good' range (0-255). Tag Quality Reference

This worked for me since I only had at max 5 members, but I could see this becoming cumbersome on complex templates.

AFAIK this is why @nminchin asked me for an isAvailable expression in Ignition Extensions.

I think it's because there's special case handling for the "uncertain" quality levels in bindings, but I haven't really dug into the problem completely to figure it out.

1 Like

I don't know if that would work in this case with the overlay opt out option selected.