Generic VI

From LabVIEW Wiki
Jump to: navigation, search

A Generic VI is a VI containing one or more generic controls or indicators. Generic VI's are a prototype of what would eventually become the Malleable VI. As such, they are an unfinished, abandoned technology whose use is not supported by National Instruments, and they are liable to crash LabVIEW and/or corrupt data.


The first publicly-available Generic VI was published by Aristos Queue in a thread on the official NI forums. Other than a subsequent update to the VI to correct its randomness, this was the only generic VI published by National Instruments. Both versions had a block diagram password set to prevent the generic controls from being copied to other VI's, and were since taken down regardless.

Development of the Generic VI technology was abandoned, but its concept was later used for the much more stable VI Macros, which finally became Malleable VI's in LabVIEW 2017.

Creating Generic VI's

Note: There is no good reason you should be creating a generic VI, unless you are only doing so as a curiosity. For all other purposes, you can use a Malleable VI in much the same way. Furthermore, if you do create any generic VI's, make sure you keep them far away from any VI's you aren't okay with corrupting.

Creating a generic VI is only a matter of placing one or more generic controls or indicators on a VI's front panel, and wiring them to the connector pane. Generic terminals will automatically change to the type wired to them; a generic control can also be placed in an array or cluster to act as "wildcards" in the data type. (For example, a terminal with a generic control inside a non-generic array will accept any array type.)

Generic controls can be obtained either by copying them from an existing Generic VI (such as File:Randomize 1D Array, a passwordless version of Randomize 1D Array) or by making a regular control into a generic one. There are two main ways of doing this:

  • Add GenericsAreGo=True to your LabVIEW configuration file. Right-click a control or indicator, and select the new "Generic" option that appears in the context menu. Make sure to remove the configuration file key afterwards, to ensure you don't inadvertently create a Generic VI later on.