# Hierarchical vs Array Based Tag Structures

**URL:** <https://forum.inductiveautomation.com/t/hierarchical-vs-array-based-tag-structures/109367>\
**Category:** Ignition\
**Created:** [August 5, 2025, 4:49am UTC](https://forum.inductiveautomation.com/t/hierarchical-vs-array-based-tag-structures/109367 "2025-08-05T04:49:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![PFollansbee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pfollansbee/32/46440_2.png) [@PFollansbee](https://forum.inductiveautomation.com/u/PFollansbee)\
**Post date:** [August 5, 2025, 4:49am UTC](https://forum.inductiveautomation.com/t/hierarchical-vs-array-based-tag-structures/109367/1 "2025-08-05T04:49:18Z")

</div>

I've been considering data and program structuring a lot with regard to PLC's (primarily Rockwell, Studio 5000). The way I see it, there are a couple design patterns that are scalable and work well.

A hierarchical OOP sort of design where dependent objects are nested in one another.  
A flat data oriented design / entity component system approach where objects of the same type are stored in arrays.

I have definitely run into issues with the latter (swappable components, objects that rely on each other, but are very distant in the system such as two grippers interacting in a two robot system), but it is useful for understanding a system. I've seen OOP style recommended as good ways to scale systems, but in my own experience, data oriented design tends to be able to scale much larger and faster without as much structural burden because you only have to scale udts with data types, instead of data types and structural complexity.

So I have my own thoughts about good ways to handle code within studio 5000, but I would really value opinions on what pros and cons might be on UDT arrays vs hierachical UDT structures in terms of usability, performance, etc within Ignition and what your experiences have been.

---

<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:** [August 5, 2025, 11:42am UTC](https://forum.inductiveautomation.com/t/hierarchical-vs-array-based-tag-structures/109367/2 "2025-08-05T11:42:49Z")

</div>

There are many discussions here on performance implications of different structures. Since it seems that should be addressed first.

> [@Ignition & Logix Best Practice Tips for better communications](https://forum.inductiveautomation.com/t/ignition-logix-best-practice-tips-for-better-communications/60386/1):
>
> Hi All, After a whole bunch of issues I have gone down the rabbit hole of what is wrong with our setup on site. I will preface this by saying I a relatively new to all of this.... so be gentle stuck_out_tongue Based on much reading(such wow) I believe I have a list of things our site could take away for a better system. Some of them are easy to implement, whilst some of them need... significant work to realize. Especially the AOI approach in point 5 expressionless Before going too far a…

Read the whole thing, and its links.
