# Accessing document custom tag property members the same way as document tag members

**URL:** <https://forum.inductiveautomation.com/t/accessing-document-custom-tag-property-members-the-same-way-as-document-tag-members/104348>\
**Category:** Ignition\
**Created:** [March 28, 2025, 1:11am UTC](https://forum.inductiveautomation.com/t/accessing-document-custom-tag-property-members-the-same-way-as-document-tag-members/104348 "2025-03-28T01:11:58Z")\
**Posts on this page:** 1\
**Showing post:** 23

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 29, 2025, 4:44pm UTC](https://forum.inductiveautomation.com/t/accessing-document-custom-tag-property-members-the-same-way-as-document-tag-members/104348/23 "2025-03-29T16:44:01Z")

</div>

Primary description of the differences:

> [@Automation Professionals' Integration Toolkit Module](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934/68):
>
> I don't know all the details of tag()'s problems, but I suspect there are two key contributors: tag() startup tries to supply a proper initial value, with a 1-second timeout, on startup everywhere it is used. Use a hundred tag() calls in the bindings on a Vision template or window and you can block your UI for up to a hundred seconds, looks like. Not sure how Perspective's parallelism fits here, but you'll either tie up a thread for a hundred seconds, or tie up a hundred threads from the Per…

For a single tag, an indirect binding will be better than my tags() function.

Edit: See new beta that may be useful to you:

> [@Automation Professionals' Integration Toolkit Module](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934/236):
>
> New BETA. Alters the tags() function to not use the tags' own qualities for its function return quality. This enables other iterators to wrap tags() without using forceQuality(), which has the side effect of obliterating any nested non-good qualities. Adds the new qvAt() function which re-implements the square bracket operator to not discard nested qualities. For Ignition v8.1: [v2.1.1.250881822](https://www.automation-pros.com/ignition/Integration%20Toolkit-2.1.1.250881822-v81.modl) You can now supply prune the list of returned tag path/value pairs to exclude non-good quality wi…

---

_[View the full topic](https://forum.inductiveautomation.com/t/accessing-document-custom-tag-property-members-the-same-way-as-document-tag-members/104348)._
