What Mike said, but also:
Don't. All AOI's have EnableIn and EnableOut booleans that are locked to "Hidden" and therefore prevent most optimization of the data traffic to read instances of these data types. Ignition's Logix driver cannot do bulk reads on AOIs. Do very much of this and your Logix driver will choke.
I strongly recommend that any AOI you design yourself use one or more InOut parameters of another data type, with instances of those datatypes elsewhere. Place all of your externally visible/writable stuff in the InOut parameter datatypes. If you absolutely have to access a non-optimizable datatype (built-in FBD instructions, perhaps), create a mimic datatype with all-visible members and use CPS to copy over every scan. Do any writes to such with system.opc.write*() so there won't be any subscription to the non-optimizable data.
Edit 2021-07-12: It isn't locked hidden members, though any hidden member in the AOI would yield the same effect. AOIs present themselves in processor browse with proprietary flags on some elements, and Ignition's driver is (too aggressively?) honoring those flags.