<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://labviewwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dnatt</id>
	<title>LabVIEW Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://labviewwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dnatt"/>
	<link rel="alternate" type="text/html" href="https://labviewwiki.org/wiki/Special:Contributions/Dnatt"/>
	<updated>2026-04-10T16:21:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=35931</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=35931"/>
		<updated>2026-02-25T23:09:50Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Alphabetized list by Type String column (first column)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;Project Item&#039;&#039;&#039; is an individual item in a [[LabVIEW Project]], [[LabVIEW Project Library]], [[LabVIEW Class]], or [[XControl]].  A Project Item can be one of many types with an associated type GUID.  The [[ProjectItem class]], [[ProjectItem class/Type String property|Type String Property]] can be used to get the &#039;&#039;Type String&#039;&#039;.  The [[ProjectItem class]], [[ProjectItem class/Type GUID property|Type GUID Property]] can be used to get the &#039;&#039;Type GUID&#039;&#039;.  In cases where no Type String exists the [[ProjectItem class/Type String property|Type String Property]] returns the Type GUID.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Type String&#039;&#039; is used in the [[ProjectItem class]], [[ProjectItem class/Get All Descendents method|Get All Descendents method]] to get a filtered list of the Descendents by the inputted type.  A list of valid &#039;&#039;Type Strings&#039;&#039; with associated &#039;&#039;Type GUIDs&#039;&#039; are listed below.  (Add to this list as more are discovered.)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String&lt;br /&gt;
! Type GUID &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI &lt;br /&gt;
| {DAABD3DA-4F44-4C3D-8BA3-E5D035A4F27A}&lt;br /&gt;
| Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| BeagleBone Black &lt;br /&gt;
|&lt;br /&gt;
| BeagleBone Black target (available with the [[LabVIEW LINX|LINX Toolkit]])&lt;br /&gt;
|-&lt;br /&gt;
| Build &lt;br /&gt;
| {0C750917-83D7-9871-8908-BB4ED6A8099B}&lt;br /&gt;
| Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data &lt;br /&gt;
| {64A9BF48-4C55-45DB-8F18-9C796DA0C113}&lt;br /&gt;
| Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Compact Vision System Target &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Compact Vision System target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Ethernet Device &lt;br /&gt;
|&lt;br /&gt;
| Ethernet RIO target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Windows &lt;br /&gt;
|&lt;br /&gt;
| Windows CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis &lt;br /&gt;
|&lt;br /&gt;
| CompactRIO Chassis under a cRIO RT target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies &lt;br /&gt;
| {0D75D917-83D7-9871-AA09-A0FFD6A8099B}&lt;br /&gt;
| Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives &lt;br /&gt;
|&lt;br /&gt;
| Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL &lt;br /&gt;
| {20A41099-3F2C-42C3-9544-7ABCC1E6CB0D}&lt;br /&gt;
| Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document &lt;br /&gt;
| {D60740D6-F255-4BBC-5675-8858F35B820E}&lt;br /&gt;
| Includes: &lt;br /&gt;
* Another [[LabVIEW Project]] [[LVLIB File Extension|&#039;&#039;(*.lvproj)&#039;&#039;]] file when nested inside of a Project&lt;br /&gt;
* [[ALIASES File Extension|Aliases &#039;&#039;(*.aliases)&#039;&#039;]]&lt;br /&gt;
* [[LVLPS File Extension|Local Projects Settings &#039;&#039;(*.lvlps)&#039;&#039;]]&lt;br /&gt;
* [[LabVIEW Library|LabVIEW Libraries]] [[LLB File Extension|&#039;&#039;(*.llb)&#039;&#039;]] (Depending on how it was added to the Project)&lt;br /&gt;
* [[Run-time Menu]] [[RTM File Extension| &#039;&#039;(*.rtm)&#039;&#039;]]&lt;br /&gt;
* other Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave &lt;br /&gt;
|&lt;br /&gt;
| EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave &lt;br /&gt;
|&lt;br /&gt;
| EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster &lt;br /&gt;
|&lt;br /&gt;
| EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO &lt;br /&gt;
|&lt;br /&gt;
| IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| elvisRIO Chassis &lt;br /&gt;
|&lt;br /&gt;
| Chassis under an ELVIS RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Embedded Vision System Target &lt;br /&gt;
|&lt;br /&gt;
| NI Embedded Vision System target &lt;br /&gt;
|-&lt;br /&gt;
|EXE&lt;br /&gt;
|{9A75366A-79D3-4BFD-9532-E3070185C1E8}&lt;br /&gt;
|Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Folder&lt;br /&gt;
| {D60740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
| Includes: &lt;br /&gt;
* [[Auto-populating Folder]]s, &lt;br /&gt;
* [[Virtual Folder]]s&lt;br /&gt;
* [[LabVIEW Library|LabVIEW Libraries]] [[LLB File Extension|&#039;&#039;(*.llb)&#039;&#039;]] (Depending on how it was added to the Project)&lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock &lt;br /&gt;
|&lt;br /&gt;
| Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP &lt;br /&gt;
|&lt;br /&gt;
| RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock &lt;br /&gt;
|&lt;br /&gt;
| Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO &lt;br /&gt;
|&lt;br /&gt;
| FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Generic Target &lt;br /&gt;
|&lt;br /&gt;
| Networked Computer/Device target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block &lt;br /&gt;
|&lt;br /&gt;
| Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Register &lt;br /&gt;
|{730535F4-F2D1-43C7-8D98-0EBD6BAE3470}&lt;br /&gt;
| Register item under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target &lt;br /&gt;
|&lt;br /&gt;
| FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
|HTTP WebResources Container&lt;br /&gt;
|{CC977D9A-0BF1-470B-B5A7-DF1D00EF9C9B}&lt;br /&gt;
|Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| Hyperlink&lt;br /&gt;
| {CC472C20-0441-48DC-AF25-3E82ECC9376F}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| IO Server &lt;br /&gt;
|&lt;br /&gt;
| I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
|Installer&lt;br /&gt;
|{B912C944-F9D3-49E7-B0A6-073ED50A150B}&lt;br /&gt;
|Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target &lt;br /&gt;
|&lt;br /&gt;
| IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Library &lt;br /&gt;
| {ABC740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
| [[LabVIEW Project Library]] [[LVLIB File Extension|&#039;&#039;(*.lvlib)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData &lt;br /&gt;
| {AE832914-DFCB-471F-930C-C57747746FF2}&lt;br /&gt;
| Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost &lt;br /&gt;
|&lt;br /&gt;
| In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
|LVClass&lt;br /&gt;
|{EFD740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
|Includes: [[LabVIEW Class]] [[LVCLASS File Extension|&#039;&#039;(*.lvclass)&#039;&#039;]] and [[Interface (object-oriented programming)|Interfaces]]&lt;br /&gt;
|-&lt;br /&gt;
| LVLibp &lt;br /&gt;
| {CF31838A-5E97-4315-AE50-9EBA613BCBBB}&lt;br /&gt;
| [[Packed Project Library]] [[LVLIBP File Extension|&#039;&#039;(*.lvlibp)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart &lt;br /&gt;
| {FB056C2C-833C-414C-8330-397F164A5211}&lt;br /&gt;
| [[LabVIEW StateChart]] [[LVSC File Extension|&#039;&#039;(*.lvsc)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem &lt;br /&gt;
| {FB056C2D-833C-414C-8330-397F164A5211}&lt;br /&gt;
| Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI &lt;br /&gt;
| {DAABD3DC-4F44-4C3D-8BA3-E5D035A4F27A}&lt;br /&gt;
| Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer &lt;br /&gt;
| {CEFE1B10-1732-4678-A70A-299293455410}&lt;br /&gt;
| My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| NI-DAQmx Channel&lt;br /&gt;
| {B5F05770-7C71-3A03-C9FB-F73F35629FC1}&lt;br /&gt;
| DAQmx Virtual Channel&lt;br /&gt;
|-&lt;br /&gt;
| NI-DAQmx Scale&lt;br /&gt;
| {BC977C97-1833-3D51-4EF6-D82E6838A8F3}&lt;br /&gt;
| DAQmx Scale&lt;br /&gt;
|-&lt;br /&gt;
|NI-DAQmx Task&lt;br /&gt;
|{0A806145-1BF3-3A50-0B5E-F969F56C8E2A}&lt;br /&gt;
|DAQmx Task&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library &lt;br /&gt;
| {E4492117-CED3-4F31-9F8D-E2118AE04F12}&lt;br /&gt;
| Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project &lt;br /&gt;
| {D60740D6-F254-4BBC-9975-8858F35B810E}&lt;br /&gt;
| Root project item at the top of the [[Project Explorer]] for the [[LabVIEW Project]]&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition &lt;br /&gt;
| {81C68620-8BE3-4643-B04A-4E83AA6363D2}&lt;br /&gt;
| Property definition folder under a [[LabVIEW Class]]&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder &lt;br /&gt;
| {D60740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
| Property folder in an [[XControl]]&lt;br /&gt;
|-&lt;br /&gt;
| Property VI &lt;br /&gt;
| {DAABD3DB-4F44-4C3D-8BA3-E5D035A4F27A}&lt;br /&gt;
| Property VI in an [[XControl]]&lt;br /&gt;
|-&lt;br /&gt;
| Raspberry Pi 2 B &lt;br /&gt;
| {838AE6B2-6884-4111-A0FB-AF9B59F4094F}&lt;br /&gt;
| Raspberry Pi 2 B target (available with the [[LabVIEW LINX|LINX Toolkit]]). Includes Raspberry Pi 3 B+ and 4 B+&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module &lt;br /&gt;
|&lt;br /&gt;
| CompactRIO module that appears under the FPGA Target node under an RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource &lt;br /&gt;
|&lt;br /&gt;
| Resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
|Robotics Environment Simulator&lt;br /&gt;
|&lt;br /&gt;
|Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| RT CDAQ Chassis &lt;br /&gt;
|&lt;br /&gt;
|  Real-Time CompactDAQ Chassis target&lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO &lt;br /&gt;
|&lt;br /&gt;
| RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Desktop &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Desktop target&lt;br /&gt;
|-&lt;br /&gt;
| RT elvisRIO &lt;br /&gt;
|&lt;br /&gt;
| ELVIS RIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT FlexRIO &lt;br /&gt;
|&lt;br /&gt;
| Real-Time FlexRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic &lt;br /&gt;
|&lt;br /&gt;
| Generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Industrial Controller &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Industrial Controller target &lt;br /&gt;
|-&lt;br /&gt;
| RT myRIO &lt;br /&gt;
|&lt;br /&gt;
| myRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis &lt;br /&gt;
|&lt;br /&gt;
| RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT roboRIO &lt;br /&gt;
|&lt;br /&gt;
| roboRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO &lt;br /&gt;
|&lt;br /&gt;
| RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis &lt;br /&gt;
|&lt;br /&gt;
| Single-Board RIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Smart Camera Target &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Industrial Smart Camera Target&lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution &lt;br /&gt;
| {15DA4F9E-0591-4AB1-A339-C3B4D54902D8}&lt;br /&gt;
| Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container &lt;br /&gt;
| {F0D505FA-F9AD-43D8-8811-2F23BBC4C8A2}&lt;br /&gt;
| Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| Target Folder&lt;br /&gt;
| {AB0740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TestItem &lt;br /&gt;
| {39B74B88-DF2D-4BA8-BEB5-FD65FC0FD56D}&lt;br /&gt;
| Test file from the Unit Test Framework [[LVTest File Extension| &#039;&#039;(.lvtest)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem &lt;br /&gt;
| {50E0C210-38A2-420B-AB4E-3BEFFC710090}&lt;br /&gt;
| Test vector file from the Unit Test Framework [[LVTest File Extension| &#039;&#039;(.lvvect)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel &lt;br /&gt;
|&lt;br /&gt;
| Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
|Variable&lt;br /&gt;
|9BA597C5-4996-4622-B9BB-444431834D0D}&lt;br /&gt;
|Variable node under a library or a target. Includes shared variables, I/O Variables, and more.&lt;br /&gt;
|-&lt;br /&gt;
| VI &lt;br /&gt;
| {D60740D6-F254-4BBC-5675-8858F35B810E}&lt;br /&gt;
| Includes: &lt;br /&gt;
* [[VI]]s [[VI File Extension| &#039;&#039;(.vi)&#039;&#039;]]&lt;br /&gt;
* [[CTL File Extension|Controls &#039;&#039;(*.ctl)&#039;&#039;]]&lt;br /&gt;
* [[Polymorphic VI]]s&lt;br /&gt;
* [[Malleable VI]]s [[VIM File Extension| &#039;&#039;(.vim)&#039;&#039;]]&lt;br /&gt;
* [[Global Variable]]s&lt;br /&gt;
* [[VI Template]]s [[VIT File Extension| &#039;&#039;(.vit)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| Web Service &lt;br /&gt;
| {2386AD17-A358-4EA9-86F1-7808B4D5B5ED}&lt;br /&gt;
| Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl &lt;br /&gt;
| {2E4BD3AC-4E04-45C9-B6C5-AD138962C435}&lt;br /&gt;
| [[XControl]]&lt;br /&gt;
|-&lt;br /&gt;
| XNode &lt;br /&gt;
| {35CAD751-77A8-4D0F-BF61-85A48475F6A5}&lt;br /&gt;
| [[XNode]]&lt;br /&gt;
|-&lt;br /&gt;
| Zip File &lt;br /&gt;
| {51F0E16F-7FA4-4E9F-AE30-C81D9D0444B0}&lt;br /&gt;
| Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly &lt;br /&gt;
| {0E6E9692-2CDC-4645-B4F6-93F9260BF6FA}&lt;br /&gt;
| .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
|{117D6E82-86E4-4435-99C8-B638EE47B29E}&lt;br /&gt;
|{117D6E82-86E4-4435-99C8-B638EE47B29E}&lt;br /&gt;
|Real-Time Application node under Build Specifications (under a Raspberry Pi 2 B Target)&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} &lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} &lt;br /&gt;
| Real-Time Application node under Build Specifications (under an RT Target)&lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} &lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} &lt;br /&gt;
| IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {CED73189-3D7D-4B2F-B6C9-EA03FBC59E14} &lt;br /&gt;
| {CED73189-3D7D-4B2F-B6C9-EA03FBC59E14} &lt;br /&gt;
| Linux RT Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} &lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} &lt;br /&gt;
| Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} &lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} &lt;br /&gt;
| Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_Community_Managed_Discord_Servers&amp;diff=35924</id>
		<title>LabVIEW Community Managed Discord Servers</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_Community_Managed_Discord_Servers&amp;diff=35924"/>
		<updated>2026-02-11T20:05:48Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: update LabVIEW Discord join link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The LabVIEW users community maintains a number of discord servers for discussion and organisation around community activity and events.&lt;br /&gt;
&lt;br /&gt;
The table below contains links to join the servers (where appropriate) and information about the topics covered by each one.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;General&#039;&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:LabVIEWButton.png|96px|thumb|[https://discord.gg/labview Join LabVIEW Discord]&amp;lt;/imagemap&amp;gt;|| General discussion related to LabVIEW, Test &amp;amp; Measurement and programming.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Event Related&#039;&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconGDEV.png|96px|thumb|[https://discord.gg/d5DNNE6rUb Join GDEV Con Europe ]&amp;lt;/imagemap&amp;gt; || Attendee organisation and discussion before/during event and archived discussions from previous years conferences&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsGDEVConNA.png|96px|thumb|[https://discord.gg/9TUFqVWTAN Join GDEV Con North America ]&amp;lt;/imagemap&amp;gt; || Attendee organisation and discussion before/during event and archived discussions from previous years conferences (2023 &amp;amp; 2024)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsGDEVConNA2025.png|96px|thumb|[https://discord.gg/4yZjdbeaxd Join GDEV Con North America (2025) ]&amp;lt;/imagemap&amp;gt; || Attendee organisation and discussion before/during/after the 2025 event&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:VIWeekIcon.png|96px|thumb| [https://discord.gg/a4WA8Bm Join VIWeek] &amp;lt;/imagemap&amp;gt;|| Discussion of the [[VIWeek|VI Week]] 2020 event with a channel for each topic&lt;br /&gt;
|-&lt;br /&gt;
|  &amp;lt;imagemap&amp;gt; File:DiscordIconsSummerOfLabVIEW96px.png|96px|thumb|[https://discord.gg/KxtUER4NGS Join Summer of LabVIEW ]&amp;lt;/imagemap&amp;gt; || Support for participants of the [https://summeroflabview.com/ Summer of LabVIEW] challenges&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconAdventOfCode.png|96px|thumb|[https://discord.gg/AgKWURdGak Join Advent of Code ]&amp;lt;/imagemap&amp;gt; || Chat with people participating in the Advent of Code challenges with LabVIEW and get access to the shared leader board&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;User Groups&#039;&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsNordicsUsergroup.png|96px|thumb| [https://discord.gg/qNKWv6Uqtz Join Nordics LabVIEW User Group] &amp;lt;/imagemap&amp;gt; || Organisation of User Groups in the Nordics Region&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordLabVIEWTurkeyy.png|96px|thumb| [https://join.slack.com/t/labviewtrkye/shared_invite/zt-2x22wiltw-FJoUHwDeXFahq5N2ixJ6Aw Join LabVIEW Turkiye User Group] &amp;lt;/imagemap&amp;gt; || LabVIEW Turkiye User Groups&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File: DiscordIconsFrenchUsergroup.png|96px|thumb| [https://discord.gg/VayzxJV2aq Join French LabVIEW User Group] &amp;lt;/imagemap&amp;gt; || Organisation of French User Group&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconTheBusinessOfLabVIEW.png|96px|thumb| [https://discord.com/invite/4WrBygZdMf Join The Business of LabVIEW] &amp;lt;/imagemap&amp;gt; || Discord Aimed at LabVIEW Consultants and those that sell software development services using NI products&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Special Interest&#039;&#039;&#039; ||&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconAFGuild.png |96px|thumb|[https://discord.gg/vYFZ9Qzavs Join AF Guild]&amp;lt;/imagemap&amp;gt; || Discussion focused on the Actor Framework and open source development of AF Tools. The [[AF Guild|Actor Framework Guild]] is a group of Actor Framework enthusiasts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:CommunityTrainingInitiativeLogo.png |96px|thumb| [https://discord.gg/f3prw5M4yJ Join Community Training Initiative]&amp;lt;/imagemap&amp;gt;  || Discussion for folks interested in the [https://www.gcentral.org/cti/ Community Training Initiative]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsNIOpenSource.png|96px|thumb|[https://discord.gg/q4d3ggrFVA Join NI Open Source] &amp;lt;/imagemap&amp;gt;|| Discussion around NI&#039;s Initiative to make elements of the LabVIEW IDE and some Toolkits Open Source. Meet and co-ordinate with contributors, organise beta testing and get help with the process for contributing source code, opening issues and submitting feedback.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsVIPM.png|96px|thumb|[https://discord.gg/PqvffkFHCx Join VIPM Discord]&amp;lt;/imagemap&amp;gt; || Discussion and support for VIPM Users and package builders/publishers on VIPM.io&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsHampelSoftwareEngineering.png|96px|thumb| [https://discord.hampel-soft.com/  Join Hampel Software Engineering Open Source Code] &amp;lt;/imagemap&amp;gt; || Discuss collaboration around Hampel Software Engineering&#039;s Open Source Code and Toolkits&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsWovalabZulip.png|96px|thumb| [https://wovalab-open-source-projects.zulipchat.com/  Join Wovalab ] &amp;lt;/imagemap&amp;gt; || Discuss collaboration around Wovalab&#039;s Open Source Code and Toolkits on their ZulipChat Server&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsZyahSolutions.png|96px|thumb| [https://discord.gg/rA74hbtHTQ  Join Zyah Solutions] &amp;lt;/imagemap&amp;gt;|| Connect with Zyah Solutions&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;imagemap&amp;gt; File:DiscordIconsLabVIEuler.png|96px|thumb| [https://discord.gg/XF2T45hMfp Join Project-LabVIEuler] &amp;lt;/imagemap&amp;gt;|| Discuss solving the Project Euler series of challenging mathematical/computer programming problems with LabVIEW&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Communities]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Tunnel_Appearance&amp;diff=35812</id>
		<title>Tunnel Appearance</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Tunnel_Appearance&amp;diff=35812"/>
		<updated>2025-11-11T00:13:48Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: minor wording edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Loop Input Tunnels&lt;br /&gt;
!Tunnel Type&lt;br /&gt;
!Appearance&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Non-indexing&#039;&#039;&#039; (for array types, the entire array enters the loop)&lt;br /&gt;
|[[File:Disabled indexing (normal).png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Indexing&#039;&#039;&#039; (for 1D array types, the array enters the loop one element at a time)&lt;br /&gt;
(for 2D array types, the array enters the loop one row at a time)&lt;br /&gt;
|[[File:Autoindexing Tunnel.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Loop Output Tunnels&lt;br /&gt;
!Tunnel Type&lt;br /&gt;
!Appearance&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Indexing&#039;&#039;&#039; (for scalar elements, a 1D array of the elements is built up on the loop border)&lt;br /&gt;
(for 1D arrays, a 2D array of the rows is built up on the loop border)&lt;br /&gt;
|[[File:Output Indexing Tunnel.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Last Value&#039;&#039;&#039; (the value generated by the last iteration of the loop is output by the tunnel)&lt;br /&gt;
|[[File:Last Value.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Concatenating&#039;&#039;&#039; (for 1D arrays, the value generated by each loop iteration is concatenated onto the end of the previous value, resulting in a tunnel output of all the individual 1D arrays concatenated as a single 1D array)&lt;br /&gt;
|[[File:Concatenating.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Conditional&#039;&#039;&#039; (for scalar elements and a &#039;&#039;Last Value&#039;&#039; tunnel, the tunnel will output the last value where a TRUE was wired to the conditional tunnel)&lt;br /&gt;
(for scalar elements and an &#039;&#039;Indexing&#039;&#039; tunnel, the tunnel will output a 1D array containing all loop iteration values where a TRUE was wired to the conditional tunnel)&lt;br /&gt;
|[[File:Conditional.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Shift Register&#039;&#039;&#039;&lt;br /&gt;
|[[File:Shift Register.png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Multi-frame Structure (Case, Event, Disable) Output Tunnels&lt;br /&gt;
!Tunnel Type&lt;br /&gt;
!Appearance&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linked Tunnels&#039;&#039;&#039; (when new frames are created, wires are automatically created between linked tunnels)&lt;br /&gt;
|[[File:Linked Input and Output.png|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Use Default if Unwired&#039;&#039;&#039; (for frames that do not have a wire sourcing this output tunnel, the default value for its datatype will be used if that frame executes)&lt;br /&gt;
|[[File:Default if unwired.png|thumb]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Tunnel_Appearance&amp;diff=35799</id>
		<title>Tunnel Appearance</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Tunnel_Appearance&amp;diff=35799"/>
		<updated>2025-11-10T21:25:23Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: created page stub, will fill in details later&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;stub page... fill in details and graphics about the different tunnel types (last value, indexing, concatenating, conditional, etc.)&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Heap_Peek&amp;diff=35788</id>
		<title>Heap Peek</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Heap_Peek&amp;diff=35788"/>
		<updated>2025-09-28T01:24:33Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heap Peek is a debug feature available at least since [[LabVIEW 3.0]]. It allows to view internal data structures created for all loaded VI files, including Front Panel Heap and Block Diagram Heap. The feature is intended for use by LV R&amp;amp;D, though users may in some cases be instructed by LV Support to check something there.&lt;br /&gt;
&lt;br /&gt;
== Enabling Heap Peek ==&lt;br /&gt;
&lt;br /&gt;
The Heap Peek keyboard shortcut is by default disabled in fresh installations of [[LabVIEW]]. To enable it:&lt;br /&gt;
* Close LabVIEW&lt;br /&gt;
* Put the key &amp;quot;LVdebugKeys=True&amp;quot; in your [[LabVIEW configuration file]]&lt;br /&gt;
&lt;br /&gt;
Then, to launch the Heap Peek window:&lt;br /&gt;
* Open your VI&lt;br /&gt;
* Press one of the following key combinations, depending on your situation:&lt;br /&gt;
** (LabVIEW 2025 Q1 and earlier) Press &#039;&#039;&#039;Ctrl + Shift + D + H&#039;&#039;&#039;.&lt;br /&gt;
** (LabVIEW 2025 Q3 and later) Press &#039;&#039;&#039;Ctrl + Shift + : + H&#039;&#039;&#039; &#039;&#039;(that&#039;s a colon).&#039;&#039;&lt;br /&gt;
** On Mac, use the &#039;&#039;Cmd&#039;&#039; key instead of &#039;&#039;Ctrl&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Using Heap Peek ==&lt;br /&gt;
[[File:HeapPeak.png]]&lt;br /&gt;
&lt;br /&gt;
The window is divided into 5 sections:&lt;br /&gt;
* Loaded Container Files are in top-left,&lt;br /&gt;
* Heap View is top-right,&lt;br /&gt;
* Structure selection for info pane in middle-left,&lt;br /&gt;
* Toolbar at the middle,&lt;br /&gt;
* Information pane is at base.&lt;br /&gt;
&lt;br /&gt;
The first section, as for usage flow, is top-left one. Start there, by left clicking to select the specific file and specific heap you want to look at.&lt;br /&gt;
When the heap is selected, you can display many details on it by clicking rows of either top-right or middle section. These details will show at base, in Information pane.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Heap Peek only displays information and does not have any ability to change the objects. It does, however, display the locations in memory where the information is stored, which makes it easy to use external memory editing software for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Loaded Container Files list ==&lt;br /&gt;
&lt;br /&gt;
The list is divided into Contexts. In each of these, you can see memory location of the item (within LabVIEW process memory), and entries marked &#039;&#039;BDHP&#039;&#039; or &#039;&#039;FPHP&#039;&#039;.&lt;br /&gt;
* &#039;&#039;BDHP&#039;&#039; is Block Diagram Heap&lt;br /&gt;
* &#039;&#039;FPHP&#039;&#039; is Front Panel Heap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; There are [[VI|VIs]] in LV that are not real VIs (for example, a pseudo VI that is created to represent a Call By Reference to another application instance on another machine), and attempting to do Find to jump to their components can cause problems because those VIs never expect to actually draw themselves.&lt;br /&gt;
&lt;br /&gt;
== Heap View ==&lt;br /&gt;
&lt;br /&gt;
Heap, for LV, is really a [[Front Panel]] or [[Block Diagram]]. Despite the name, they don&#039;t really have a heap-like structure. Both FP and BD are stored in form of a tree, strongly inspired by [https://en.wikipedia.org/wiki/XML XML format]. The main difference is - the LV Heap format is binary, not text-based.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Heap View&#039;&#039;, Heaps are displayed in a flattened form, not in its full tree-like glory. Part of the entries show properties of the whole pane, and the rest is [[Control|controls]], [[Indicator|indicators]] and other elements added to the pane.&lt;br /&gt;
&lt;br /&gt;
The view for &#039;&#039;FPHP&#039;&#039; reveals that controls and indicators are composed of several [[Control Parts|parts]] - ie. Numeric controls consist of: Label, Frame, Up/Down buttons, Edit field, Radix and Annex. Each [[Control_Parts#List_of_parts|part has partID]], which is used by LV to identify type of that part.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; To learn more about LV Heaps, consider [[Heap storage format|exporting a few to XML]], and looking at them there. The flat list visible in &#039;&#039;Heap View&#039;&#039; will be very helpful when you understand them, but it&#039;s not the best way to acquire that understanding.&lt;br /&gt;
&lt;br /&gt;
== Structure selection ==&lt;br /&gt;
&lt;br /&gt;
Here you can select one of the structures within VI files other than &#039;&#039;FPHP&#039;&#039;/&#039;&#039;BDHP&#039;&#039;. These are per-file, not per-heap - so you won&#039;t find any difference in them if you select different part of the same file in Loaded Container Files list.&lt;br /&gt;
&lt;br /&gt;
The selectable options are:&lt;br /&gt;
* &#039;&#039;VI Fields&#039;&#039; - lists values of many common settings and flags of the VI file&lt;br /&gt;
* &#039;&#039;DS Fields&#039;&#039; - lists Data Space properties, including Table of QEs and Table of TMEs&lt;br /&gt;
* &#039;&#039;OH Fields&#039;&#039;&lt;br /&gt;
* &#039;&#039;Stats&#039;&#039; - statistics for objects used within Heaps&lt;br /&gt;
* &#039;&#039;Link Info&#039;&#039; - content of all LinkObj lists&lt;br /&gt;
* &#039;&#039;Names In Memory&#039;&#039;&lt;br /&gt;
* &#039;&#039;IL Code Stream&#039;&#039; - Prints Intermediate Language Code used during code compilation process&lt;br /&gt;
* &#039;&#039;Code Disassembly&#039;&#039; - Prints assembly generated by the compiler for given VI file&lt;br /&gt;
* &#039;&#039;Transform Metrics&#039;&#039;&lt;br /&gt;
* &#039;&#039;UDClass Info&#039;&#039;&lt;br /&gt;
* &#039;&#039;Full OMUDClassPtr List&#039;&#039;&lt;br /&gt;
* &#039;&#039;Available Implementers&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DS Fields ===&lt;br /&gt;
&lt;br /&gt;
[[Data Space]] in an important concept in LV internals. In short, &#039;&#039;Data Space&#039;&#039; contains filling for all type mapped [[data type]]s. Be sure to read more on [[Data Space]] to understand it better.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;DS Fields&#039;&#039; section contains some general information on [[Data Space]] of the file, and then displays whole mapping of the Data Space (&#039;&#039;DSTM&#039;&#039;). As of LV2014 it doesn&#039;t show values stored in data space, but it shows offsets within said Data Space, and Type Map Entries (&#039;&#039;&#039;TME&#039;&#039;&#039;s) with information about which data type is stored there, with all its properties. The &#039;&#039;DSTM&#039;&#039; data in this section is cut to only show part of Data Space which is used for different purposes than Heap - the complete Data Space is always larger.&lt;br /&gt;
&lt;br /&gt;
== Toolbar ==&lt;br /&gt;
&lt;br /&gt;
The toolbar consists of several fields.&lt;br /&gt;
* Next/prev buttons&lt;br /&gt;
* Currently selected item name text&lt;br /&gt;
* &#039;&#039;&#039;U&#039;&#039;&#039; button&lt;br /&gt;
* &#039;&#039;&#039;F&#039;&#039;&#039; button - Click on it to find the object selected in Heap View. LabVIEW will switch to the block diagram or front panel and select related object.&lt;br /&gt;
* &#039;&#039;&#039;uo&#039;&#039;&#039; button - Toggles between sorting the list on the right by UID (the default) or by memory address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A previous author said that few developers really know the capacities of heap peek. This is true... it&#039;s a debugging tool, and it gets hacked up to debug whatever anyone needs to debug.&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW internals]]&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Heap_Peek&amp;diff=35787</id>
		<title>Heap Peek</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Heap_Peek&amp;diff=35787"/>
		<updated>2025-09-28T01:24:08Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heap Peek is a debug feature available at least since [[LabVIEW 3.0]]. It allows to view internal data structures created for all loaded VI files, including Front Panel Heap and Block Diagram Heap. The feature is intended for use by LV R&amp;amp;D, though users may in some cases be instructed by LV Support to check something there.&lt;br /&gt;
&lt;br /&gt;
== Enabling Heap Peek ==&lt;br /&gt;
&lt;br /&gt;
The Heap Peek keyboard shortcut is by default disabled in fresh installations of [[LabVIEW]]. To enable it:&lt;br /&gt;
* Close LabVIEW&lt;br /&gt;
* Put the key &amp;quot;LVdebugKeys=True&amp;quot; in your [[LabVIEW configuration file]]&lt;br /&gt;
&lt;br /&gt;
Then, to launch the Heap Peek window:&lt;br /&gt;
* Open your VI&lt;br /&gt;
* Press one of the following key combinations, depending on your situation:&lt;br /&gt;
** (LabVIEW 2025 Q1 and earlier) Press &#039;&#039;&#039;Ctrl + Shift + D + H&#039;&#039;&#039;.&lt;br /&gt;
** (LabVIEW 2025 Q3 and later) Press &#039;&#039;&#039;Ctrl + Shift + : + H&#039;&#039;&#039; &#039;&#039;(that&#039;s a colon).&#039;&#039;&lt;br /&gt;
** On Mac, use the &#039;&#039;Cmd&#039;&#039; key instead of &#039;&#039;Ctrl&#039;&#039;. This will open the Heap Peek window.&lt;br /&gt;
&lt;br /&gt;
== Using Heap Peek ==&lt;br /&gt;
[[File:HeapPeak.png]]&lt;br /&gt;
&lt;br /&gt;
The window is divided into 5 sections:&lt;br /&gt;
* Loaded Container Files are in top-left,&lt;br /&gt;
* Heap View is top-right,&lt;br /&gt;
* Structure selection for info pane in middle-left,&lt;br /&gt;
* Toolbar at the middle,&lt;br /&gt;
* Information pane is at base.&lt;br /&gt;
&lt;br /&gt;
The first section, as for usage flow, is top-left one. Start there, by left clicking to select the specific file and specific heap you want to look at.&lt;br /&gt;
When the heap is selected, you can display many details on it by clicking rows of either top-right or middle section. These details will show at base, in Information pane.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Heap Peek only displays information and does not have any ability to change the objects. It does, however, display the locations in memory where the information is stored, which makes it easy to use external memory editing software for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Loaded Container Files list ==&lt;br /&gt;
&lt;br /&gt;
The list is divided into Contexts. In each of these, you can see memory location of the item (within LabVIEW process memory), and entries marked &#039;&#039;BDHP&#039;&#039; or &#039;&#039;FPHP&#039;&#039;.&lt;br /&gt;
* &#039;&#039;BDHP&#039;&#039; is Block Diagram Heap&lt;br /&gt;
* &#039;&#039;FPHP&#039;&#039; is Front Panel Heap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; There are [[VI|VIs]] in LV that are not real VIs (for example, a pseudo VI that is created to represent a Call By Reference to another application instance on another machine), and attempting to do Find to jump to their components can cause problems because those VIs never expect to actually draw themselves.&lt;br /&gt;
&lt;br /&gt;
== Heap View ==&lt;br /&gt;
&lt;br /&gt;
Heap, for LV, is really a [[Front Panel]] or [[Block Diagram]]. Despite the name, they don&#039;t really have a heap-like structure. Both FP and BD are stored in form of a tree, strongly inspired by [https://en.wikipedia.org/wiki/XML XML format]. The main difference is - the LV Heap format is binary, not text-based.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Heap View&#039;&#039;, Heaps are displayed in a flattened form, not in its full tree-like glory. Part of the entries show properties of the whole pane, and the rest is [[Control|controls]], [[Indicator|indicators]] and other elements added to the pane.&lt;br /&gt;
&lt;br /&gt;
The view for &#039;&#039;FPHP&#039;&#039; reveals that controls and indicators are composed of several [[Control Parts|parts]] - ie. Numeric controls consist of: Label, Frame, Up/Down buttons, Edit field, Radix and Annex. Each [[Control_Parts#List_of_parts|part has partID]], which is used by LV to identify type of that part.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; To learn more about LV Heaps, consider [[Heap storage format|exporting a few to XML]], and looking at them there. The flat list visible in &#039;&#039;Heap View&#039;&#039; will be very helpful when you understand them, but it&#039;s not the best way to acquire that understanding.&lt;br /&gt;
&lt;br /&gt;
== Structure selection ==&lt;br /&gt;
&lt;br /&gt;
Here you can select one of the structures within VI files other than &#039;&#039;FPHP&#039;&#039;/&#039;&#039;BDHP&#039;&#039;. These are per-file, not per-heap - so you won&#039;t find any difference in them if you select different part of the same file in Loaded Container Files list.&lt;br /&gt;
&lt;br /&gt;
The selectable options are:&lt;br /&gt;
* &#039;&#039;VI Fields&#039;&#039; - lists values of many common settings and flags of the VI file&lt;br /&gt;
* &#039;&#039;DS Fields&#039;&#039; - lists Data Space properties, including Table of QEs and Table of TMEs&lt;br /&gt;
* &#039;&#039;OH Fields&#039;&#039;&lt;br /&gt;
* &#039;&#039;Stats&#039;&#039; - statistics for objects used within Heaps&lt;br /&gt;
* &#039;&#039;Link Info&#039;&#039; - content of all LinkObj lists&lt;br /&gt;
* &#039;&#039;Names In Memory&#039;&#039;&lt;br /&gt;
* &#039;&#039;IL Code Stream&#039;&#039; - Prints Intermediate Language Code used during code compilation process&lt;br /&gt;
* &#039;&#039;Code Disassembly&#039;&#039; - Prints assembly generated by the compiler for given VI file&lt;br /&gt;
* &#039;&#039;Transform Metrics&#039;&#039;&lt;br /&gt;
* &#039;&#039;UDClass Info&#039;&#039;&lt;br /&gt;
* &#039;&#039;Full OMUDClassPtr List&#039;&#039;&lt;br /&gt;
* &#039;&#039;Available Implementers&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DS Fields ===&lt;br /&gt;
&lt;br /&gt;
[[Data Space]] in an important concept in LV internals. In short, &#039;&#039;Data Space&#039;&#039; contains filling for all type mapped [[data type]]s. Be sure to read more on [[Data Space]] to understand it better.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;DS Fields&#039;&#039; section contains some general information on [[Data Space]] of the file, and then displays whole mapping of the Data Space (&#039;&#039;DSTM&#039;&#039;). As of LV2014 it doesn&#039;t show values stored in data space, but it shows offsets within said Data Space, and Type Map Entries (&#039;&#039;&#039;TME&#039;&#039;&#039;s) with information about which data type is stored there, with all its properties. The &#039;&#039;DSTM&#039;&#039; data in this section is cut to only show part of Data Space which is used for different purposes than Heap - the complete Data Space is always larger.&lt;br /&gt;
&lt;br /&gt;
== Toolbar ==&lt;br /&gt;
&lt;br /&gt;
The toolbar consists of several fields.&lt;br /&gt;
* Next/prev buttons&lt;br /&gt;
* Currently selected item name text&lt;br /&gt;
* &#039;&#039;&#039;U&#039;&#039;&#039; button&lt;br /&gt;
* &#039;&#039;&#039;F&#039;&#039;&#039; button - Click on it to find the object selected in Heap View. LabVIEW will switch to the block diagram or front panel and select related object.&lt;br /&gt;
* &#039;&#039;&#039;uo&#039;&#039;&#039; button - Toggles between sorting the list on the right by UID (the default) or by memory address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A previous author said that few developers really know the capacities of heap peek. This is true... it&#039;s a debugging tool, and it gets hacked up to debug whatever anyone needs to debug.&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW internals]]&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Heap_Peek&amp;diff=35786</id>
		<title>Heap Peek</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Heap_Peek&amp;diff=35786"/>
		<updated>2025-09-28T01:21:54Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Added new Heap Peak shortcut info for LabVIEW 2025 Q3 and later.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heap Peek is a debug feature available at least since [[LabVIEW 3.0]]. It allows to view internal data structures created for all loaded VI files, including Front Panel Heap and Block Diagram Heap.&lt;br /&gt;
The feature is intended for use by LV R&amp;amp;D, though users may in some cases be instructed by LV Support to check something there.&lt;br /&gt;
&lt;br /&gt;
== Enabling Heap Peek ==&lt;br /&gt;
&lt;br /&gt;
The Heap Peek keyboard shortcut is by default disabled in fresh installations of [[LabVIEW]]. To enable it:&lt;br /&gt;
* Close LabVIEW&lt;br /&gt;
* Put the key &amp;quot;LVdebugKeys=True&amp;quot; in your [[LabVIEW configuration file]]&lt;br /&gt;
&lt;br /&gt;
Then, to launch the Heap Peek window:&lt;br /&gt;
* Open your VI&lt;br /&gt;
* (LabVIEW 2025 Q1 and earlier) Press &#039;&#039;&#039;Ctrl + Shift + D + H&#039;&#039;&#039;.  (LabVIEW 2025 Q3 and later) Press &#039;&#039;&#039;Ctrl + Shift + : + H&#039;&#039;&#039; &#039;&#039;(that&#039;s a colon).&#039;&#039; On Mac, use the &#039;&#039;Cmd&#039;&#039; key instead of &#039;&#039;Ctrl&#039;&#039;. This will open the Heap Peek window.&lt;br /&gt;
&lt;br /&gt;
== Using Heap Peek ==&lt;br /&gt;
[[File:HeapPeak.png]]&lt;br /&gt;
&lt;br /&gt;
The window is divided into 5 sections:&lt;br /&gt;
* Loaded Container Files are in top-left,&lt;br /&gt;
* Heap View is top-right,&lt;br /&gt;
* Structure selection for info pane in middle-left,&lt;br /&gt;
* Toolbar at the middle,&lt;br /&gt;
* Information pane is at base.&lt;br /&gt;
&lt;br /&gt;
The first section, as for usage flow, is top-left one. Start there, by left clicking to select the specific file and specific heap you want to look at.&lt;br /&gt;
When the heap is selected, you can display many details on it by clicking rows of either top-right or middle section. These details will show at base, in Information pane.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Heap Peek only displays information and does not have any ability to change the objects. It does, however, display the locations in memory where the information is stored, which makes it easy to use external memory editing software for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Loaded Container Files list ==&lt;br /&gt;
&lt;br /&gt;
The list is divided into Contexts. In each of these, you can see memory location of the item (within LabVIEW process memory), and entries marked &#039;&#039;BDHP&#039;&#039; or &#039;&#039;FPHP&#039;&#039;.&lt;br /&gt;
* &#039;&#039;BDHP&#039;&#039; is Block Diagram Heap&lt;br /&gt;
* &#039;&#039;FPHP&#039;&#039; is Front Panel Heap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; There are [[VI|VIs]] in LV that are not real VIs (for example, a pseudo VI that is created to represent a Call By Reference to another application instance on another machine), and attempting to do Find to jump to their components can cause problems because those VIs never expect to actually draw themselves.&lt;br /&gt;
&lt;br /&gt;
== Heap View ==&lt;br /&gt;
&lt;br /&gt;
Heap, for LV, is really a [[Front Panel]] or [[Block Diagram]]. Despite the name, they don&#039;t really have a heap-like structure. Both FP and BD are stored in form of a tree, strongly inspired by [https://en.wikipedia.org/wiki/XML XML format]. The main difference is - the LV Heap format is binary, not text-based.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Heap View&#039;&#039;, Heaps are displayed in a flattened form, not in its full tree-like glory. Part of the entries show properties of the whole pane, and the rest is [[Control|controls]], [[Indicator|indicators]] and other elements added to the pane.&lt;br /&gt;
&lt;br /&gt;
The view for &#039;&#039;FPHP&#039;&#039; reveals that controls and indicators are composed of several [[Control Parts|parts]] - ie. Numeric controls consist of: Label, Frame, Up/Down buttons, Edit field, Radix and Annex. Each [[Control_Parts#List_of_parts|part has partID]], which is used by LV to identify type of that part.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; To learn more about LV Heaps, consider [[Heap storage format|exporting a few to XML]], and looking at them there. The flat list visible in &#039;&#039;Heap View&#039;&#039; will be very helpful when you understand them, but it&#039;s not the best way to acquire that understanding.&lt;br /&gt;
&lt;br /&gt;
== Structure selection ==&lt;br /&gt;
&lt;br /&gt;
Here you can select one of the structures within VI files other than &#039;&#039;FPHP&#039;&#039;/&#039;&#039;BDHP&#039;&#039;. These are per-file, not per-heap - so you won&#039;t find any difference in them if you select different part of the same file in Loaded Container Files list.&lt;br /&gt;
&lt;br /&gt;
The selectable options are:&lt;br /&gt;
* &#039;&#039;VI Fields&#039;&#039; - lists values of many common settings and flags of the VI file&lt;br /&gt;
* &#039;&#039;DS Fields&#039;&#039; - lists Data Space properties, including Table of QEs and Table of TMEs&lt;br /&gt;
* &#039;&#039;OH Fields&#039;&#039;&lt;br /&gt;
* &#039;&#039;Stats&#039;&#039; - statistics for objects used within Heaps&lt;br /&gt;
* &#039;&#039;Link Info&#039;&#039; - content of all LinkObj lists&lt;br /&gt;
* &#039;&#039;Names In Memory&#039;&#039;&lt;br /&gt;
* &#039;&#039;IL Code Stream&#039;&#039; - Prints Intermediate Language Code used during code compilation process&lt;br /&gt;
* &#039;&#039;Code Disassembly&#039;&#039; - Prints assembly generated by the compiler for given VI file&lt;br /&gt;
* &#039;&#039;Transform Metrics&#039;&#039;&lt;br /&gt;
* &#039;&#039;UDClass Info&#039;&#039;&lt;br /&gt;
* &#039;&#039;Full OMUDClassPtr List&#039;&#039;&lt;br /&gt;
* &#039;&#039;Available Implementers&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DS Fields ===&lt;br /&gt;
&lt;br /&gt;
[[Data Space]] in an important concept in LV internals. In short, &#039;&#039;Data Space&#039;&#039; contains filling for all type mapped [[data type]]s. Be sure to read more on [[Data Space]] to understand it better.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;DS Fields&#039;&#039; section contains some general information on [[Data Space]] of the file, and then displays whole mapping of the Data Space (&#039;&#039;DSTM&#039;&#039;). As of LV2014 it doesn&#039;t show values stored in data space, but it shows offsets within said Data Space, and Type Map Entries (&#039;&#039;&#039;TME&#039;&#039;&#039;s) with information about which data type is stored there, with all its properties. The &#039;&#039;DSTM&#039;&#039; data in this section is cut to only show part of Data Space which is used for different purposes than Heap - the complete Data Space is always larger.&lt;br /&gt;
&lt;br /&gt;
== Toolbar ==&lt;br /&gt;
&lt;br /&gt;
The toolbar consists of several fields.&lt;br /&gt;
* Next/prev buttons&lt;br /&gt;
* Currently selected item name text&lt;br /&gt;
* &#039;&#039;&#039;U&#039;&#039;&#039; button&lt;br /&gt;
* &#039;&#039;&#039;F&#039;&#039;&#039; button - Click on it to find the object selected in Heap View. LabVIEW will switch to the block diagram or front panel and select related object.&lt;br /&gt;
* &#039;&#039;&#039;uo&#039;&#039;&#039; button - Toggles between sorting the list on the right by UID (the default) or by memory address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; A previous author said that few developers really know the capacities of heap peek. This is true... it&#039;s a debugging tool, and it gets hacked up to debug whatever anyone needs to debug.&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW internals]]&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Compiled_object_cache&amp;diff=35629</id>
		<title>Compiled object cache</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Compiled_object_cache&amp;diff=35629"/>
		<updated>2025-05-16T17:56:42Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Created page with &amp;quot;The [https://www.ni.com/docs/en-US/bundle/labview/page/compiled-object-cache.html Compiled Object Cache] is the location where LabVIEW stores the compiled code for VIs. If you are having problems with loading/running/building your LabVIEW code, and you suspect the compiled object cache may be involved, you can use the [https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/project/viobjcache-dialog.html Clear Compiled Object Cache] dialog box to clear some parts of th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.ni.com/docs/en-US/bundle/labview/page/compiled-object-cache.html Compiled Object Cache] is the location where LabVIEW stores the compiled code for VIs. If you are having problems with loading/running/building your LabVIEW code, and you suspect the compiled object cache may be involved, you can use the [https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/project/viobjcache-dialog.html Clear Compiled Object Cache] dialog box to clear some parts of the compiled object cache, which will cause LabVIEW to recompile any VIs that were previously in the cache when they are loaded in the future.&lt;br /&gt;
&lt;br /&gt;
There are multiple compiled object caches on your machine:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;App Builder Cache&#039;&#039;&#039; - This cache contains the compiled code for VIs that are built into EXEs, PPLs, and other build outputs. The cache is located here: &#039;&#039;[LabVIEW Data]\AppBuilderCache\[version]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Core LabVIEW Cache&#039;&#039;&#039; - This cache contains the compiled code for VIs that are inside the &#039;&#039;[LabVIEW 20xx]&#039;&#039; folder on disk. This includes core APIs that ship with LabVIEW, VI-based features of LabVIEW, VIPM toolkits that install in &#039;&#039;user.lib&#039;&#039; or &#039;&#039;vi.lib&#039;&#039;, etc. This cache is located here: &#039;&#039;[LabVIEW 20xx]\VIObjCache&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;User + LVAddons Cache&#039;&#039;&#039; - This cache contains the compiled code for VIs that are part of your source code. Additionally, it also contains compiled code for any drivers, toolkits, or addons that are installed in the &#039;&#039;[LVAddons]&#039;&#039; folder. This cache is located here: &#039;&#039;[LabVIEW Data]\VIObjCache\[version]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Note that the Clear Compiled Object Cache dialog allows you to clear the App Builder Cache *and* any of your compiled source code from the User + LVAddons Cache. There is no interactive way to clear the cache for the Core LabVIEW Cache, or for &#039;&#039;[LVAddons]&#039;&#039; code in the User + LVAddons Cache. You can manually delete the contents of the folders above to clear those caches. &#039;&#039;&#039;Note&#039;&#039;&#039;: After you do this, the LabVIEW editor will be extremely slow in loading APIs and VI-based features that need to recompile. You should only clear these caches as a last resort when debugging issues with LabVIEW. Another option is to repair the LabVIEW installation, which will also regenerate these caches.&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Events&amp;diff=35424</id>
		<title>Events</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Events&amp;diff=35424"/>
		<updated>2025-01-06T21:05:23Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Updated 2025 events&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Below is code for the Google Calendar Widget once the extension is installed. My plan is to let anyone with LabVIEW events (User Groups, virtual workshops, etc.) invite me via the labviewwiki@gmail.com email I used for the twitter account.  This calendar belongs to that email address.  That way this calendar will show all community events.--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 75%; margin:auto;&amp;quot; &lt;br /&gt;
! colspan=2 style=&amp;quot;background-color:#616366; font-size:200%; border:none; margin:0; padding:.3em; color:#FFD500; text-align:center;&amp;quot; | Community Calendar&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background-color:#FFD500; border:none; margin:0; color:#000000; text-align:center;&amp;quot; | &#039;&#039;&#039;Do you want your event added to the Community Calendar?&#039;&#039;&#039;  &lt;br /&gt;
| rowspan=2 style=&amp;quot;text-align:center; width:75%;background-color:#FFFFFF;&amp;quot;| {{#widget:Google Calendar}}&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:25%; vertical-align:top;&amp;quot; | To get your event on the calendar:&lt;br /&gt;
# Create Meeting Invitation &lt;br /&gt;
# Invite the LabVIEWWiki as a guest&lt;br /&gt;
The email address is: &lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&#039;&#039;&#039;&#039;&#039;labviewwiki -at- gmail -dot- com&#039;&#039;&#039;&#039;&#039;&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:75%; text-align:center;&amp;quot;&amp;gt;(written this way to avoid the spammers)&amp;lt;/div&amp;gt;&lt;br /&gt;
Be sure to include event details such as:&lt;br /&gt;
* Event Title&lt;br /&gt;
* Dates and Times&lt;br /&gt;
* How to register or rsvp if required&lt;br /&gt;
* Where the event is located or how to connect if virtual&lt;br /&gt;
* Any other details (abstract/topic, links to websites, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 75%; margin:auto;&amp;quot; &lt;br /&gt;
! colspan=2 style=&amp;quot;background-color:#616366; font-size:200%; border:none; margin:0; padding:.3em; color:#FFD500; text-align:center;&amp;quot; | Event Pages&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Event Archive&#039;&#039;&#039;&lt;br /&gt;
! style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Upcoming Events&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 5 style=&amp;quot;width:25%; vertical-align:top; background-color:#EFEFEF;&amp;quot; | {{#tree:&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[Americas CLA Summit]]&lt;br /&gt;
**[[Americas CLA Summit 2015]]&lt;br /&gt;
**[[Americas CLA Summit 2016]]&lt;br /&gt;
**[[Americas CLA Summit 2017]]&lt;br /&gt;
**[[Americas CLA Summit 2018]]&lt;br /&gt;
**[[Americas CLA Summit 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[European CLA Summit]]&lt;br /&gt;
**[[European CLA Summit 2018]]&lt;br /&gt;
**[[European CLA Summit 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GDevCon]]&lt;br /&gt;
**[[GDevCon-1|GDevCon #1]]&lt;br /&gt;
**[[GDevCon-2|GDevCon #2]]&lt;br /&gt;
**[[GDevCon-3|GDevCon #3]]&lt;br /&gt;
**[[GDevCon-4|GDevCon #4]]&lt;br /&gt;
**[[GDevCon-5|GDevCon #5]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GDevCon ANZ]]&lt;br /&gt;
**[[GDevCon ANZ 1|GDevCon ANZ #1]]&lt;br /&gt;
**[[GDevCon ANZ 2|GDevCon ANZ #2]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GDevCon North America]]&lt;br /&gt;
**[[GDevCon North America 2021]]&lt;br /&gt;
**[[GDevCon North America 2022]]&lt;br /&gt;
**[[GDevCon North America 2023]]&lt;br /&gt;
**[[GDevCon North America 2024]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GLA Summit]]&lt;br /&gt;
**[[GLA Summit 2020]]&lt;br /&gt;
**[[GLA Summit 2021]]&lt;br /&gt;
**[[GLA Summit 2022]]&lt;br /&gt;
**[[GLA Summit 2024]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[LUGE]]&lt;br /&gt;
**[[LUGE 2020]]&lt;br /&gt;
**[[LUGE 2021]]&lt;br /&gt;
**[[LUGE 2022]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[NI Connect]]&lt;br /&gt;
**[[NI Connect 2021]]&lt;br /&gt;
**[[NI Connect 2022]]&lt;br /&gt;
**[[NI Connect 2023]]&lt;br /&gt;
**[[NI Connect 2024]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}NIDays&lt;br /&gt;
**[[NIDays 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[NIWeek]]&lt;br /&gt;
**[[NIWeek 1995]]&lt;br /&gt;
**[[NIWeek 1996]]&lt;br /&gt;
**[[NIWeek 1997]]&lt;br /&gt;
**[[NIWeek 1998]]&lt;br /&gt;
**[[NIWeek 1999]]&lt;br /&gt;
**[[NIWeek 2000]]&lt;br /&gt;
**[[NIWeek 2001]]&lt;br /&gt;
**[[NIWeek 2002]]&lt;br /&gt;
**[[NIWeek 2003]]&lt;br /&gt;
**[[NIWeek 2004]]&lt;br /&gt;
**[[NIWeek 2005]]&lt;br /&gt;
**[[NIWeek 2006]]&lt;br /&gt;
**[[NIWeek 2007]]&lt;br /&gt;
**[[NIWeek 2008]]&lt;br /&gt;
**[[NIWeek 2009]]&lt;br /&gt;
**[[NIWeek 2010]]&lt;br /&gt;
**[[NIWeek 2011]]&lt;br /&gt;
**[[NIWeek 2012]]&lt;br /&gt;
**[[NIWeek 2013]]&lt;br /&gt;
**[[NIWeek 2014]]&lt;br /&gt;
**[[NIWeek 2015]]&lt;br /&gt;
**[[NIWeek 2016]]&lt;br /&gt;
**[[NIWeek 2017]]&lt;br /&gt;
**[[NIWeek 2018]]&lt;br /&gt;
**[[NIWeek 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[VIWeek]]&lt;br /&gt;
**[[VIWeek 2020]]&lt;br /&gt;
}}&lt;br /&gt;
| style=&amp;quot;width:75%;background-color:#FFFFFF;vertical-align:top;&amp;quot; | &amp;lt;gallery class=&amp;quot;center&amp;quot; heights=&amp;quot;90&amp;quot; widths=&amp;quot;90&amp;quot; style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
File:NIButton.png|[https://www.ni.com/en/events/niconnect.html NI Connect 2025 &amp;lt;small&amp;gt;(Fort Worth, TX--April 28-30 2025)&amp;lt;/small&amp;gt;]&lt;br /&gt;
File:GDevCon-ANZButton.png|link=GDevCon_ANZ_2|[[GDevCon ANZ 2|GDevCon ANZ #2&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Lindfield, Australia--May 27-28 2025)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|[https://www.glasummit.org/ GLA Summit 2025 &amp;lt;small&amp;gt;(Jun 23-24 2025)&amp;lt;/small&amp;gt;]&lt;br /&gt;
File:GDevCon-NAButton.png|[https://www.gdevconna.org/ GDevCon NA #5 &amp;lt;small&amp;gt;(Chicago, IL--July 22-24, 2025)&amp;lt;/small&amp;gt;]&lt;br /&gt;
File:GDevConButton.png|[https://www.gdevcon.com/ GDevCon #6 &amp;lt;small&amp;gt;(Brighton, UK--Sept 9-11 2025)&amp;lt;/small&amp;gt;]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Recurring Events&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:75%;background-color:#FFFFFF;vertical-align:top;&amp;quot; | &amp;lt;gallery class=&amp;quot;center&amp;quot; heights=90px widths=90px style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
File:LVAoC.png|link=Advent of Code|[[Advent of Code|Advent of Code&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(December)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:Summer_of_LabVIEW_logo.png|link=Summer of LabVIEW|[[Summer of LabVIEW|Summer of LabVIEW&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(June, July, August)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Past Events&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:75%;background-color:#FFFFFF;vertical-align:top;&amp;quot; | &amp;lt;gallery class=&amp;quot;center&amp;quot; heights=&amp;quot;90&amp;quot; widths=&amp;quot;90&amp;quot; style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
File:GDevConButton.png|[https://labviewwiki.org/wiki/GDevCon-5 GDevCon #5 &amp;lt;small&amp;gt;(Stuttgart 11-13 September 2024)&amp;lt;/small&amp;gt;]&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon_North_America_2024|[[GDevCon North America 2024|GDevCon North America 2024&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(23-25 July 2024)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI_Connect_2024|[[NI Connect 2024|NI Connect 2024&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Austin—20-22 May 2024)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA_Summit_2024|[[GLA Summit 2024|GLA Summit 2024&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(25-26 March 2024)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-ANZButton.png|link=GDevCon_ANZ_1|[[GDevCon ANZ 1|GDevCon ANZ #1&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(24-25 October 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-4|[[GDevCon-4|GDevCon #4&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Glasgow—20-21 September 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon_North_America_2023|[[GDevCon North America 2023|GDevCon North America 2023&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(18-20 July 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI_Connect_2023|[[NI Connect 2023|NI Connect 2023&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Austin—23-24 May 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI_Connect_2022|[[NI Connect 2022|NI Connect 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Munich— 9 November 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA_Summit_2022|[[GLA Summit 2022|GLA Summit 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(14-15 November 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI_Connect_2022|[[NI Connect 2022|NI Connect 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Shanghai— 2023 TBD)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-3|[[GDevCon-3|GDevCon #3&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Amsterdam—8-9 September 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon_North_America_2022|[[GDevCon North America 2022|GDevCon North America 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(19-21 July 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI_Connect_2022|[[NI Connect 2022|NI Connect 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Austin—24-25 May 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:LUGE.png|link=LUGE_2022|[[LUGE 2022|LUGE 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(??? 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA_Summit_2021|[[GLA Summit 2021|GLA Summit 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(15-16 November 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon_North_America_2021|[[GDevCon North America 2021|GDevCon North America 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(20-21 October 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI_Connect_2021|[[NI Connect 2021|NI Connect 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(27-28 July 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:LUGE.png|link=LUGE_2021|[[LUGE 2021|LUGE 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(??? 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA_Summit_2020|[[GLA Summit 2020|GLA Summit 2020&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(9-10 November 2020)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:VIWeekIcon.png|link=VIWeek_2020|[[VIWeek 2020|VIWeek 2020&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(17-23 May 2020)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:LUGE.png|link=LUGE_2020|[[LUGE 2020|LUGE 2020&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(7 May 2020)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas_CLA_Summit_2019|[[Americas CLA Summit 2019|Americas CLA Summit 2019&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(25-27 Sept 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-2|[[GDevCon-2|GDevCon #2&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(21-22 Aug 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2019|[[NIWeek 2019|NIWeek 2019&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(20-23 May 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-EButton.png|link=European_CLA_Summit_2019|[[European CLA Summit 2019|European CLA Summit 2019&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2-4 Apr 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas_CLA_Summit_2018|[[Americas CLA Summit 2018]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-1|[[GDevCon-1|GDevCon #1&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4-5 Sep 2018)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-EButton.png|link=European_CLA_Summit_2018|[[European CLA Summit 2018]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2018|[[NIWeek 2018|NIWeek 2018&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(21-24 May 2018)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas_CLA_Summit_2017|[[Americas CLA Summit 2017]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2017|[[NIWeek 2017|NIWeek 2017&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(22-25 May 2017)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2016|[[NIWeek 2016|NIWeek 2016&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(1-4 Aug 2016)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas_CLA_Summit_2016|[[Americas CLA Summit 2016]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2015|[[NIWeek 2015|NIWeek 2015&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(3-6 Aug 2015)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas_CLA_Summit_2015|[[Americas CLA Summit 2015|Americas CLA Summit 2015&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2-5 March 2015)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2014|[[NIWeek 2014|NIWeek 2014&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4-7 Aug 2014)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2013|[[NIWeek 2013|NIWeek 2013&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(5-8 Aug 2013)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2012|[[NIWeek 2012|NIWeek 2012&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(6-9 Aug 2012)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2011|[[NIWeek 2011|NIWeek 2011&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2-4 Aug 2011)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2010|[[NIWeek 2010|NIWeek 2010&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(3-5 Aug 2010)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2009|[[NIWeek 2009|NIWeek 2009&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4-6 Aug 2009)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2008|[[NIWeek 2008|NIWeek 2008&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(5-7 Aug 2008)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2007|[[NIWeek 2007|NIWeek 2007&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(7-9 Aug 2007)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2006|[[NIWeek 2006|NIWeek 2006&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(8-10 Aug 2006)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2005|[[NIWeek 2005|NIWeek 2005&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(16-18 Aug 2005)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2004|[[NIWeek 2004|NIWeek 2004&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(17-19 Aug 2004)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2003|[[NIWeek 2003|NIWeek 2003&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(13-15 Aug 2003)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2002|[[NIWeek 2002|NIWeek 2002&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(14-16 Aug 2002)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2001|[[NIWeek 2001|NIWeek 2001&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2001)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_2000|[[NIWeek 2000|NIWeek 2000&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2000)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_1999|[[NIWeek 1999|NIWeek 1999&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(18-20 Aug 1999)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_1998|[[NIWeek 1998|NIWeek 1998&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(25-27 Aug 1998)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_1997|[[NIWeek 1997|NIWeek 1997&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(19-21 Aug 1997)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_1996|[[NIWeek 1996|NIWeek 1996&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(6-8 Aug 1996)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek_1995|[[NIWeek 1995|NIWeek 1995&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(1995)&amp;lt;/small&amp;gt;]] &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Style_Guide&amp;diff=34816</id>
		<title>Style Guide</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Style_Guide&amp;diff=34816"/>
		<updated>2024-12-05T22:00:44Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: fixed a bug in the connector pane section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
The following guidelines are provided as a reference for LabVIEW development. Individuals and organizations are encouraged to cater these to best serve their needs and preferences. &lt;br /&gt;
&lt;br /&gt;
= Organization and Names of Files =&lt;br /&gt;
The following guidance is applicable to all the items and artifacts that are contained within a LabVIEW Project, including VIs and containers such as Projects, Libraries, and Classes.&lt;br /&gt;
&lt;br /&gt;
== Organize all files logically ==&lt;br /&gt;
&lt;br /&gt;
You should organize directories and files so that someone with a reasonable skill level is able to navigate the directory structure.&lt;br /&gt;
&lt;br /&gt;
If you are consistently working on similar projects, you may want to come up with standards for your projects. The authors of this Guide have seen several different and reasonable directory organizations that were appropriate for different projects, which is why this Guide isn&#039;t detailed on this topic.&lt;br /&gt;
&lt;br /&gt;
== Naming Files and Directories ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Choose names so they are easy to read and describe the purpose of the file or directory &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Create names that describe the purpose of the file or directory.&lt;br /&gt;
- Use full words except where an abbreviation is well known by the intended audience, such as &amp;quot;USB Port&amp;quot; for &amp;quot;Universal Serial Bus Port&amp;quot;.&lt;br /&gt;
- Use book title case with single space characters between words.&lt;br /&gt;
- You may use dashes in situations where dashes are ordinarily used, such as for “Real-Time”.&lt;br /&gt;
- Make sure those names work in all relevant platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
Refer to Appendix A: Book Title Case for definition and examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Windows file path length limitation &#039;&#039;&#039;&lt;br /&gt;
When coming up with file and directory names, keep in mind the Windows file path length limitation of 260 characters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid special characters in file names &#039;&#039;&#039;&lt;br /&gt;
For greatest cross-platform compatibility and to simplify reading of file names, avoid the use of special characters in file names such as:&lt;br /&gt;
&lt;br /&gt;
* File separators like : (colon) / (forward-slash) \ (backward-slash).&lt;br /&gt;
* Symbols like ¢™$®.&lt;br /&gt;
* Punctuation marks, parentheses, quotation marks, brackets, and operators like . , [ ] { } ( ) ! ; &amp;quot; &#039; * ? &amp;lt; &amp;gt; |.&lt;br /&gt;
* White space characters such as tabs, new lines, and embedded returns. Note: Spaces are acceptable for most applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Do not use camel-case, Pascal-case, or underscore characters for separation of adjacent words &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bad:&#039;&#039; &lt;br /&gt;
- GRTC.lvproject&lt;br /&gt;
- GenRTCntrl.lvproj&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Good:&#039;&#039; &lt;br /&gt;
- GenericRealTimeControl.lvproj&lt;br /&gt;
- Generic Real-Time Control.lvproj&lt;br /&gt;
- ExitAllOnErr.vi&lt;br /&gt;
- Exit All on Error.vi&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use names of control VIs as labels &#039;&#039;&#039;&lt;br /&gt;
Use names of control VIs as labels for corresponding controls. For example, use the label &#039;&#039;alarm boolean&#039;&#039; as the label in Alarm Boolean.ctl.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Name polymorphic VI instances &#039;&#039;&#039;&lt;br /&gt;
Name polymorphic VI instances by using space-dash-space between the poly VI name and the specific instance designation. For example, if the poly VI is called Read My Special File.vi, then an instance VI may be called Read My Special File - I32.vi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; File and Directory Names for Examples, Templates, and Sample Projects &#039;&#039;&#039;&lt;br /&gt;
This subsection applies to the examples, templates, and sample projects installed in relevant directories within the LabVIEW directory structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;= Do not include the word &amp;quot;example&amp;quot; in any file or folder names &#039;&#039;&#039;=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;= Add a prefix to all example names when developing for a specific driver or addon &#039;&#039;&#039;=&lt;br /&gt;
Use the form `&amp;lt;Short Product Name&amp;gt;&amp;lt;space&amp;gt;&amp;lt;Example Name&amp;gt;`. E.g., NI-DAQmx Voltage - Continuous Input.vi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;= Avoid deeply nested file folders &#039;&#039;&#039;=&lt;br /&gt;
Ensure that none of your project’s file folders on disk are too deeply nested. If the user’s project contains a file with a path that exceeds 260 characters in length (for Windows), the project copy will fail. Aim for having a maximum path length of less than 150 characters so there is plenty of room to account for a user saving their project in a deeply-nested path.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;= Name your .lvproj file the same as the folder that contains it &#039;&#039;&#039;=&lt;br /&gt;
For templates and sample projects, name your .lvproj file the same as the folder that contains it, e.g., the “PC USRP-RIO Streaming” template folder contains “PC USRP-RIO Streaming.lvproj”.&lt;br /&gt;
&lt;br /&gt;
== Project Organization ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place the top-level VIs for the project directly under appropriate targets &#039;&#039;&#039;&lt;br /&gt;
Place the top-level VIs directly under the appropriate targets. Because you cannot mark a VI as a top-level VI, placing the top-level VIs under the corresponding target helps clarify which VIs are top-level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Organize VIs in a hierarchical directory &#039;&#039;&#039;&lt;br /&gt;
Organize VIs in a hierarchical directory with easily accessible top-level VIs and subVIs in subdirectories. Limit the number and level of directories in a project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place all VIs in libraries, classes, or virtual folders &#039;&#039;&#039;&lt;br /&gt;
Avoid using auto-populating folders unless you have a good reason to use them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Remove all unused files &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Remove all unused files both from the applicable projects/libraries and from the disk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Right-click the project root in the Project Explorer window and select Find Items with No Callers from the shortcut menu to display the Find Items with No Callers dialog box. This dialog box identifies all the items you can remove.&lt;br /&gt;
&lt;br /&gt;
== Libraries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Consider using virtual folders to delineate between public and private members of a library &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Consider using virtual folders to delineate between public and private members of a library.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place APIs in a library &#039;&#039;&#039;&lt;br /&gt;
Place APIs in a library to improve organization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Mark non-API VIs as private &#039;&#039;&#039;&lt;br /&gt;
Mark any VIs in a library as private if they are not part of the API.&lt;br /&gt;
&lt;br /&gt;
== LabVIEW Classes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Name all classes as nouns &#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Example:&#039;&#039;&lt;br /&gt;
- Name an example class Waveform Reader.lvclass rather than Reads Waveforms.lvclass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Name all member VIs of a LabVIEW class as verbs &#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Example:&#039;&#039;&lt;br /&gt;
- Name an example member VI Read Value.vi rather than Value.vi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid including the name of the class in VI names &#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Example:&#039;&#039;&lt;br /&gt;
- If we have a class &#039;&#039;Circle&#039;&#039; and it needs a VI to return the area, this VI should just be called &#039;&#039;Calculate Area&#039;&#039; as opposed to &#039;&#039;Calculate Circle Area&#039;&#039; or &#039;&#039;Circle Calculate Area.&#039;&#039; Note that LabVIEW provides a namespace for VIs in a library such that it is considered as &#039;&#039;Circle: Calculate Area.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use &amp;quot;Read&amp;quot; for VIs that read data &#039;&#039;&#039;&lt;br /&gt;
Use the word &amp;quot;Read&amp;quot; to begin the name of any VI that strictly reads data from the private data of a class. Avoid using the word &amp;quot;Get&amp;quot; or any synonym of &amp;quot;Get.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use &amp;quot;Write&amp;quot; for VIs that bundle data into the private data &#039;&#039;&#039;&lt;br /&gt;
Use the word &amp;quot;Write&amp;quot; to begin the name of any VI that strictly bundles data into the private data of a class. Avoid using the word &amp;quot;Set&amp;quot; or any synonym of &amp;quot;Set.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use Book Title Case for class virtual folders and VI names &#039;&#039;&#039;&lt;br /&gt;
Use Book Title Case for all class virtual folders and VI names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- When auto-created by LV, the class property virtual folder name and the class property VI names may initially match the case of the control label in the class control. Since labels should follow the label guidelines listed in section 3.1.8, you may need to change the class property virtual folder and VI names to be Book Title Case.&lt;br /&gt;
- The name of a class property virtual folder is used as the name in a class property node.&lt;br /&gt;
- Because this is auto-generated by LV and may be tedious to change, this guideline is a recommendation at this time.&lt;br /&gt;
- A LabVIEW Developer tool may be created that will correct the auto-generated virtual folder and VI names to match these guidelines.&lt;br /&gt;
&lt;br /&gt;
= Monitor Size, Window Size, and Window Placement =&lt;br /&gt;
&lt;br /&gt;
* Code should look good on a 1536 x 824 monitor: Write code so that it looks good on a monitor with 1536 x 824 pixels for most individual file windows, or the target monitor size if designing a UI front panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
* If you have a computer running Windows 10, 1536 x 824 pixels corresponds to 1920 x 1080 pixel resolution with 125% scaling. These are often default settings on a 15&amp;quot; laptop.&lt;br /&gt;
* With properly configured LabVIEW.ini tokens you can use the Arrange VI Window Quick Drop (Ctrl-Space, Ctrl-F) to make sure your VI front panel and block diagram windows comply with this guideline.&lt;br /&gt;
* VIWin.DisplayWorkspaceRight=1536&lt;br /&gt;
* VIWin.DisplayWorkspaceBottom=824&lt;br /&gt;
&lt;br /&gt;
== Save files with minimal white space ==&lt;br /&gt;
Save files so all relevant content that can be shown is shown without showing a lot of extraneous white space.&lt;br /&gt;
&lt;br /&gt;
== Position window near the upper-left corner of the monitor ==&lt;br /&gt;
Save files so the upper left corner of the window is close to the upper left corner of the monitor.&lt;br /&gt;
&lt;br /&gt;
= VI Window Considerations =&lt;br /&gt;
&lt;br /&gt;
== Size the windows so the entire toolbar fits ==&lt;br /&gt;
(VI Analyzer) Size the windows so the entire toolbar fits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Use front panel cleanup to comply with this guideline for front panels. Use Arrange VI Window Quick Drop (Ctrl-Space, Ctrl-F) to comply with this guideline for block diagrams.&lt;br /&gt;
&lt;br /&gt;
== Size front panels and block diagram windows appropriately ==&lt;br /&gt;
Size the front panel and block diagram windows reasonably for the content and never full-screen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Use Arrange VI Window Quick Drop (Ctrl-Space, Ctrl-F) to comply with this guideline.&lt;br /&gt;
&lt;br /&gt;
== Consider sizing panels with tall type definitions ==&lt;br /&gt;
If a front panel contains a tall type definition cluster, consider sizing the panel to fit existing regular controls and include part of the type definition.&lt;br /&gt;
&lt;br /&gt;
[[File:Items.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Include wide type definition clusters in the panel ==&lt;br /&gt;
If a front panel contains a wide type definition cluster, consider including the cluster below the visible screen and a note indicating that the user can scroll down to see it.&lt;br /&gt;
[[File:Items wide.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Entire block diagram should fit on the monitor ==&lt;br /&gt;
The entire block diagram of a VI should fit on the monitor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- If this guideline is impossible to comply with, write the block diagram so you can read it scrolling in only one direction.&lt;br /&gt;
&lt;br /&gt;
= VI, Library, and Class Interfaces =&lt;br /&gt;
&lt;br /&gt;
== Front Panel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Set reasonable default values for controls &#039;&#039;&#039;&lt;br /&gt;
Set reasonable default values for controls. Use data type defaults for indicators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid overlapping labels and displays &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Avoid overlapping the labels, digital displays, or other parts of controls and indicators.&lt;br /&gt;
- Allow for extra space between controls and indicators to account for font changes on different platforms, and for Windows scale and layout settings.&lt;br /&gt;
- Overlapped controls and indicators slow down screen updates and can make the control or indicator flicker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use path controls and indicators &#039;&#039;&#039;&lt;br /&gt;
Use path controls and indicators instead of string controls and indicators to specify the location of files or directories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- Unlike strings, path controls format paths using the standard syntax for the platform you use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Set appropriate browse options for path controls &#039;&#039;&#039;&lt;br /&gt;
When using path controls, set the browse options appropriately. For example, if a path control is intended for existing directories, select the Folders only and Existing only options on the Browse Options page of the Properties dialog box.&lt;br /&gt;
&lt;br /&gt;
== GUI VI Front Panels ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039;&lt;br /&gt;
In this context, a GUI is a VI front panel that is used as a visual part of a UX, for example the visual piece of a LabVIEW-built application or the visual piece of a plug-in to a framework. As a counter-example, VIs that are parts of APIs are not considered GUI VIs, even if they happen to go on palettes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Minimize the use of colors &#039;&#039;&#039;&lt;br /&gt;
Minimize the use of colors. Use colors logically and consistently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Hide the toolbar &#039;&#039;&#039;&lt;br /&gt;
Hide the toolbar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use consistent control styles &#039;&#039;&#039;&lt;br /&gt;
Use one consistent style for all controls. Use system controls when possible.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Customize appearance with strict type definitions &#039;&#039;&#039;&lt;br /&gt;
Use custom controls or strict type definition controls to customize the appearance of a control. Use strict type definition controls only to preserve the exact appearance of a control in each location of use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use standard fonts &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use the standard application, system, and dialog fonts for all user interfaces in the application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Use the standard font unless you have a specific reason to use a different font. For example, you can use monospace fonts because they are proportionally spaced for string controls and indicators that constrict character use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Configure numeric inputs to coerce values &#039;&#039;&#039;&lt;br /&gt;
Configure numeric inputs to coerce values to the valid data range if applicable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Arrange controls logically &#039;&#039;&#039;&lt;br /&gt;
Arrange controls from top left to bottom right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Place controls in the order of typical use. For top-level VIs visible to users, place the most important controls in the most prominent positions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Organize UI elements with logical layout &#039;&#039;&#039;&lt;br /&gt;
Organize UI elements using proximity, alignment, decorations, and UI features such as tab controls and subpanels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Configure the front panel to fit the monitor &#039;&#039;&#039;&lt;br /&gt;
Configure the front panel to fit the monitor resolution used in the application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Monitor resolution used in the deployed system may be different from monitors used for development.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use labels for controls and indicators &#039;&#039;&#039;&lt;br /&gt;
Use labels to describe the function of controls and indicators. Limit caption use to controls and indicators that require more information than the label conveys or when you need the ability to change the display text of a control programmatically.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Situation !! Example&lt;br /&gt;
|-&lt;br /&gt;
| If the control is visible to the user, use captions to display a long description and add a short label to prevent using valuable space on the block diagram. || When you label a ring or slide control with options for volts, ohms, or amperes, selecting a caption such as &amp;quot;select units for display&amp;quot; is more usable than the label V/O/A. Use Property Nodes to change captions programmatically.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| If you use the VI with the control on multiple platforms, avoid using special characters in control names.	 || Use degree Celsius instead of °C because the ° symbol might not display correctly on all platforms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Use captions for descriptive text if the label is insufficient.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Set intuitive keyboard shortcuts &#039;&#039;&#039;&lt;br /&gt;
Set up intuitive keyboard shortcuts and tabbing order for controls.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Some users prefer to use the keyboard instead of a mouse. Consider including keyboard shortcuts for VIs, even if the use of a mouse is available. Set the tabbing order for controls from left to right and top to bottom. Use the &amp;lt;Enter&amp;gt; key for the default control and the &amp;lt;Esc&amp;gt; key for the Cancel button.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Write descriptions and tip strips &#039;&#039;&#039;&lt;br /&gt;
Write descriptions and create tip strips for UI front panels and controls to describe the purpose of an object and give users instructions for using the object.&lt;br /&gt;
&lt;br /&gt;
== Dialog Front Panels ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use system control style &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use the system control style when possible to ensure that dialogs look consistent with the operating system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Do not use scroll bars on entire front panels &#039;&#039;&#039;&lt;br /&gt;
Do not show scroll bars on the entire front panel windows. Design the dialog box to display all information. Use scroll bars on individual controls and indicators as appropriate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Set the VI Window Appearance to Dialog through File &amp;gt; VI Properties.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Provide meaningful window titles &#039;&#039;&#039;&lt;br /&gt;
Provide a meaningful window title that explains the purpose of the dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid default menus &#039;&#039;&#039;&lt;br /&gt;
If the dialog has menus, only use menus that are specific to the dialog window. Avoid using default menus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Limit dialog box use &#039;&#039;&#039;&lt;br /&gt;
Limit dialog box use to critical user interactions. Avoid overusing dialogs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Ensure dialogs are modal or floating &#039;&#039;&#039;&lt;br /&gt;
Make sure that all dialogs are either modal to the main application or floating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the system panel background color &#039;&#039;&#039;&lt;br /&gt;
Use the system panel background color for dialog user interfaces to maintain consistency.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Center the dialog on the main monitor &#039;&#039;&#039;&lt;br /&gt;
Center the dialog on the main monitor.&lt;br /&gt;
&lt;br /&gt;
== Non-GUI VI Front Panels ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use default colors for UI elements &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use the default colors for all UI elements of the front panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Arrange controls and indicators relative to connector pane terminals &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Arrange controls and indicators relative to corresponding connector pane terminals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Use Arrange VI Window Quick Drop (Ctrl-Space, Ctrl-F) to arrange the panel objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Group related data into clusters &#039;&#039;&#039;&lt;br /&gt;
Consider grouping related input and output data into clusters. Make the cluster a type definition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use Modern style controls &#039;&#039;&#039;&lt;br /&gt;
Use Modern style controls, except if you use a type definition from a dependency that isn’t a Modern style control.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use buttons for Boolean controls and LEDs for Boolean indicators &#039;&#039;&#039;&lt;br /&gt;
Make sure controls look like controls and indicators look like indicators. For example, use buttons for Boolean controls and LEDs for Boolean indicators, except if you use a type definition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use labels, not captions, unless localization is required &#039;&#039;&#039;&lt;br /&gt;
Use control and indicator captions only if you need to localize non-GUI VIs. Otherwise, only use labels.&lt;br /&gt;
&lt;br /&gt;
== Control and Indicator Labels/Captions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Choose descriptive names &#039;&#039;&#039;&lt;br /&gt;
Choose names so they are easy to read and describe the purpose of the control or indicator.&lt;br /&gt;
&lt;br /&gt;
- Create names that describe the purpose of the control or indicator.&lt;br /&gt;
- Use full words except where an abbreviation is well known by the intended audience, such as &amp;quot;USB Port&amp;quot; for &amp;quot;Universal Serial Bus Port&amp;quot;.&lt;br /&gt;
- In GUI VIs, use Book Title Case.&lt;br /&gt;
- In non-GUI VIs, use all lowercase characters except for proper nouns and common uppercase abbreviations.&lt;br /&gt;
- Use single space characters between words.&lt;br /&gt;
- You may use dashes in situations where dashes are ordinarily used, such as for &amp;quot;Real-Time.&amp;quot;&lt;br /&gt;
- Make sure those names work on all relevant platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Refer to Appendix A: Book Title Case for definition and examples.&lt;br /&gt;
- In this context, a GUI is a VI front panel that is used as a visual part of a UX, for example, the visual piece of a LabVIEW-built application or the visual piece of a plug-in to a framework. As a counter-example, VIs that are parts of APIs are not considered GUI VIs, even if they happen to go on palettes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid duplicate labels &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Avoid using duplicate labels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Add &amp;quot;in&amp;quot; and &amp;quot;out&amp;quot; to input/output pairs &#039;&#039;&#039;&lt;br /&gt;
If a VI contains an input and output pair, add a suffix of &amp;quot;in&amp;quot; to the control label and a suffix of &amp;quot;out&amp;quot; to the indicator label. For example, if a VI includes an input called object in, name the corresponding output object out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Label error inputs and outputs as &amp;quot;error in&amp;quot; and &amp;quot;error out&amp;quot; &#039;&#039;&#039;&lt;br /&gt;
If a VI has an error input or an error output, label them as &amp;quot;error in&amp;quot; and &amp;quot;error out&amp;quot; exactly as shown, unless there is a specific reason not to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- There is no value in including the default value (&amp;quot;no error&amp;quot;) because you never want a different default value for the error input.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use parenthesis in labels only for units &#039;&#039;&#039;&lt;br /&gt;
Use parenthesis in labels only to document units of a control or indicator when it makes sense to do so.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Avoid using parenthesis for any other purposes.&lt;br /&gt;
- You should not include the default value in the label in parenthesis.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use SI units &#039;&#039;&#039;&lt;br /&gt;
When including units in a label, use units approved and documented in The International System of Units.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Refer to Appendix B: The International System of Units for a list of conventional units.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use &amp;quot;Size to Text&amp;quot; for labels &#039;&#039;&#039;&lt;br /&gt;
Use Size to Text for labels so the text rectangle automatically resizes to accommodate the text you enter. By default, Size to Text is enabled for one line of text.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- The three standard fonts (application, system, and dialog) vary depending on the platform. For example, preferences and video driver settings in Windows affect the size of the fonts. Text may appear larger or smaller on different systems. To compensate for font variations, allow extra space for larger fonts and enable the Size to Text option via the label&#039;s shortcut menu.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the default Application font for labels &#039;&#039;&#039;&lt;br /&gt;
Use the default Application font with all default cosmetic settings unless you have a good reason not to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use transparent background color for labels &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use transparent background color for labels.&lt;br /&gt;
&lt;br /&gt;
== Free Labels on Front Panels ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid the use of free labels on front panels &#039;&#039;&#039;&lt;br /&gt;
Avoid the use of free labels on front panels except where particularly useful.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Example Exceptions:&#039;&#039;&lt;br /&gt;
- VI Analyzer template front panels contain useful free labels instructing you what not to change about the controls and indicators.&lt;br /&gt;
- Certain globals used as constants contain useful free labels reminding you to save changes to control values as default values.&lt;br /&gt;
- Some example programs contain useful instructions on front panels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use carriage returns only to separate paragraphs &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use carriage returns in free labels only to separate paragraphs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use Size to Text for single-line labels &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) If a free label occupies a single line, use Size to Text. Size free labels with multiple lines so that all the text is visible and provide extra space at the bottom of a free label to account for font size changes across platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the standard application font for free labels &#039;&#039;&#039;&lt;br /&gt;
Use the standard application font for free labels unless you have good reasons not to do so.&lt;br /&gt;
&lt;br /&gt;
== Classes and Property Nodes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Support Property Node syntax for data accessors &#039;&#039;&#039;&lt;br /&gt;
Consider supporting the syntax of Property Nodes for data accessor VIs. However, accessors that use Property Node syntax require error terminals and take more time to execute than data accessor VIs without error terminals. Evaluate and choose appropriately for each class.&lt;br /&gt;
&lt;br /&gt;
== VI Description ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Describe what the VI does in the VI Description text box &#039;&#039;&#039;&lt;br /&gt;
For each VI intended to be used by others, such as API VIs and examples, describe what the VI does in the VI Description text box.&lt;br /&gt;
&lt;br /&gt;
== VI Connector Pane ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the 4x2x2x4 conpane for all VIs &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use the default 4x2x2x4 conpane for all VIs, which provides 12 terminals total. This pattern provides a balance of flexibility of terminal location and density of terminals. Connector panes with more terminals (such as 5x3x3x5) can be difficult to wire due to the smaller terminal size. If you find yourself needing to increase the number of terminals on your subVI beyond 12, your subVI may not be sufficiently modular, and may require a redesign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use left terminals for controls and right terminals for indicators &#039;&#039;&#039;&lt;br /&gt;
Use the left terminals for controls and right terminals for indicators. When using the top and bottom terminals, place all controls to the left of indicators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place related controls and indicators at the same relative position &#039;&#039;&#039;&lt;br /&gt;
Place related controls and indicators at the same relative position on the connector pane. For example, if you assign a data in control to the top left terminal, assign the corresponding data out indicator to the top right terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Ensure consistency for similar controls across APIs &#039;&#039;&#039;&lt;br /&gt;
If a control or indicator serves the same function throughout an API, name the control or indicator consistently and place it in the same position throughout all API connector panes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place paths, references, and classes in the top corners &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Place paths, references, and LabVIEW Classes in the top corners.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place error terminals at the bottom corners &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Assign error in and error out terminals to the corresponding bottom left and right terminals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Preserve empty terminals for future expansion &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Preserve empty terminals on the connector pane to allow for future expansion.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Set required terminals for must-wire inputs &#039;&#039;&#039;&lt;br /&gt;
Configure input terminals for parameters that must be wired for the VI to function as Required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Set recommended terminals for inputs with good defaults &#039;&#039;&#039;&lt;br /&gt;
Configure input terminals that have good default values as Recommended. If you are not sure whether an input should be required or not, make it Required.&lt;br /&gt;
&lt;br /&gt;
== VI, Library, and Class Icons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use glyphs for high-visibility VIs &#039;&#039;&#039;&lt;br /&gt;
Use glyphs in icons for VIs that will have high visibility, such as APIs for software products. Use text in icons otherwise.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- The effort required to create good glyph-based icons is rarely justified for VIs with limited audience.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Always create standard size (32x32 pixel) icons &#039;&#039;&#039;&lt;br /&gt;
Always create standard size (32x32 pixel) icons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exceptions:&#039;&#039;&lt;br /&gt;
- In very rare cases it may be appropriate to have a shorter icon. For example, if you use an enumeration with names of hardware registers, you may want to use a short icon for a commonly used register-name-to-register-address subVI to preserve block diagram space in subVI call locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use glyphs from the Glyphs tab in the icon editor when applicable &#039;&#039;&#039;&lt;br /&gt;
Use glyphs from the Glyphs tab in the icon editor when applicable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid using colloquialisms in icons &#039;&#039;&#039;&lt;br /&gt;
Avoid using colloquialisms in icons because they may not work across cultures and languages. For example, avoid representing a data logging VI with a picture of a tree branch or a lumberjack. On the other hand, a pencil is generally understood as a utensil for writing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use standard text settings for icons &#039;&#039;&#039;&lt;br /&gt;
Use the following font settings for the text used in icons:&lt;br /&gt;
- Font: Small Fonts&lt;br /&gt;
- Alignment: Center&lt;br /&gt;
- Size: 9&lt;br /&gt;
- Center text vertically: Checked&lt;br /&gt;
- Capitalize text: Checked&lt;br /&gt;
- Color: Black, with a possible exception for the library layer set forth below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use text that matches all or part of the VI name &#039;&#039;&#039;&lt;br /&gt;
Use text that matches all or part of the VI name in the icon.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Limit the text to three lines with a library or class banner &#039;&#039;&#039;&lt;br /&gt;
Limit the text to three lines if a library or class icon banner is included or to four lines otherwise.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; For non-library VIs, use a plain transparent square with a single pixel black border &#039;&#039;&#039;&lt;br /&gt;
For VIs that are not part of a library or class, use a plain transparent square with a single pixel black border as the base layer for the icon.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; For library or class VIs, use a library layer with a black border &#039;&#039;&#039;&lt;br /&gt;
For VIs that are part of a library or class, use a library layer and a plain transparent square with a single pixel black border as the base layers for the icon.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use 32x9 pixel rectangles for library/class banners &#039;&#039;&#039;&lt;br /&gt;
Use 32x9 pixel rectangles with black frames for library and class library icons. Position those rectangles at the very top of the 32x32 pixels allocated for the icons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Reduce the size of the default library and class icon by three vertical pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- Taking into account a pixel for the bottom border, this leaves 22 vertical pixels for individual VI icons. If you are using text with the settings specified below, and you have three lines of text, 23 vertical pixels give you two pixels of vertical spacing between the top and text, two pixels of vertical spacing between the lines, and one pixel of vertical spacing between the last line and the bottom border, which makes the text for the individual icon look reasonably good.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Limit text in the banner to a single line &#039;&#039;&#039;&lt;br /&gt;
Limit text in the banner of the library and class icons to a single line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Ensure contrast between front and background colors &#039;&#039;&#039;&lt;br /&gt;
If you put text in the library or class icon banner, make sure there is enough contrast between front and background colors so that you can easily read the text.&lt;br /&gt;
- If the library icon background color is light, use black color for the text.&lt;br /&gt;
- If the library icon background color is dark, use white color for the text.&lt;br /&gt;
&lt;br /&gt;
== LabVIEW Class Wires ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid excessive wire patterns and colors &#039;&#039;&#039;&lt;br /&gt;
Avoid creating excessive wire patterns and colors if you change the wire appearance of a LabVIEW class wire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- The number of colors and patterns in the block diagram window can affect the readability of LabVIEW code. Change the wire appearance of LabVIEW class wires only if necessary to differentiate between other class wires in the block diagram window.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use dark colors on the exterior of class wires &#039;&#039;&#039;&lt;br /&gt;
Use dark colors on the exterior of class wires to provide contrast against the white background.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use refnum color for wires if the private data contains only refnum types &#039;&#039;&#039;&lt;br /&gt;
If the private data of a class contains only refnum types, use the standard refnum color for the class wire. Locate the color named &amp;quot;Refnum Wire&amp;quot; in the User Colors dialog box for the LabVIEW color picker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039;&lt;br /&gt;
- This guideline takes precedence over other wire color guidelines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Match class wire color to the icon banner color &#039;&#039;&#039;&lt;br /&gt;
Make the color of the class wire match the color of the class icon banner.&lt;br /&gt;
&lt;br /&gt;
= Programming VI Block Diagrams =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid duplicating code &#039;&#039;&#039;&lt;br /&gt;
Avoid duplicating code. Use subVIs or loops, as appropriate, to avoid code duplication.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Remove unused code &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Remove unused code from block diagrams.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid race conditions with appropriate synchronization &#039;&#039;&#039;&lt;br /&gt;
Avoid race conditions by using appropriate synchronization techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- You can use queues, data value references, and semaphores to prevent race conditions.&lt;br /&gt;
- You can also use functional global variables to prevent race conditions if the functional global variable protects a critical code section containing actions that modify data.&lt;br /&gt;
- However, you cannot use a functional global variable to prevent race conditions if the functional global variable protects sections containing actions that only read and write data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Handle unsupported values appropriately &#039;&#039;&#039;&lt;br /&gt;
Handle all unsupported values appropriately.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Example:&#039;&#039;&lt;br /&gt;
- If you create an API, consider returning an error for unsupported inputs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid creating platform-specific versions of VIs &#039;&#039;&#039;&lt;br /&gt;
When designing multi-platform VIs, avoid creating per-platform versions of a VI. Instead, place platform-specific functionality in a Conditional Disable structure specific to a target.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Specifically, pay attention to Call Library Function Nodes as library file extensions may be different between platforms. If applicable, use an asterisk instead of the library file extension so the same configuration works on different platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid using absolute paths &#039;&#039;&#039;&lt;br /&gt;
Avoid using absolute paths.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- When possible, either use relative paths and define a root path in your code or determine the root path dynamically at run-time based on system settings or the application location. Ensure that relative file paths work for the operating system on which the code is intended to run.&lt;br /&gt;
- Absolute paths can cause problems when you build an application or run the VI on a different computer. If you must use an absolute path, consider ensuring that you include code to check whether the path exists and to create a path if the path does not exist.&lt;br /&gt;
&lt;br /&gt;
== Layout and Wiring ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use a left-to-right and top-to-bottom layout &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use a left-to-right and top-to-bottom layout.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Ensure data flows left to right &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Wire so data flows from left to right, unless you use feedback nodes. If you need to use vertical wires in addition to horizontal wires, top-to-bottom flow is preferred over bottom-to-top flow when practical.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- If your diagram contains a wire from right to left that is not associated with a feedback node, explain that decision using a wire label or an attached label.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid using long wires unless necessary &#039;&#039;&#039;&lt;br /&gt;
Avoid using long wires unless you have good reasons. If you must use long wires, use wire labels on those wires.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Wire neatly and efficiently &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Wire neatly and efficiently. Keep the number of bends and wire crossings reasonable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- Poor wire organization can make the block diagram difficult to read and debug or make the VI appear to do things it does not do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Arrange objects neatly on the block diagram &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Neatly arrange objects on the block diagram.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Use the Align Objects and Distribute Objects pull-down menus on the toolbar to arrange objects on the block diagram.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid leaving front panel terminals unwired &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) When possible, avoid leaving front panel terminals unwired on the block diagram. Do not use a variable when you can use a terminal wire to transfer data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- LabVIEW is a data flow language, so wires are preferred from the maintainability perspective. Also, every local variable that reads the data makes a copy of the data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Align control terminals to the left, indicator terminals to the right &#039;&#039;&#039;&lt;br /&gt;
Align control terminals to the far left and indicator terminals to the far right of the block diagram. Align controls along their right edges and indicators along their left edges.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exception:&#039;&#039;&lt;br /&gt;
- This does not apply to indicator terminals used inside structures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Lay objects neatly with reasonable spacing &#039;&#039;&#039;&lt;br /&gt;
Lay objects neatly and with reasonable spacing to create a visually appealing block diagram. Do not wire under objects. Avoid unnecessary white space and overcrowding of the block diagram. Provide just enough white space for visual guidance.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- To increase space between tightly grouped objects, press &amp;lt;Ctrl&amp;gt; and drag in the direction you want to add space. (MacOS) Press &amp;lt;Option&amp;gt;.&lt;br /&gt;
- To reduce space between scattered objects, press &amp;lt;Ctrl-Alt&amp;gt; and drag in the direction you want to remove space. (MacOS) Press &amp;lt;Option-Ctrl&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Colors ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid coloring diagrams &#039;&#039;&#039;&lt;br /&gt;
Avoid coloring diagrams. Color can distract users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use default colors for structures &#039;&#039;&#039;&lt;br /&gt;
Use default colors for structures, such as Case or Event structures.&lt;br /&gt;
&lt;br /&gt;
== Structures ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid using Sequence structures &#039;&#039;&#039;&lt;br /&gt;
Avoid using Sequence structures unless you must use them to define execution order.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Arrange parallel loops vertically &#039;&#039;&#039;&lt;br /&gt;
If you have several loops that execute in parallel, arrange them vertically if possible.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid placing control and indicator terminals inside loops or structures &#039;&#039;&#039;&lt;br /&gt;
Avoid placing control and indicator terminals inside loops or structures unless the values need to be read or updated regularly, like a latched Boolean in its value change event case or a graph in a while loop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Set conditional structures wide enough to show full case or event selector &#039;&#039;&#039;&lt;br /&gt;
Set conditional structures such as Case structures and Event structures wide enough to view the full case selector, event selector, or similar text. If you have multiple conditions in the same frame, you may make an exception (and not show all of the text) to avoid increasing the structure width.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Save VIs with the most important frame of multi-frame structures visible &#039;&#039;&#039;&lt;br /&gt;
Save each VI with the most important frame of multi-frame structures visible.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Wire selector terminal inside Case structures &#039;&#039;&#039;&lt;br /&gt;
When you use a Case structure, avoid creating a separate tunnel for the wire connected to the selector terminal. Instead, wire the selector terminal inside the structure.&lt;br /&gt;
&lt;br /&gt;
[[File:Case Structure Tunnels.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid converting non-Boolean types to Booleans for Case selectors &#039;&#039;&#039;&lt;br /&gt;
Do not convert integers, enums, strings, and error clusters to Booleans only to wire such Booleans into the selectors of Case structures. Use non-Boolean selectors instead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Do not include default case for Case structures wired to enums &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Do not include a default case for Case structures wired to enums.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- If you add a new element to an enum wired to the default case of a Case structure, the code executes the default case, which is unlikely to be desired behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exception:&#039;&#039;&lt;br /&gt;
- You may include a default case if you have an enum with a large number of values and a case structure where non-default cases apply only to a handful of values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use In Place Element structure to modify data structures &#039;&#039;&#039;&lt;br /&gt;
When applicable, use the In Place Element structure to clearly convey that elements of a data structure are getting modified. Use of the In Place Element structure may also be beneficial from the performance perspective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Ensure that For Loops behave as expected if they execute zero times &#039;&#039;&#039;&lt;br /&gt;
Ensure that For Loops behave as expected if they execute zero times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- If necessary, use a shift register to pass a value through the loop in this situation. If you wire a value or a reference to pass through a For Loop, use shift registers instead of tunnels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Identify number of times a For Loop executes &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Verify that you can easily identify the number of times a For Loop executes. Avoid using both Auto-indexing and the N terminal to govern iterations of the same For Loop. If you use more than one of these options, you can cause confusion about how many times the loop executes. Be cautious when auto-indexing on multiple arrays, as such arrays may have different sizes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use Event Structure to monitor UI events instead of polling &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use an Event Structure to monitor UI events and other applicable events instead of polling, where appropriate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Avoid polling front panel controls when you can use a Value Change event in an Event Structure more appropriately.&lt;br /&gt;
- Place the control terminal for a Value Change event configured for a control in the Value Change event case.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exception:&#039;&#039;&lt;br /&gt;
- The following illustration shows a situation in which you can acceptably place the control terminal as a stop button outside the event structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Resize Event Data Nodes to contain only necessary data &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Resize Event Data Nodes to contain only data being used. If the node is not used, resize the node to one element and move it to a corner of the frame. In LabVIEW 2020 and later, you can right-click on the frame to hide the event data nodes entirely (Visible Items &amp;gt;&amp;gt; Event Data Node for This Case).&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Display the subVI icon instead of the connector pane &#039;&#039;&#039;&lt;br /&gt;
Make sure the subVI icon, rather than the connector pane, is visible on the block diagram.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- A well-designed subVI icon is more helpful than the connector pane on the block diagram.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- If you see a subVI call with the connector pane, right-click the subVI call, select Visible Items, and make sure that the Terminals option does not contain a checkmark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Display terminals for front panel objects &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Display the terminal for front panel objects on the diagram, not the icon. You may make exceptions for type definitions. Well-designed type definition icons display useful information about the type definitions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tips:&#039;&#039;&lt;br /&gt;
- To make an exception for a type definition, right-click the corresponding terminal and select Show as Icon.&lt;br /&gt;
- Navigate to Tools &amp;gt; Options &amp;gt; Block Diagram to change the default for this option.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use built-in LabVIEW string constants &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Avoid creating a string constant that contains a single, difficult-to-read value. Use the built-in LabVIEW string constants. For example, use a Space Constant instead of a String Constant with a single space.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use Bundle by Name and Unbundle by Name for clusters &#039;&#039;&#039;&lt;br /&gt;
Use the Bundle by Name and Unbundle by Name functions when you access cluster elements. Avoid using the unnamed Bundle and Unbundle functions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Show index display for array constants &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Array constants on block diagrams must include index or indices display. Array constants must display all elements of the array and the next empty element, if practical. If only a subset of elements can be displayed, the constant must have a scroll bar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Show names for Property, Invoke, and Call Library Function Nodes &#039;&#039;&#039;&lt;br /&gt;
Make sure that Property Node, Invoke Node, Call Library Function Node, and similar nodes are shown with names. If both short and long names are available, use short names to preserve space.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exception:&#039;&#039;&lt;br /&gt;
- The Long Names option may be appropriate in certain instances. For example, use the Long Names option for an element if that element shares the same short name with another element.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid using named queues and notifiers &#039;&#039;&#039;&lt;br /&gt;
Avoid using named queues and named notifiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- If possible, pass the reference wire in place of using named queues and notifiers. If you must use named queues and named notifiers, avoid name collisions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Close every reference opened &#039;&#039;&#039;&lt;br /&gt;
Make sure the code closes every reference it opens. If practical, open and close references in the same VI.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- You can use subVIs for opening and closing references. If you use subVIs to open or close a reference, pair the subVIs up. Use VI names and icons that reflect these pairings. For example, use pairs of words such as &amp;quot;Open&amp;quot; and &amp;quot;Close&amp;quot; or &amp;quot;Obtain&amp;quot; and &amp;quot;Release.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exception:&#039;&#039;&lt;br /&gt;
- You don&#039;t need to close references to GObjects because they get closed automatically when the VI reference is closed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use path constants for file locations &#039;&#039;&#039;&lt;br /&gt;
Use path constants instead of string constants to specify the location of files or directories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rationale:&#039;&#039;&lt;br /&gt;
- Unlike strings, path constants format paths using the standard syntax for the platform you use.&lt;br /&gt;
&lt;br /&gt;
== Data Types ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid using strict type definitions &#039;&#039;&#039;&lt;br /&gt;
Do not use strict type definitions unless the control or indicator is used in multiple UI VIs, and you want to keep consistent appearance in those locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use type definitions for enums and clusters &#039;&#039;&#039;&lt;br /&gt;
Use type definitions for enums and clusters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use enums instead of rings &#039;&#039;&#039;&lt;br /&gt;
Use enums instead of rings unless you have a strong reason not to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exceptions:&#039;&#039;&lt;br /&gt;
- If you must use a ring control, configure it as a strict type definition so that all menu items update for each use. If you do create a strict type definition, extend the size beyond the longest words to allow for easier expansion of future options. Ring controls allow you to easily interact with front panels if you want to programmatically change the string labels.&lt;br /&gt;
- Use rings instead of enums for controls and indicators on VIs that are part of a public API where the item names must be localized.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid creating clusters with identical element names &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Avoid creating clusters that contain multiple elements with identical names.&lt;br /&gt;
&lt;br /&gt;
== Timing ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Provide a mechanism to abort infinite timeouts &#039;&#039;&#039;&lt;br /&gt;
If you use an infinite timeout, consider providing a mechanism to abort the wait.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid arbitrary timing delays &#039;&#039;&#039;&lt;br /&gt;
Avoid using arbitrary timing delays. If an important event executes during a delay, make sure that the important event occurs before proceeding. If you must use a delay, provide a comment about the purpose of the delay and the rationale behind the duration.&lt;br /&gt;
&lt;br /&gt;
== Labels and Comments ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Document non-obvious constants &#039;&#039;&#039;&lt;br /&gt;
Use a specific and detailed label or attached comment to document constants that contain non-obvious values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use comments to explain non-obvious code &#039;&#039;&#039;&lt;br /&gt;
Use comments on the block diagram to explain code when the reasoning behind the code is not obvious. When practical, use constant labels, attached labels, structure labels, or subdiagram labels rather than free labels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Do not include default values in constant labels &#039;&#039;&#039;&lt;br /&gt;
Do not include default values in constant labels. This typically comes up when creating constants by right-clicking on function terminals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Label shift registers and wires when necessary &#039;&#039;&#039;&lt;br /&gt;
Label shift registers and wires when the content is potentially unclear or confusing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place terminal labels correctly &#039;&#039;&#039;&lt;br /&gt;
Place terminal labels to the middle left of the terminal for controls and to the middle right of the terminal for indicators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use line feeds in comments only for paragraphs &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use line feeds in comments only to separate paragraphs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use Size to Text only for single-line labels &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use Size to Text setting only for single-line labels. Size multi-line labels so that all the text is visible and provide extra space at the bottom of a free&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the standard application font for labels &#039;&#039;&#039;&lt;br /&gt;
Use the standard application font for labels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use default text and background colors for labels &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use the default text and background colors for all labels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exceptions:&#039;&#039;&lt;br /&gt;
- You can make exceptions under special circumstances, such as for background color for #CodeRequired and #CodeRecommended labels in templates and sample projects.&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Handle errors appropriately &#039;&#039;&#039;&lt;br /&gt;
Handle errors appropriately.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Carefully consider every place in the code that may generate an error.&lt;br /&gt;
- Add comments to explain any potentially confusing decisions about error handling.&lt;br /&gt;
- Use a consistent error handling strategy. Make sure the program can deal with all error conditions. Determine the actions for errors, such as log, terminate, and/or notify the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Disable automatic error handling &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Disable automatic error handling for all VIs, including new VIs. Automatic error handling stops execution in the event of an error and waits on an input before continuing. This automatic stopping can cause problems in a deployed system or application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tips:&#039;&#039;&lt;br /&gt;
- Navigate to Tools &amp;gt; Options &amp;gt; Block Diagram &amp;gt; Error Handling to change the default for new VIs.&lt;br /&gt;
- To change the setting on existing VIs, navigate to File &amp;gt; VI Properties &amp;gt; Execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Exception:&#039;&#039;&lt;br /&gt;
- You may use automatic error handling during development, but make sure it is disabled by the build process, so it is not used by a deployed system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Prioritize errors during error merging &#039;&#039;&#039;&lt;br /&gt;
Carefully consider the priority of errors when merging them. Give priority to errors that occurred first unless you have a good reason not to do so.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- When using the Merge Errors function, wire the first error to the top input terminal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Consider creating a custom error file &#039;&#039;&#039;&lt;br /&gt;
Consider creating a custom error file to contain all the error descriptions for an application or a library.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid reallocating memory inside loops &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Unless necessary, avoid including code that reallocates memory inside of loops, such as code that contains the Build Array or Concatenate Strings functions. Reallocating memory inside of loops can cause slow performance.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid unnecessary type coercions &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Avoid unnecessary type coercions. Type coercions can allocate memory and cause slow performance.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid unnecessary data copies &#039;&#039;&#039;&lt;br /&gt;
Avoid unnecessary data copies, especially if the data is large.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Open and close resources outside of loops &#039;&#039;&#039;&lt;br /&gt;
Consider placing code that opens and closes resources, such as DAQ or File I/O code, outside of loops. Repeatedly opening and closing references inside of a loop is inefficient.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Separate application timing from execution timing &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Make an explicit decision to separate application timing from execution timing. Include code to limit the execution speed of continuously running loops when they don&#039;t need to execute at maximum speed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Application timing is the time your application defines for things to happen. Execution timing is how fast the computer will execute the code.&lt;br /&gt;
- By default, While Loops and For Loops execute as quickly as possible and use all available CPU resources during this time. To preserve system resources, use a blocking mechanism, such as a Wait function or timeout value, to ensure a loop executes only as often as needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid time-consuming code inside Event structures &#039;&#039;&#039;&lt;br /&gt;
Avoid using time-consuming code inside the Event structure. Consider using a producer-consumer pattern or a similar pattern instead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use inlining and subroutine priority strategically &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use inlining and subroutine priority strategically to improve execution speeds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Configure For Loop iteration parallelism &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Consider configuring For Loop iteration parallelism to improve performance.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use local variables instead of the Value property &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Use a local variable instead of the Value property when needed to update a front panel control or indicator value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- This is often needed in UI VIs to initialize control values at run time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use Get/Set Control Values by Index for front panel updates &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) If you perform many updates to the front panel, use the Get Control Values by Index and Set Control Values by Index functions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the In Place Element Structure for compound data types &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) When modifying portions of compound data types, such as arrays and clusters, use the In Place Element Structure instead of individual nodes such as Bundle and Unbundle.&lt;br /&gt;
&lt;br /&gt;
== Source Code Distribution ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Remove breakpoints before distributing VIs &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Remove all breakpoints before distributing VIs to prevent unintended and unwanted halts in execution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Disable debugging to improve performance &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Disable debugging to improve performance.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- Change this setting in the build specification rather than source code if practical.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Disable automatic error handling on all VIs &#039;&#039;&#039;&lt;br /&gt;
(VI Analyzer) Disable automatic error handling on all VIs.&lt;br /&gt;
&lt;br /&gt;
= Guidelines for LabVIEW RT =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use while loops for non-deterministic tasks &#039;&#039;&#039;&lt;br /&gt;
Whenever possible, use while loops, not timed loops, for non-deterministic tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the term &amp;quot;deterministic&amp;quot; instead of &amp;quot;time critical&amp;quot; &#039;&#039;&#039;&lt;br /&gt;
In your documentation, use the term &amp;quot;deterministic&amp;quot; instead of &amp;quot;time critical&amp;quot; to describe code running in timed loops. The term &amp;quot;time critical&amp;quot; is commonly recognized as a VI priority you can use to schedule parallel tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use timed structures instead of deterministic priority setting on SubVIs &#039;&#039;&#039;&lt;br /&gt;
Whenever possible, use timed structures instead of a deterministic priority setting on SubVIs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Serialize code within timed structures &#039;&#039;&#039;&lt;br /&gt;
Serialize code within timed structures so that it executes in a defined, sequential order.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use inline property for VIs in timed structures &#039;&#039;&#039;&lt;br /&gt;
To minimize subVI overhead, use the inline property for VIs in timed structures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use subroutine priority with Skip Subroutine Call If Busy &#039;&#039;&#039;&lt;br /&gt;
When you use subVIs in timed loops that access a shared resource, consider using subroutine priority and the Skip Subroutine Call If Busy setting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039;&lt;br /&gt;
- To turn on Skip Subroutine Call If Busy on a subVI, right-click on the subVI and select the menu option.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid placing controls or indicators in timed loops &#039;&#039;&#039;&lt;br /&gt;
Avoid placing controls or indicators within timed loops because they execute slowly and non-deterministically.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Merge errors properly in timed loops &#039;&#039;&#039;&lt;br /&gt;
With timed loops, merge inner left ear error with error input to catch any configuration errors. Also, merge outer right ear error with error outputs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the Select function instead of a Case structure in deterministic code &#039;&#039;&#039;&lt;br /&gt;
If possible, use the Select function instead of a Case structure in deterministic code. The Select function provides greater determinism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Check time-critical loops for lateness &#039;&#039;&#039;&lt;br /&gt;
Check all time-critical loops for lateness.&lt;br /&gt;
&lt;br /&gt;
== Handling Data Guidelines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Optimize file I/O performance by establishing appropriate chunk sizes &#039;&#039;&#039;&lt;br /&gt;
If file I/O performance matters, establish the best chunk size for writing and reading. Note that this may vary by target.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use RT FIFO functions for streaming data &#039;&#039;&#039;&lt;br /&gt;
Use RT FIFO functions instead of RT FIFO-enabled Shared Variables for streaming data. However, you can use RT FIFO-enabled shared variables for current value communication.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the Flush File function to handle critical data &#039;&#039;&#039;&lt;br /&gt;
For critical data, use the Flush File function to flush the file frequently. Reliance and FAT only flush once per second.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Limit size and quantity of log files &#039;&#039;&#039;&lt;br /&gt;
Limit the size and quantity of log files to improve system reliability. A directory with a large and growing number of files can grow slow and demonstrate changes in system behavior. As a result, you may encounter unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
== Initialization and Shutdown Guidelines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Implement shutdown code to stop initialized resources &#039;&#039;&#039;&lt;br /&gt;
Implement shutdown code to stop anything initialized, even if the next step calls for a reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid writing to configuration files from within the application &#039;&#039;&#039;&lt;br /&gt;
Avoid writing to configuration files from within the application. Writing to configuration files can corrupt the file and prevent you from properly initializing the next reboot. If you must write to a configuration file, develop a strategy to recover from or limit the damage of corruption.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Place reboot code in a conditional disable structure &#039;&#039;&#039;&lt;br /&gt;
Place code that reboots a controller in a conditional disable structure so you can easily disable the reboot at the end of a program. If you place reboot code in a conditional disable structure, you can disable the code when debugging and enable the code when deploying the application.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use RT Timing palette for real-time timing &#039;&#039;&#039;&lt;br /&gt;
Use Timing VIs from the Real-Time&amp;gt;RT Timing palette instead of the ones from the Programming&amp;gt;Timing palette.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Monitor processor and memory usage from development through deployment &#039;&#039;&#039;&lt;br /&gt;
Monitor the processor and memory usage for the system from development through deployment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Ensure processor usage does not stay high long enough to cause unacceptable thread starvation when a thread does not get time to execute.&lt;br /&gt;
- Verify that memory usage does not grow continually and that a plan exists to recover in case memory usage does grow continuously.&lt;br /&gt;
&lt;br /&gt;
= Guidelines for LabVIEW FPGA =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Keep in mind that top-level VI controls and indicators are resource intensive &#039;&#039;&#039;&lt;br /&gt;
When you plan how to use FPGA resources, keep in mind that top-level VI controls and indicators are resource intensive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Handle errors locally on FPGA &#039;&#039;&#039;&lt;br /&gt;
If you use a node that has an error output, include code to handle the error immediately.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Localized error handling in FPGAs typically results in lower FPGA resource utilization because the error cluster in FPGA consists of 33 bits, one bit for status and 32 for the error code. You can often reduce 33 bits down to one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid writing to hardware outputs inside Case structures in timed loops &#039;&#039;&#039;&lt;br /&gt;
Avoid writing to hardware outputs inside a Case structure, especially when inside a single-cycle Timed Loop. Instead, explicitly define hardware outputs for each case and write to hardware outputs outside the Case structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Monitor DMA FIFO timeouts &#039;&#039;&#039;&lt;br /&gt;
Monitor the timeout output of DMA FIFO reads and writes and respond accordingly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Also monitor the timeout output of target-scoped FIFOs unless you either do not care if a timeout occurs or are certain a timeout will never occur.&lt;br /&gt;
- To handle the length of timeouts, either latch the output and notify the host that the FPGA should be restarted to ensure data integrity or use a handshaking protocol to handle resending data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use 4-Wire handshaking protocol where applicable &#039;&#039;&#039;&lt;br /&gt;
Use 4-Wire handshaking anywhere appropriate, and be sure to label the wires, such as &amp;quot;input valid,&amp;quot; &amp;quot;ready for output,&amp;quot; &amp;quot;output valid,&amp;quot; and &amp;quot;ready for input&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Convert fractional data types to single precision before sending to host &#039;&#039;&#039;&lt;br /&gt;
Consider converting fractional data types to the single data type before passing them up to the host.&lt;br /&gt;
&lt;br /&gt;
== FPGA Host Interface ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Call the Reset and Run methods explicitly &#039;&#039;&#039;&lt;br /&gt;
Consider calling the Reset and Run methods specifically instead of automatically running the VI from the Open FPGA Reference function. This ensures the FPGA is in a known state before it executes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Avoid reallocating memory or polling the CPU when reading from DMA FIFOs &#039;&#039;&#039;&lt;br /&gt;
When reading from DMA FIFOs, do not reallocate memory or poll the CPU.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Details:&#039;&#039;&lt;br /&gt;
- Consider using the Configure method to set an appropriate host-side buffer. Avoid using large FPGA size buffers when possible to preserve block RAM.&lt;br /&gt;
- Set the DMA Read timeout to 0.&lt;br /&gt;
- Read a fixed-size number of elements (a multiple of the number of data channels).&lt;br /&gt;
- Wait until the buffer is full before reading elements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Use the Dynamic reference type for FPGA APIs &#039;&#039;&#039;&lt;br /&gt;
Use the Dynamic reference type when creating an API that communicates with an FPGA.&lt;br /&gt;
&lt;br /&gt;
= Appendix A: Book Title Case =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Source:&#039;&#039; http://labview.ni.com/docs/labview-style/#FileOrganization10 &lt;br /&gt;
&lt;br /&gt;
|| **Rule** || **Yes** || **No** ||&lt;br /&gt;
|| Capitalize the first word. || General Error Handler || General error handler ||&lt;br /&gt;
|| Capitalize all nouns, pronouns, adjectives, verbs, adverbs, and subordinate conjunctions (as, because, although). || General Error Handler || General error handler ||&lt;br /&gt;
|| Capitalize the second part of a hyphenated compound. || Fixed-Point || Fixed-point ||&lt;br /&gt;
|| Do not capitalize articles (a, an, the), coordinate conjunctions (and, or, nor), or prepositions regardless of length, unless they are the first or last word (exception: capitalize Boolean operators, such as AND, OR, etc). || Search and Replace || Search And Replace ||&lt;br /&gt;
|| Do not capitalize &amp;quot;to&amp;quot; in an infinitive phrase, unless the phrase is the first word. || Path to String, To String || Path To String, to String ||&lt;br /&gt;
|| Use industry capitalization. || PolyBezier, IrDa || Polybezier, IRDA ||&lt;br /&gt;
|| Capitalize all acronyms. || FIFO, URL || Fifo, Url ||&lt;br /&gt;
|| Use single spaces between words. || Feedback Node || FeedbackNode, Feedback    Node ||&lt;br /&gt;
|| Do not use special characters. || Search and Replace || Search &amp;amp; Replace, Search_and_Replace ||&lt;br /&gt;
&lt;br /&gt;
= Appendix B: International System of Units =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Source:&#039;&#039; https://www.bipm.org/utils/common/pdf/si_brochure_8_en.pdf &lt;br /&gt;
&lt;br /&gt;
== Table 1. SI Base Units ==&lt;br /&gt;
&lt;br /&gt;
|| **Quantity** || **Name** || **Symbol** ||&lt;br /&gt;
|| length || metre || m ||&lt;br /&gt;
|| mass || kilogram || kg ||&lt;br /&gt;
|| time, duration || second || s ||&lt;br /&gt;
|| electric current || ampere || A ||&lt;br /&gt;
|| thermodynamic temperature || kelvin || K ||&lt;br /&gt;
|| amount of substance || mole || mol ||&lt;br /&gt;
|| luminous intensity || candela || cd ||&lt;br /&gt;
&lt;br /&gt;
== Table 3. Coherent Derived Units in the SI with Special Names and Symbols ==&lt;br /&gt;
&lt;br /&gt;
|| **Derived quantity** || **Name** || **Symbol** ||&lt;br /&gt;
|| plane angle || radian || rad ||&lt;br /&gt;
|| solid angle || steradian || sr ||&lt;br /&gt;
|| frequency || hertz || Hz ||&lt;br /&gt;
|| force || newton || N ||&lt;br /&gt;
|| pressure, stress || pascal || Pa ||&lt;br /&gt;
|| energy, work, amount of heat || joule || J ||&lt;br /&gt;
|| power, radiant flux || watt || W ||&lt;br /&gt;
|| electric charge || coulomb || C ||&lt;br /&gt;
|| electric potential difference, electromotive force || volt || V ||&lt;br /&gt;
|| capacitance || farad || F ||&lt;br /&gt;
|| electric resistance || ohm || Ω ||&lt;br /&gt;
|| electric conductance || siemens || S ||&lt;br /&gt;
|| magnetic flux || weber || Wb ||&lt;br /&gt;
|| magnetic flux density || tesla || T ||&lt;br /&gt;
|| inductance || henry || H ||&lt;br /&gt;
|| Celsius temperature || degree Celsius || °C ||&lt;br /&gt;
|| luminous flux || lumen || lm ||&lt;br /&gt;
|| illuminance || lux || lx ||&lt;br /&gt;
|| activity referred to a radionuclide || becquerel || Bq ||&lt;br /&gt;
|| absorbed dose, specific energy, kerma || gray || Gy ||&lt;br /&gt;
|| ambient/directional/personal dose equivalent || sievert || Sv ||&lt;br /&gt;
|| catalytic activity || katal || kat ||&lt;br /&gt;
&lt;br /&gt;
== Table 6. Non-SI Units Accepted for Use with the International System of Units ==&lt;br /&gt;
&lt;br /&gt;
|| **Quantity** || **Name** || **Symbol** ||&lt;br /&gt;
|| time || minute || min ||&lt;br /&gt;
|| || hour || h ||&lt;br /&gt;
|| || day || d ||&lt;br /&gt;
|| plane angle || degree || ° ||&lt;br /&gt;
|| || minute || ′ ||&lt;br /&gt;
|| || second || ″ ||&lt;br /&gt;
|| area || hectare || ha ||&lt;br /&gt;
|| volume || litre || L ||&lt;br /&gt;
|| mass || tonne || t ||&lt;br /&gt;
&lt;br /&gt;
== Section 5.2 Unit Names ==&lt;br /&gt;
&lt;br /&gt;
Unit names are normally printed in roman (upright) type, and they are treated like ordinary nouns. In English, the names of units start with a lower-case letter (even when the symbol for the unit begins with a capital letter), except at the beginning of a sentence or in capitalized material such as a title. In keeping with this rule, the correct spelling of the name of the unit with the symbol °C is “degree Celsius” (the unit degree begins with a lower-case d and the modifier Celsius begins with an upper-case C because it is a proper name).&lt;br /&gt;
&lt;br /&gt;
Although the values of quantities are normally expressed using symbols for numbers and symbols for units, if for some reason the unit name is more appropriate than the unit symbol, the unit name should be spelled out in full. E.g., 2.6 m/s, or 2.6 meters per second.&lt;br /&gt;
&lt;br /&gt;
When the name of a unit is combined with the name of a multiple or sub-multiple prefix, no space or hyphen is used between the prefix name and the unit name. The combination of prefix name plus unit name is a single word. E.g., milligram, not milli-gram.&lt;br /&gt;
&lt;br /&gt;
In both English and French, when the name of a derived unit is formed from the names of individual units by multiplication, then either a space or a hyphen is used to separate the names of the individual units. E.g., pascal second, or pascal-second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
*[http://www.ni.com/pdf/manuals/321393d.pdf LabVIEW Development Guidelines (PDF)]&lt;br /&gt;
*[http://www.amazon.com/LabVIEW-National-Instruments-Virtual-Instrumentation/dp/0131458353 The LabVIEW Style Book (Amazon.com)]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;br /&gt;
[[Category:Beginner]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Quick_Drop&amp;diff=34815</id>
		<title>Quick Drop</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Quick_Drop&amp;diff=34815"/>
		<updated>2024-12-04T21:01:14Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Major edits and reorganization of Quick Drop page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&amp;lt;p&amp;gt;Quick Drop was introduced in LabVIEW 8.6 as an alternative to using the palettes for dropping objects on the front panel and block diagram. You can press &amp;lt;b&amp;gt;Ctrl-Space&amp;lt;/b&amp;gt; to launch the Quick Drop window:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Image:Quick_Drop_Window.png|Quick Drop]]&lt;br /&gt;
&amp;lt;p&amp;gt;If the front panel is active when you press Ctrl-Space, you will see a list of front panel objects to drop. If the block diagram is active when you press Ctrl-Space, you will see a list of block diagram objects to drop.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
&amp;lt;p&amp;gt;The Quick Drop Enthusiasts community page on ni.com provides several resources and discussion threads around Quick Drop. You can visit this community at https://www.ni.com/quickdrop.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Drop Mechanisms ==&lt;br /&gt;
&amp;lt;p&amp;gt;You only need to type enough text in Quick Drop so that the first item in the list is the desired drop object:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Image:Quick_Drop_Top_Item.png|Quick Drop Top Item]]&lt;br /&gt;
&amp;lt;p&amp;gt;At this point, you can drop the item with one of three possible approaches:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Press Enter&amp;lt;/i&amp;gt; - Pressing Enter while Quick Drop is active will place the top list item on your cursor, which you can then use to drop the object in the desired location.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Double-Click List Item&amp;lt;/i&amp;gt; - You can double-click the top item in the list, which will place it on your cursor, which you can then use to drop the object in the desired location.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Super Quick Drop&amp;lt;/i&amp;gt; - Click on the panel or diagram in the location where you want to drop the item. It will be placed wherever you click. This is the fastest, most efficient way to use Quick Drop.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object Shortcuts ==&lt;br /&gt;
&amp;lt;p&amp;gt;Instead of typing the entire name of a drop obejct, you can use an &amp;lt;i&amp;gt;object shortcut&amp;lt;/i&amp;gt; to define a short name (i.e. 2 or 3 characters) for the object. For example, &#039;cs&#039; for Case Structure, or &#039;wat&#039; for Wait (ms). LabVIEW ships with many pre-defined object shortcuts for commonly-dropped objects, but you can also configure your own by clicking &#039;Configure&#039; in Quick Drop and selecting either &#039;Front Panel&#039; or &#039;Block Diagram&#039; in the resulting configuration dialog:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Image:Quick_Drop_Configure_-_Object_Shortcuts.png|Quick Drop Configure Object Shortcuts]]&lt;br /&gt;
&amp;lt;p&amp;gt;As a general rule, you&#039;ll want most of your object shortcuts to be typeable with your left hand only. This allows you to keep your left hand on the keyboard and your right hand on the mouse, and with &amp;lt;i&amp;gt;Super Quick Drop&amp;lt;/i&amp;gt; (see above), your hands won&#039;t need to leave those default positions while dropping objects.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To become more familiar with the object shortcuts that ship with LabVIEW, check out the [https://forums.ni.com/t5/Quick-Drop-Enthusiasts/Falling-Shortcuts/m-p/3537204 Falling Shortcuts!] game on the Quick Drop Enthusiasts community.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ctrl-Key Shortcuts ==&lt;br /&gt;
&lt;br /&gt;
=== Basic Functionality ===&lt;br /&gt;
&amp;lt;p&amp;gt;While Quick Drop is open, you can press a Ctrl-Key shortcut to perform a variety of helpful editor operations. The full list of installed Ctrl-Key shortcuts can be seen by clicking &#039;Configure&#039; in Quick Drop and selecting &#039;Ctrl-Key Shortcuts:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Image:Quick_Drop_Configure_-_Ctrl_Key_Shortcuts.png|Quick Drop Configure Ctrl-Key Shortcuts]]&lt;br /&gt;
&amp;lt;p&amp;gt;You can change the default mapping of various shortcuts in this dialog. Here are some of the most commonly-used Ctrl-Key shortcuts:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-D&amp;lt;/i&amp;gt;: Create controls and indicators (or constants) for unwired terminals on selected object(s).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-R&amp;lt;/i&amp;gt;: Remove selected object(s) and rewire remaining objects.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-T&amp;lt;/i&amp;gt;: Move control terminal labels to the left and indicator terminal labels to the right.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-P&amp;lt;/i&amp;gt;: Replace selected object(s) with the object specified in Quick Drop.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-I&amp;lt;/i&amp;gt;: Insert the object specified in Quick Drop on the selected wire(s).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-B&amp;lt;/i&amp;gt;: Change the class name (or configured property/method) of the selected object(s).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-W&amp;lt;/i&amp;gt;: Wire selected objects together.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;i&amp;gt;Ctrl-K&amp;lt;/i&amp;gt;: Assign a text-based icon to the current VI with the text specified in Quick Drop.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Custom Ctrl-Key Shortcut Plugins ===&lt;br /&gt;
&amp;lt;p&amp;gt;The Ctrl-Key Shortcut feature in Quick Drop is plugin-based, which means you can write your own Ctrl-Key shortcuts. See [http://labviewartisan.blogspot.com/2012/11/getting-started-with-custom-quick-drop.html this blog post] for more information on writing your own Ctrl-Key shortcuts. The Quick Drop Enthusiasts community maintains a list of community shortcuts [https://forums.ni.com/t5/Quick-Drop-Enthusiasts/List-of-Community-Quick-Drop-Keyboard-Shortcuts/gpm-p/3527206 here].&lt;br /&gt;
&lt;br /&gt;
== Quick Drop Miscellany ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To launch Quick Drop in LabVIEW for MacOS, press &amp;lt;i&amp;gt;Cmd-Shift-Space&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To launch Quick Drop in LabVIEW on Chinese Windows, press &amp;lt;i&amp;gt;Ctrl-Shift-Space&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can change the keyboard shortcut for Quick Drop to something other than Ctrl-Space by going to &amp;lt;i&amp;gt;Tools &amp;gt; Options &amp;gt; Menu Shortcuts&amp;lt;/i&amp;gt;, selecting &amp;lt;i&amp;gt;View &amp;gt; Quick Drop&amp;lt;/i&amp;gt; in the Menu Item list, and pressing a new Ctrl-Key combination.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;By default, Quick Drop uses keyword matching to support inexact string matches. For example, you could type &#039;Exit&#039;, and it would list &#039;Quit LabVIEW&#039; in the list. This feature is handy, but causes Quick Drop to be slightly less responsive to key presses, as it takes more time to perform keyword matching. To disable this functionality, you can launch Quick Drop, press &#039;Configure&#039;, go to the &#039;Options&#039; tab, and deslect &#039;Enable relevancy-based search&#039;. This will cause Quick Drop to only perform simple string matches to object names, but will also enable faster responsiveness to key presses.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Top_Item.png&amp;diff=34814</id>
		<title>File:Quick Drop Top Item.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Top_Item.png&amp;diff=34814"/>
		<updated>2024-12-04T20:33:14Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Quick Drop Window displaying a drop item as the top item in the list

Category:LabVIEW fundamentals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Quick Drop Window displaying a drop item as the top item in the list&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Configure_-_Options.png&amp;diff=34813</id>
		<title>File:Quick Drop Configure - Options.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Configure_-_Options.png&amp;diff=34813"/>
		<updated>2024-12-04T20:24:47Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Configuration dialog for additional Quick Drop options

Category:LabVIEW fundamentals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Configuration dialog for additional Quick Drop options&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Configure_-_Ctrl_Key_Shortcuts.png&amp;diff=34812</id>
		<title>File:Quick Drop Configure - Ctrl Key Shortcuts.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Configure_-_Ctrl_Key_Shortcuts.png&amp;diff=34812"/>
		<updated>2024-12-04T20:24:25Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Configuration dialog for Quick Drop Ctrl-Key Shortcut mappings

Category:LabVIEW fundamentals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Configuration dialog for Quick Drop Ctrl-Key Shortcut mappings&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Configure_-_Object_Shortcuts.png&amp;diff=34811</id>
		<title>File:Quick Drop Configure - Object Shortcuts.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Configure_-_Object_Shortcuts.png&amp;diff=34811"/>
		<updated>2024-12-04T20:23:57Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Configuration dialog for Quick Drop object shortcuts

Category:LabVIEW fundamentals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Configuration dialog for Quick Drop object shortcuts&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Window.png&amp;diff=34810</id>
		<title>File:Quick Drop Window.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Quick_Drop_Window.png&amp;diff=34810"/>
		<updated>2024-12-04T20:23:27Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: The main Quick Drop window

Category:LabVIEW fundamentals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
The main Quick Drop window&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Events&amp;diff=34809</id>
		<title>Events</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Events&amp;diff=34809"/>
		<updated>2024-12-03T23:22:47Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Add section with links to recurring events (AoC and SoL)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Below is code for the Google Calendar Widget once the extension is installed. My plan is to let anyone with LabVIEW events (User Groups, virtual workshops, etc.) invite me via the labviewwiki@gmail.com email I used for the twitter account.  This calendar belongs to that email address.  That way this calendar will show all community events.--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 75%; margin:auto;&amp;quot; &lt;br /&gt;
! colspan=2 style=&amp;quot;background-color:#616366; font-size:200%; border:none; margin:0; padding:.3em; color:#FFD500; text-align:center;&amp;quot; | Community Calendar&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background-color:#FFD500; border:none; margin:0; color:#000000; text-align:center;&amp;quot; | &#039;&#039;&#039;Do you want your event added to the Community Calendar?&#039;&#039;&#039;  &lt;br /&gt;
| rowspan=2 style=&amp;quot;text-align:center; width:75%;background-color:#FFFFFF;&amp;quot;| {{#widget:Google Calendar}}&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:25%; vertical-align:top;&amp;quot; | To get your event on the calendar:&lt;br /&gt;
# Create Meeting Invitation &lt;br /&gt;
# Invite the LabVIEWWiki as a guest&lt;br /&gt;
The email address is: &lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&#039;&#039;&#039;&#039;&#039;labviewwiki -at- gmail -dot- com&#039;&#039;&#039;&#039;&#039;&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:75%; text-align:center;&amp;quot;&amp;gt;(written this way to avoid the spammers)&amp;lt;/div&amp;gt;&lt;br /&gt;
Be sure to include event details such as:&lt;br /&gt;
* Event Title&lt;br /&gt;
* Dates and Times&lt;br /&gt;
* How to register or rsvp if required&lt;br /&gt;
* Where the event is located or how to connect if virtual&lt;br /&gt;
* Any other details (abstract/topic, links to websites, etc.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 75%; margin:auto;&amp;quot; &lt;br /&gt;
! colspan=2 style=&amp;quot;background-color:#616366; font-size:200%; border:none; margin:0; padding:.3em; color:#FFD500; text-align:center;&amp;quot; | Event Pages&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Event Archive&#039;&#039;&#039;&lt;br /&gt;
! style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Upcoming Events&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 5 style=&amp;quot;width:25%; vertical-align:top; background-color:#EFEFEF;&amp;quot; | {{#tree:&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[Americas CLA Summit]]&lt;br /&gt;
**[[Americas CLA Summit 2015]]&lt;br /&gt;
**[[Americas CLA Summit 2016]]&lt;br /&gt;
**[[Americas CLA Summit 2017]]&lt;br /&gt;
**[[Americas CLA Summit 2018]]&lt;br /&gt;
**[[Americas CLA Summit 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[European CLA Summit]]&lt;br /&gt;
**[[European CLA Summit 2018]]&lt;br /&gt;
**[[European CLA Summit 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GDevCon]]&lt;br /&gt;
**[[GDevCon-1|GDevCon #1]]&lt;br /&gt;
**[[GDevCon-2|GDevCon #2]]&lt;br /&gt;
**[[GDevCon-3|GDevCon #3]]&lt;br /&gt;
**[[GDevCon-4|GDevCon #4]]&lt;br /&gt;
**[[GDevCon-5|GDevCon #5]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GDevCon ANZ]]&lt;br /&gt;
**[[GDevCon ANZ 1|GDevCon ANZ #1]]&lt;br /&gt;
**[[GDevCon ANZ 2|GDevCon ANZ #2]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GDevCon North America]]&lt;br /&gt;
**[[GDevCon North America 2021]]&lt;br /&gt;
**[[GDevCon North America 2022]]&lt;br /&gt;
**[[GDevCon North America 2023]]&lt;br /&gt;
**[[GDevCon North America 2024]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[GLA Summit]]&lt;br /&gt;
**[[GLA Summit 2020]]&lt;br /&gt;
**[[GLA Summit 2021]]&lt;br /&gt;
**[[GLA Summit 2022]]&lt;br /&gt;
**[[GLA Summit 2024]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[LUGE]]&lt;br /&gt;
**[[LUGE 2020]]&lt;br /&gt;
**[[LUGE 2021]]&lt;br /&gt;
**[[LUGE 2022]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[NI Connect]]&lt;br /&gt;
**[[NI Connect 2021]]&lt;br /&gt;
**[[NI Connect 2022]]&lt;br /&gt;
**[[NI Connect 2023]]&lt;br /&gt;
**[[NI Connect 2024]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}NIDays&lt;br /&gt;
**[[NIDays 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[NIWeek]]&lt;br /&gt;
**[[NIWeek 1995]]&lt;br /&gt;
**[[NIWeek 1996]]&lt;br /&gt;
**[[NIWeek 1997]]&lt;br /&gt;
**[[NIWeek 1998]]&lt;br /&gt;
**[[NIWeek 1999]]&lt;br /&gt;
**[[NIWeek 2000]]&lt;br /&gt;
**[[NIWeek 2001]]&lt;br /&gt;
**[[NIWeek 2002]]&lt;br /&gt;
**[[NIWeek 2003]]&lt;br /&gt;
**[[NIWeek 2004]]&lt;br /&gt;
**[[NIWeek 2005]]&lt;br /&gt;
**[[NIWeek 2006]]&lt;br /&gt;
**[[NIWeek 2007]]&lt;br /&gt;
**[[NIWeek 2008]]&lt;br /&gt;
**[[NIWeek 2009]]&lt;br /&gt;
**[[NIWeek 2010]]&lt;br /&gt;
**[[NIWeek 2011]]&lt;br /&gt;
**[[NIWeek 2012]]&lt;br /&gt;
**[[NIWeek 2013]]&lt;br /&gt;
**[[NIWeek 2014]]&lt;br /&gt;
**[[NIWeek 2015]]&lt;br /&gt;
**[[NIWeek 2016]]&lt;br /&gt;
**[[NIWeek 2017]]&lt;br /&gt;
**[[NIWeek 2018]]&lt;br /&gt;
**[[NIWeek 2019]]&lt;br /&gt;
*{&amp;quot;expanded&amp;quot;:true}[[VIWeek]]&lt;br /&gt;
**[[VIWeek 2020]]&lt;br /&gt;
}}&lt;br /&gt;
| style=&amp;quot;width:75%;background-color:#FFFFFF;vertical-align:top;&amp;quot; | &amp;lt;gallery class=&amp;quot;center&amp;quot; heights=90px widths=90px style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-5|[[GDevCon-5|GDevCon #5&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Stuttgart, 11-13 September 2024)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-ANZButton.png|link=GDevCon ANZ 2|[[GDevCon ANZ 2|GDevCon ANZ #2&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(27-28 May 2025)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Recurring Events&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:75%;background-color:#FFFFFF;vertical-align:top;&amp;quot; | &amp;lt;gallery class=&amp;quot;center&amp;quot; heights=90px widths=90px style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
File:LVAoC.png|link=Advent of Code|[[Advent of Code|Advent of Code&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(December)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:Summer_of_LabVIEW_logo.png|link=Summer of LabVIEW|[[Summer of LabVIEW|Summer of LabVIEW&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(June, July, August)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#616366; color:#FFD500; text-align:center;&amp;quot; | &#039;&#039;&#039;Past Events&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:75%;background-color:#FFFFFF;vertical-align:top;&amp;quot; | &amp;lt;gallery class=&amp;quot;center&amp;quot; heights=90px widths=90px style=&amp;quot;text-align:center&amp;quot;&amp;gt;&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon North America 2024|[[GDevCon North America 2024|GDevCon North America 2024&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(23-25 July 2024)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI Connect 2024|[[NI Connect 2024|NI Connect 2024&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Austin—20-22 May 2024)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA Summit 2024|[[GLA Summit 2024|GLA Summit 2024&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(25-26 March 2024)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-ANZButton.png|link=GDevCon ANZ 1|[[GDevCon ANZ 1|GDevCon ANZ #1&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(24-25 October 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-4|[[GDevCon-4|GDevCon #4&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Glasgow—20-21 September 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon North America 2023|[[GDevCon North America 2023|GDevCon North America 2023&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(18-20 July 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI Connect 2023|[[NI Connect 2023|NI Connect 2023&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Austin—23-24 May 2023)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI Connect 2022|[[NI Connect 2022|NI Connect 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Munich— 9 November 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA Summit 2022|[[GLA Summit 2022|GLA Summit 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(14-15 November 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI Connect 2022|[[NI Connect 2022|NI Connect 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Shanghai— 2023 TBD)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-3|[[GDevCon-3|GDevCon #3&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Amsterdam—8-9 September 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon North America 2022|[[GDevCon North America 2022|GDevCon North America 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(19-21 July 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI Connect 2022|[[NI Connect 2022|NI Connect 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(Austin—24-25 May 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:LUGE.png|link=LUGE 2022|[[LUGE 2022|LUGE 2022&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(??? 2022)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA Summit 2021|[[GLA Summit 2021|GLA Summit 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(15-16 November 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevCon-NAButton.png|link=GDevCon North America 2021|[[GDevCon North America 2021|GDevCon North America 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(20-21 October 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIButton.png|link=NI Connect 2021|[[NI Connect 2021|NI Connect 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(27-28 July 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:LUGE.png|link=LUGE 2021|[[LUGE 2021|LUGE 2021&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(??? 2021)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GLASummitButton.png|link=GLA Summit 2020|[[GLA Summit 2020|GLA Summit 2020&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(9-10 November 2020)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:VIWeekIcon.png|link=VIWeek 2020|[[VIWeek 2020|VIWeek 2020&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(17-23 May 2020)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:LUGE.png|link=LUGE 2020|[[LUGE 2020|LUGE 2020&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(7 May 2020)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas CLA Summit 2019|[[Americas CLA Summit 2019|Americas CLA Summit 2019&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(25-27 Sept 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-2|[[GDevCon-2|GDevCon #2&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(21-22 Aug 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2019|[[NIWeek 2019|NIWeek 2019&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(20-23 May 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-EButton.png|link=European CLA Summit 2019|[[European CLA Summit 2019|European CLA Summit 2019&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2-4 Apr 2019)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas CLA Summit 2018|[[Americas CLA Summit 2018]]&lt;br /&gt;
File:GDevConButton.png|link=GDevCon-1|[[GDevCon-1|GDevCon #1&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4-5 Sep 2018)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-EButton.png|link=European CLA Summit 2018|[[European CLA Summit 2018]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2018|[[NIWeek 2018|NIWeek 2018&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(21-24 May 2018)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas CLA Summit 2017|[[Americas CLA Summit 2017]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2017|[[NIWeek 2017|NIWeek 2017&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(22-25 May 2017)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2016|[[NIWeek 2016|NIWeek 2016&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(1-4 Aug 2016)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas CLA Summit 2016|[[Americas CLA Summit 2016]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2015|[[NIWeek 2015|NIWeek 2015&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(3-6 Aug 2015)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:CLA-AButton.png|link=Americas CLA Summit 2015|[[Americas CLA Summit 2015|Americas CLA Summit 2015&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2-5 March 2015)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2014|[[NIWeek 2014|NIWeek 2014&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4-7 Aug 2014)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2013|[[NIWeek 2013|NIWeek 2013&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(5-8 Aug 2013)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2012|[[NIWeek 2012|NIWeek 2012&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(6-9 Aug 2012)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2011|[[NIWeek 2011|NIWeek 2011&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2-4 Aug 2011)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2010|[[NIWeek 2010|NIWeek 2010&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(3-5 Aug 2010)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2009|[[NIWeek 2009|NIWeek 2009&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(4-6 Aug 2009)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2008|[[NIWeek 2008|NIWeek 2008&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(5-7 Aug 2008)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2007|[[NIWeek 2007|NIWeek 2007&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(7-9 Aug 2007)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2006|[[NIWeek 2006|NIWeek 2006&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(8-10 Aug 2006)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2005|[[NIWeek 2005|NIWeek 2005&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(16-18 Aug 2005)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2004|[[NIWeek 2004|NIWeek 2004&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(17-19 Aug 2004)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2003|[[NIWeek 2003|NIWeek 2003&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(13-15 Aug 2003)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2002|[[NIWeek 2002|NIWeek 2002&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(14-16 Aug 2002)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2001|[[NIWeek 2001|NIWeek 2001&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2001)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 2000|[[NIWeek 2000|NIWeek 2000&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(2000)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 1999|[[NIWeek 1999|NIWeek 1999&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(18-20 Aug 1999)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 1998|[[NIWeek 1998|NIWeek 1998&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(25-27 Aug 1998)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 1997|[[NIWeek 1997|NIWeek 1997&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(19-21 Aug 1997)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 1996|[[NIWeek 1996|NIWeek 1996&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(6-8 Aug 1996)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
File:NIEagleButton.png|link=NIWeek 1995|[[NIWeek 1995|NIWeek 1995&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(1995)&amp;lt;/small&amp;gt;]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Summer_of_LabVIEW&amp;diff=34808</id>
		<title>Summer of LabVIEW</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Summer_of_LabVIEW&amp;diff=34808"/>
		<updated>2024-12-03T23:22:09Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: initial SoL page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;[https://summeroflabview.com/ Summer of LabVIEW] was started originally in 2022 by Derrick Bommarito and Darren Nattinger as a programming competition for the NI Sales and Support organization, building both excitement and prowess within NI for NI&#039;s own flagship software product.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In subsequent years it has become a free worldwide event open to all LabVIEW programmers. The challenges are presented throughout the months of June, July, and August every year.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To learn more, visit https://summeroflabview.com.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Coding Challenge]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Summer_of_LabVIEW_logo.png&amp;diff=34807</id>
		<title>File:Summer of LabVIEW logo.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Summer_of_LabVIEW_logo.png&amp;diff=34807"/>
		<updated>2024-12-03T22:52:16Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Coding Challenge]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Summer_of_LabVIEW_logo.png&amp;diff=34806</id>
		<title>File:Summer of LabVIEW logo.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Summer_of_LabVIEW_logo.png&amp;diff=34806"/>
		<updated>2024-12-03T22:51:36Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:LVAoC.png&amp;diff=34805</id>
		<title>File:LVAoC.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:LVAoC.png&amp;diff=34805"/>
		<updated>2024-12-03T22:45:43Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
LabVIEW Advent of Code logo&lt;br /&gt;
&lt;br /&gt;
[[Category:Coding Challenge]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:LVAoC.png&amp;diff=34804</id>
		<title>File:LVAoC.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:LVAoC.png&amp;diff=34804"/>
		<updated>2024-12-03T22:41:01Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: LabVIEW Advent of Code logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
LabVIEW Advent of Code logo&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Advent_of_Code&amp;diff=34803</id>
		<title>Advent of Code</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Advent_of_Code&amp;diff=34803"/>
		<updated>2024-12-03T22:14:24Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Created new LVWiki article on Advent of Code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&amp;lt;p&amp;gt;[https://adventofcode.com Advent of Code] is an Advent calendar of free daily programming puzzles during the month of December. The puzzles are geared toward a variety of skill sets and skill levels, typically starting off easy, and getting progressively more difficult each day. Anyone who solves the puzzles using LabVIEW can join the LabVIEW leaderboard and compete with fellow LabVIEW programmers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&amp;lt;p&amp;gt;Follow these steps to join the LabVIEW leaderboard:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to https://adventofcode.com.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[Log In]&amp;lt;/font&amp;gt; in the top menu.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Identify yourself using one of the suggested services: &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[GitHub] [Google] [Twitter] [Reddit]&amp;lt;/font&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[Leaderboard]&amp;lt;/font&amp;gt; in the top menu.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[Private Leaderboard]&amp;lt;/font&amp;gt; in the description.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the code for the LabVIEW leaderboard and select &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[Join]&amp;lt;/font&amp;gt; : &amp;lt;b&amp;gt;987334-ea1e3697&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Verify that your username appears in the leaderboard.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To visit the leaderboard on a future visit to the Advent of Code website, select &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[Leaderboard]&amp;lt;/font&amp;gt; in the top menu.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[View]&amp;lt;/font&amp;gt; for the leaderboard with the name &amp;lt;i&amp;gt;&amp;quot;Stefan Lemmens&amp;quot;&amp;lt;/i&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Solving Advent of Code Puzzles == &lt;br /&gt;
&amp;lt;p&amp;gt;To solve the puzzles you can select &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[Calendar]&amp;lt;/font&amp;gt; in the top menu. A new puzzle will appear each day from December 1st to 25th. You can access a new puzzle every day starting at 11pm CST. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Note that you can click &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;Events&amp;lt;/font&amp;gt; in the top menu to access Advent of Code puzzles from previous years.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discord Server ==&lt;br /&gt;
&amp;lt;p&amp;gt;There is a &amp;lt;i&amp;gt;LabVIEW Advent of Code&amp;lt;/i&amp;gt; Discord server to discuss the problems and solutions. It&#039;s a nice way to learn from each other and see how the same problem can be solved in many different ways. You can use this link to access this server: https://discord.gg/AgKWURdGak &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you join the LabVIEW AoC Discord server, please introduce yourself on the introductions channel.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AoC++ ==&lt;br /&gt;
&amp;lt;p&amp;gt;If you&#039;re feeling charitable, you can support Advent of Code financially by clicking &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;[AoC++]&amp;lt;/font&amp;gt; in the top menu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&amp;lt;p&amp;gt;Thanks to LabVIEW Champion &amp;lt;b&amp;gt;Stefan Lemmens&amp;lt;/b&amp;gt; for creating the LabVIEW AoC Leaderboard, as well as providing most of the material seen on this page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Coding Challenge]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Category:Coding_Challenge&amp;diff=34802</id>
		<title>Category:Coding Challenge</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Category:Coding_Challenge&amp;diff=34802"/>
		<updated>2024-12-03T21:48:59Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Created new &amp;#039;Coding Challenge&amp;#039; category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Editor_Accelerators_for_LabVIEW_Beginners&amp;diff=34797</id>
		<title>Editor Accelerators for LabVIEW Beginners</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Editor_Accelerators_for_LabVIEW_Beginners&amp;diff=34797"/>
		<updated>2024-11-16T02:18:51Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: A minimum list of the most useful keyboard shortcuts and mouse gestures for new LabVIEW programmers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The LabVIEW environment has hundreds of built-in gestures for accelerating editor operations. [[Keyboard shortcut|This page]] provides a complete list of these tools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you are new to LabVIEW&#039;&#039;&#039;, the tables below list the keyboard shortcuts and mouse gestures for the &#039;&#039;&#039;most common&#039;&#039;&#039; editor operations you will perform on a daily basis. Note that shortcuts common to most applications (cut, copy, paste, save, etc.) are not listed.&lt;br /&gt;
&lt;br /&gt;
== Keyboard Shortcuts ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Shortcut !! Operation&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Space || [[Quick Drop]] - An alternative to the palettes for quick, name-based object placement on the front panel and block diagram&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-E || Switch between the front panel and block diagram of a VI&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-H || Launch the Context Help window, which displays documentation about the current object under the mouse cursor&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-I || Show the Properties settings of the current VI&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-R || Run the current VI&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Shift-Z || Redo the last undo (Ctrl-Z) operation&lt;br /&gt;
|-&lt;br /&gt;
| Shift-Arrow Key || Moves the selected object(s) 8 pixels in the arrow direction&lt;br /&gt;
|-&lt;br /&gt;
| Esc || While wiring, cancels the current wiring operation&lt;br /&gt;
|-&lt;br /&gt;
| &#039;Enter&#039; on the numeric keypad || Commit current value in a string (different from the main &#039;Enter&#039; key, which will add a new line to a string)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mouse Gestures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Gesture !! Operation&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Drag selected object(s) || Create a copy of selected object(s)&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Drag in empty panel/diagram space || Add space&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Alt-Drag in empty panel/diagram space || Remove space&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Scroll || In LabVIEW 2023 Q3 and later, zoom in and out on the block diagram&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Scroll in empty diagram space || In LabVIEW 2023 Q1 and earlier, scroll through the frames of a multi-frame structure&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Shift-Scroll in empty diagram space || In LabVIEW 2023 Q3 and later, scroll through the frames of a multi-frame structure&lt;br /&gt;
|-&lt;br /&gt;
| Single-click a wire || Select the current wire segment&lt;br /&gt;
|-&lt;br /&gt;
| Double-click a wire || Select the current wire branch&lt;br /&gt;
|-&lt;br /&gt;
| Triple-click a wire || Select the entire current wire&lt;br /&gt;
|-&lt;br /&gt;
| Single-click while wiring || Tack down a wire junction where you clicked, and continue wiring&lt;br /&gt;
|-&lt;br /&gt;
| Double-click while wiring || In LabVIEW 2023 Q3 and later, create a control or indicator connected to that wire&lt;br /&gt;
|-&lt;br /&gt;
| Double-click while wiring || In LabVIEW 2023 Q1 and earlier, create a broken wire that ends where you double-clicked&lt;br /&gt;
|-&lt;br /&gt;
| Alt-Double-click while wiring || In LabVIEW 2023 Q3 and later, create a broken wire that ends where you double-clicked&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-Double-click while wiring || In LabVIEW 2023 Q3 and later, create a constant connected to that wire&lt;br /&gt;
|-&lt;br /&gt;
| Shift-click an object || Add the object to the current selection&lt;br /&gt;
|-&lt;br /&gt;
|-Shift-Drag selected object(s) || Move selected object(s) along a single axis&lt;br /&gt;
|-&lt;br /&gt;
| Double-click empty space || Create a free label&lt;br /&gt;
|-&lt;br /&gt;
| Double-click subVI || Open the front panel of the subVI&lt;br /&gt;
|-&lt;br /&gt;
| Drag VI onto diagram from project || Place the VI as a subVI on the diagram&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Environment]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=34695</id>
		<title>LabVIEW Learning Materials</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=34695"/>
		<updated>2024-10-01T22:07:15Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Cleaned up bad links, added new good links, added video lengths and document types&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{see also|category:LabVIEW fundamentals}}&lt;br /&gt;
&lt;br /&gt;
This page provides a recommended set of resources for LabVIEW programmers. The links are a collection of white papers, YouTube videos and formal learning content. &lt;br /&gt;
&lt;br /&gt;
=LabVIEW Programming Basics =&lt;br /&gt;
&lt;br /&gt;
==Introduction to the LabVIEW Environment==&lt;br /&gt;
* [https://www.youtube.com/watch?v=ZHNlKyYzrPE&amp;amp;list=PLB968815D7BB78F9C LabVIEW Overview] - &amp;lt;small&amp;gt;&#039;&#039;(Playlist, 40 videos)&#039;&#039;&amp;lt;/small&amp;gt; Tutorials introducing the environment, data structures, wiring, visualization and basic hardware connectivity. Note that the links to several individual videos from this long playlist are included in relevant sections below.&lt;br /&gt;
* [https://www.youtube.com/watch?v=o3II4GUfyXw&amp;amp;list=PL4EGtL-9IHCGPRC9iBWV1qbrUy0f3Sjq4 How To... in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Playlist, 13 videos)&#039;&#039;&amp;lt;/small&amp;gt; Masterclass on performing various beginner-level tasks in LabVIEW&lt;br /&gt;
&lt;br /&gt;
==Data Types &amp;amp; Structures==&lt;br /&gt;
* [https://www.youtube.com/watch?v=dvShgNdY_GE Data Types Overview] &amp;lt;small&amp;gt;&#039;&#039;(Video, 4:25)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=_GlQ1riWjPc Introduction to arrays] &amp;lt;small&amp;gt;&#039;&#039;(Video, 3:51)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=dEsVDhrdhk4 Using shift registers to save data between loop iterations] &amp;lt;small&amp;gt;&#039;&#039;(Video, 3:00)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=I7FPlLzc7D0 Overview of For Loops] &amp;lt;small&amp;gt;&#039;&#039;(Video, 7:30)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=OZbaqCgyjdM All About Collection Data Types] &amp;lt;small&amp;gt;&#039;&#039;(Video, 56:18)&#039;&#039;&amp;lt;/small&amp;gt; An in-depth introduction to Strings, Arrays, Sets, and Maps.&lt;br /&gt;
&lt;br /&gt;
==User Interface Design==&lt;br /&gt;
* [https://www.youtube.com/watch?v=eGlvOiqYVxg Using event structures to capture user interactions] &amp;lt;small&amp;gt;&#039;&#039;(Video, 8:29)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=jWWJKUpoois Introduction to Panes for UI Organization] &amp;lt;small&amp;gt;&#039;&#039;(Video, 3:54)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=nCvMLB_kH4Q Programmatically changing UI controls using property nodes] &amp;lt;small&amp;gt;&#039;&#039;(Video, 7:10)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=rBM_kTpUfDk Creating resizable user interfaces] &amp;lt;small&amp;gt;&#039;&#039;(Video, 3:46)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=qvhGH0TlCqs Creating Custom Controls] &amp;lt;small&amp;gt;&#039;&#039;(Video, 5:17)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=0-B7p061la4 Creating Professional User Interfaces] &amp;lt;small&amp;gt;&#039;&#039;(Video, 48:50)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Asynchronous Messaging==&lt;br /&gt;
* [https://www.youtube.com/watch?v=8DFf-9kcRcs How to use Queues in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Video, 5:27)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=9og3QbfgBu0 How to use Notifiers in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Video, 5:27)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Advanced Execution Control==&lt;br /&gt;
*[https://www.youtube.com/watch?v=dG8MaqO9c2A Launching clones of a VI] &amp;lt;small&amp;gt;&#039;&#039;(Video, 9:23)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*[https://www.youtube.com/watch?v=tfZIJejBnXg Launching a dynamically dispatched VI programmatically] &amp;lt;small&amp;gt;&#039;&#039;(Video, 6:32)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Object-Oriented Programming (OOP) in LabVIEW==&lt;br /&gt;
* [https://www.ni.com/docs/en-US/bundle/labview/page/labview-object-oriented-programming.html LabVIEW Object-Oriented Programming] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/06/labview-object-oriented-programming--the-decisions-behind-the-de.html Decisions behind the design of OOP in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Whitepaper)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=GRDoyn1mNAI Simple Design Patterns to Improve Code Quality] &amp;lt;small&amp;gt;&#039;&#039;(Video, 51:09)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Debugging Tools==&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/12/debugging-techniques-in-labview.html Basic Debugging Tools in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=BEGFsFbJmBg Programming Patterns and Frameworks] &amp;lt;small&amp;gt;&#039;&#039;(Video, 59:45)&#039;&#039;&amp;lt;/small&amp;gt; Debugging LabVIEW Programming Patterns and Frameworks&lt;br /&gt;
* [https://www.youtube.com/watch?v=7zS3Q_K71XY Large Project Development Techniques] &amp;lt;small&amp;gt;&#039;&#039;(Video, 44:53)&#039;&#039;&amp;lt;/small&amp;gt; Debugging Large LabVIEW projects&lt;br /&gt;
* [https://www.youtube.com/watch?v=9LypMAOb21s Built in LabVIEW Debugging Tools] &amp;lt;small&amp;gt;&#039;&#039;(Video, 31:37)&#039;&#039;&amp;lt;/small&amp;gt; Utilizing debugging tools that are part of LabVIEW&lt;br /&gt;
* [https://www.youtube.com/watch?v=dTqKZmFFyw8 Run-time Code Analysis in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Video, 37:07)&#039;&#039;&amp;lt;/small&amp;gt; Utilizing run-time code analysis tools to debug LabVIEW applications&lt;br /&gt;
* [https://www.youtube.com/watch?v=HKcEYkksW_o Ludicrous Ways to Fix Broken LabVIEW Code] &amp;lt;small&amp;gt;&#039;&#039;(Video, 52:45)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build and Deployment==&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/19/introduction-to-the-labview-application-builder.html Introduction to the LabVIEW Application Builder] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt; Building Executables (EXEs) and Installers with LabVIEW&lt;br /&gt;
&lt;br /&gt;
=LabVIEW Software Patterns=&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/22/design-considerations-in-labview-.html Design Considerations in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Whitepaper)&#039;&#039;&amp;lt;/small&amp;gt; An introduction to several concepts required for the successful design of medium-to-complex LabVIEW applications&lt;br /&gt;
&lt;br /&gt;
==State Machines==&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/16/simple-state-machine-template-documentation.html Introduction to State Machines] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=aT0obtY3PRk State Machines Tutorial] &amp;lt;small&amp;gt;&#039;&#039;(Video, 5:33)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Producer/Consumer Architecture==&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/21/producer-consumer-architecture-in-labview0.html Introduction to Producer/Consumer] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Queued Message Handlers (QMH)==&lt;br /&gt;
* [https://www.youtube.com/watch?v=-xXJt7yUEis Queued State Machine Overview] &amp;lt;small&amp;gt;&#039;&#039;(Video, 6:24)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/21/using-a-queued-message-handler-in-labview.html Introduction to Queued Message Handlers] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Event-Driven Programming==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/event-driven-programming-in-labview.html Event Structures in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tooling and Development Processes=&lt;br /&gt;
==Configuration Management==&lt;br /&gt;
* [https://blog.sasworkshops.com/gitting-started-with-git Getting Started with git] &amp;lt;small&amp;gt;&#039;&#039;(Blog Post)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=iVRKQCDeDjc Git Setup for LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Video, 17:07)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://blog.sasworkshops.com/the-easiest-way-to-setup-lvcompare-and-lvmerge Configuring diff and merge in LabVIEW] &amp;lt;small&amp;gt;&#039;&#039;(Blog Post)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://learngitbranching.js.org Git command line tutorial] &amp;lt;small&amp;gt;&#039;&#039;(Interactive Webpage)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Static Code Analysis==&lt;br /&gt;
* [https://ni.adobeconnect.com/p4kis57esy9 Introduction to the VI Analyzer] &amp;lt;small&amp;gt;&#039;&#039;(Video, 41:44)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dynamic Code Analysis and Performance Benchmarking==&lt;br /&gt;
* [https://www.youtube.com/watch?v=dHvk9OlCaAY Introduction to Dynamic Code Analysis] &amp;lt;small&amp;gt;&#039;&#039;(Video, 9:34)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=24t-D7_BmjM Quick! Drop Your VI Execution Time!] &amp;lt;small&amp;gt;&#039;&#039;(Video, 54:18)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unit Testing==&lt;br /&gt;
* [https://www.youtube.com/watch?v=AFNbdF7ZU6s Unit Testing with JKI VI Tester] &amp;lt;small&amp;gt;&#039;&#039;(Video, 71:09)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=5l-YQsUYR9g Unit Testing with JKI Caraya] &amp;lt;small&amp;gt;&#039;&#039;(Video, 19:44)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Software Design Patterns and Best Practices=&lt;br /&gt;
* [https://www.ni.com/en/support/documentation/supplemental/09/software-engineering-with-labview.html Software Engineering with LabVIEW] A collection of resources covering several aspects of software engineering and design with LabVIEW&lt;br /&gt;
&lt;br /&gt;
==Error Handling==&lt;br /&gt;
* [https://www.ni.com/docs/en-US/bundle/labview/page/handling-errors.html Error Handling Introduction] &amp;lt;small&amp;gt;&#039;&#039;(Product Documentation)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=UlOFcmwrsBA What to Expect When You&#039;re Expecting an Error] &amp;lt;small&amp;gt;&#039;&#039;(Video, 60:20)&#039;&#039;&amp;lt;/small&amp;gt; Best practices for error generation and propagation in LabVIEW&lt;br /&gt;
&lt;br /&gt;
=Software Frameworks=&lt;br /&gt;
&lt;br /&gt;
==DQMH==&lt;br /&gt;
&lt;br /&gt;
* [https://dqmh.org/ DQMH Homepage] The official page for DQMH, the world&#039;s most popular 3rd-party framework for LabVIEW  &lt;br /&gt;
* [https://documentation.dqmh.org/dqmh DQMH Documentation] &lt;br /&gt;
* [https://wiki.dqmh.org/ DQMH Wiki] Your one-stop shop for everything you ever wanted to know about DQMH&lt;br /&gt;
* [https://www.youtube.com/@DQMHconsortium DQMH YouTube channel]&lt;br /&gt;
* [https://forums.ni.com/t5/DQMH-Consortium-Toolkits/bd-p/7120 DQMH Developer Community]NI community hub dedicated to DQMH discussions, where developers share best practices, examples, and troubleshooting tips&lt;br /&gt;
* [https://www.youtube.com/watch?v=OIAyii97moY Introduction to DQMH] &amp;lt;small&amp;gt;&#039;&#039;(Video, 51:15)&#039;&#039;&amp;lt;/small&amp;gt; An introduction to DQMH for beginners, focusing on key features and benefits of DQMH&lt;br /&gt;
* [https://dqmh.org/simplifying-your-hardware-abstraction-layer-hal-with-lvoop-and-dqmh-part-1 Hardware Abstraction Layers (HAL) and DQMH] &amp;lt;small&amp;gt;&#039;&#039;(Blog Post)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://www.youtube.com/watch?v=IdqTCubXuPE DQMH Module Templates] &amp;lt;small&amp;gt;&#039;&#039;(Video, 5:14)&#039;&#039;&amp;lt;/small&amp;gt; Creating reusable DQMH module templates to speed development&lt;br /&gt;
* [https://www.youtube.com/watch?v=zXJqB2cA2nU DQMH Generic Networking] &amp;lt;small&amp;gt;&#039;&#039;(Video, 51:09)&#039;&#039;&amp;lt;/small&amp;gt; Introduction to the Generic Network (GenNet) template for implementing DQMH-based Real-Time (RT) applications&lt;br /&gt;
&lt;br /&gt;
==Actor Framework==&lt;br /&gt;
&lt;br /&gt;
* [https://labviewwiki.org/wiki/Actor_Framework Actor Framework Resources ] &amp;lt;small&amp;gt;&#039;&#039;(LabVIEW Wiki page)&#039;&#039;&amp;lt;/small&amp;gt; Resource page for Actor Framework introduction and tutorial materials.&lt;br /&gt;
* [https://www.youtube.com/watch?v=gz_6FTE1__8 The State of the Art for Actor Framework] &amp;lt;small&amp;gt;&#039;&#039;(Video, 62:32)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
* [https://forums.ni.com/t5/Actor-Framework/ct-p/7001 Actor Framework Community] A dedicated forum where LabVIEW developers discuss the Actor Framework, share use cases, and troubleshoot challenges.&lt;br /&gt;
&lt;br /&gt;
==Workers==&lt;br /&gt;
* [https://www.youtube.com/watch?v=Xyy8HLBpvjU Introduction to Workers] &amp;lt;small&amp;gt;&#039;&#039;(Video, 51:54)&#039;&#039;&amp;lt;/small&amp;gt; Introduction to the Workers framework for LabVIEW&lt;br /&gt;
&lt;br /&gt;
==Messenger==&lt;br /&gt;
* [https://www.youtube.com/watch?v=IxgSBkHu1RM Introduction to Messenger] &amp;lt;small&amp;gt;&#039;&#039;(Video, 57:03)&#039;&#039;&amp;lt;/small&amp;gt; Introduction to the Messenger framework for LabVIEW&lt;br /&gt;
&lt;br /&gt;
=Hardware and Instrumentation Connectivity=&lt;br /&gt;
&lt;br /&gt;
==DAQmx Basics==&lt;br /&gt;
* [https://www.youtube.com/watch?v=ofzbA3keOYE Taking a Measurement with DAQmx] &amp;lt;small&amp;gt;&#039;&#039;(Video, 4:55)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instrument Control==&lt;br /&gt;
* [https://www.youtube.com/watch?v=-UUAa9UKj4E Introduction to LabVIEW for Instrument Control] &amp;lt;small&amp;gt;&#039;&#039;(Video, 8:26)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Determinism and Real-Time Execution==&lt;br /&gt;
* [https://www.youtube.com/watch?v=JhHJMFrAa4A Getting Started with CompactRIO] &amp;lt;small&amp;gt;&#039;&#039;(Video, 8:11)&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Community and Best Practices=&lt;br /&gt;
&lt;br /&gt;
==LabVIEW Style Guidelines==&lt;br /&gt;
* [https://labviewwiki.org/wiki/Style_Guide LabVIEW Wiki Style Guide]&lt;br /&gt;
* [https://dqmh.org/content/styleguide DQMH Style Guide]&lt;br /&gt;
&lt;br /&gt;
==LabVIEW Community and User Groups==&lt;br /&gt;
* [https://www.ni.com/en-us/events.html NI Events] NI Events Page&lt;br /&gt;
* [https://labviewwiki.org/wiki/Events LabVIEW Events] LabVIEW Wiki Events Page&lt;br /&gt;
&lt;br /&gt;
=Formal Training=&lt;br /&gt;
Formal training on LabVIEW is available from several providers. Offerings differ based on prior LabVIEW experience level and the preferred delivery method. Common delivery methods include: &lt;br /&gt;
&lt;br /&gt;
* In-person instructor-led&lt;br /&gt;
* Remote instructor-led (usually through a web conference)&lt;br /&gt;
* Online self-paced (usually through a combination of pre-recorded lecture videos and exercise solution videos)&lt;br /&gt;
* Self-paced with a manual  &lt;br /&gt;
&lt;br /&gt;
NI has a [https://www.ni.com/en/shop/services/education-services.html suite of courses] ranging from beginner to advanced, as well as several specialty topics such as LabVIEW Real-Time and LabVIEW Connectivity. LabVIEW training is also available through [http://www.sixclear.com/ Sixclear],  [https://www.udemy.com/topic/labview Udemy], [https://www.linkedin.com/learning/topics/labview LinkedIn] and [https://dsautomation.com/labview-fundamentals-1 DSA]. &lt;br /&gt;
&lt;br /&gt;
Recommended training courses for those with no knowledge of LabVIEW are [https://www.ni.com/en/shop/services/education-services/customer-education-courses/labview-core-1-course-overview.html NI LabVIEW Core 1] and [https://www.ni.com/en/shop/services/education-services/customer-education-courses/labview-core-2-course-overview.html NI LabVIEW Core 2] courses. All introductory courses are geared to a user with little to no LabVIEW experience and teach the proficiencies outlined by the [http://sine.ni.com/nips/cds/view/p/lang/en/nid/14438 Certified LabVIEW Associate Developer (CLAD)] exam, as well as simple data acquisition (DAQ) and instrument control.&lt;br /&gt;
&lt;br /&gt;
Common arguments justifying formal training revolve around the idea that the sum cost of developers&#039; time is greater than the cost of training because: &lt;br /&gt;
*  the LabVIEW graphical programming paradigm is appreciably different than traditional text-based programming  &lt;br /&gt;
*  costly mistakes commonly occur when moving from simple LabVIEW applications to more complex applications, especially when developing parallel loop applications (see the [https://www.ni.com/en/support/documentation/supplemental/22/design-considerations-in-labview-.html Design Considerations in LabVIEW] document for more guidance regarding this development transition.&lt;br /&gt;
&lt;br /&gt;
The DQMH Consortium offers an official [https://dqmh.org/training DQMH training course].&lt;br /&gt;
&lt;br /&gt;
NI offers an official [https://www.ni.com/en/shop/services/education-services/customer-education-courses/actor-oriented-design-in-labview-course-overview.html Actor Framework training course].&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;br /&gt;
[[Category:Getting started]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Introduction]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Talk:LabVIEW_VI_Analyzer_Toolkit&amp;diff=33082</id>
		<title>Talk:LabVIEW VI Analyzer Toolkit</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Talk:LabVIEW_VI_Analyzer_Toolkit&amp;diff=33082"/>
		<updated>2024-08-09T21:57:20Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As I discuss in https://bit.ly/vianalyzerintro , the terms &amp;quot;VI Analyzer&amp;quot; and &amp;quot;VI Analyzer Toolkit&amp;quot; mean slightly different things. I would suggest going back to the title of &amp;quot;VI Analyzer&amp;quot; for this page.&lt;br /&gt;
: Good point, thanks for the clarification. The move was made based on the content of the page, which only mentions &#039;&#039;VI Analyzer Toolkit&#039;&#039; and thus should carry the title. But now [[VI Analyzer]] redirects to [[{{PAGENAME}}]]. Considering that both &#039;&#039;VI Analyzer&#039;&#039; and &#039;&#039;{{PAGENAME}}&#039;&#039; have distinct meaning, both pages are necessary and should reference each other. I made changes to both pages to clarify the distinction and reference each other. Feel free to update or change the pages if there are any mistakes. --[[User:Logmanoriginal|Logmanoriginal]] ([[User talk:Logmanoriginal|talk]]) 21:52, 9 August 2024 (UTC)&lt;br /&gt;
Your changes look good to me, thanks!&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Talk:LabVIEW_VI_Analyzer_Toolkit&amp;diff=33078</id>
		<title>Talk:LabVIEW VI Analyzer Toolkit</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Talk:LabVIEW_VI_Analyzer_Toolkit&amp;diff=33078"/>
		<updated>2024-08-09T19:01:03Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Created page with &amp;quot;As I discuss in https://bit.ly/vianalyzerintro , the terms &amp;quot;VI Analyzer&amp;quot; and &amp;quot;VI Analyzer Toolkit&amp;quot; mean slightly different things. I would suggest going back to the title of &amp;quot;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As I discuss in https://bit.ly/vianalyzerintro , the terms &amp;quot;VI Analyzer&amp;quot; and &amp;quot;VI Analyzer Toolkit&amp;quot; mean slightly different things. I would suggest going back to the title of &amp;quot;VI Analyzer&amp;quot; for this page.&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User_group&amp;diff=32680</id>
		<title>User group</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User_group&amp;diff=32680"/>
		<updated>2024-04-05T21:55:57Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Adding DNatt content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;User Group&#039;&#039;&#039;, or LabVIEW User Group (LUG), is a local group of LabVIEW enthusiasts that come together to share common interests or goals.  The user groups within the NI Community are segmented into different categories such as Local User Groups, Product User Groups, Special Interest Groups, and Partner Groups. Within each of these groups, you may collaborate with others on best practices, plan in-person meetups, or discuss any topic of your choice.&lt;br /&gt;
&amp;lt;ref&amp;gt;LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Organizing a User Group==&lt;br /&gt;
User groups are typically created out of a shared need to seek advice and share ideas among a community of individuals that are working on similar problems OR applications. It is recommended that such a group align on goals for the organization, such as the following:&lt;br /&gt;
# Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code&lt;br /&gt;
# Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code&lt;br /&gt;
# Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration&lt;br /&gt;
&lt;br /&gt;
See the [https://forums.ni.com/t5/User-Groups/ct-p/user-groups LabVIEW Community Forum: User Group List] to find one near you.&lt;br /&gt;
==User Group Content==&lt;br /&gt;
&lt;br /&gt;
This is a collection of content that can be used to organize and run a LabVIEW user group. &lt;br /&gt;
&lt;br /&gt;
===Fundamental Programming Constructs===&lt;br /&gt;
&lt;br /&gt;
These materials focus on the G syntax and language-specific constructs&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Object-Oriented Programming LabVIEW&lt;br /&gt;
|This session will introduce object-oriented programming as a tool that can dramatically increase the reusability and scalability of your software. Instead of going through a purely academic exploration of the concept, this session attempts to map concepts that should be familiar to any experienced LabVIEW programming towards helping explain how you can evolve your daily programming tasks without starting all over.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials]&lt;br /&gt;
|Yes - experience implementing class-based software architectures&lt;br /&gt;
|-&lt;br /&gt;
|What to Expect When You&#039;re Expecting an Error&lt;br /&gt;
|Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also precisely convey their exact error behavior in an error condition. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnatterrors Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|All About Collection Data Types&lt;br /&gt;
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW.  &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattcollections Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Team Based Development===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Moving from SVN to Git with LabVIEW&lt;br /&gt;
|Git tends to be the standard versioning system used in software development. DevOps platform like Gitlab and Github rely on it. Git could be a necessary transition to implement CI/CD.&lt;br /&gt;
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world.&lt;br /&gt;
I want to share my journey from a former SVN user to a happy Git one and help developers to go further than just a &amp;quot;backup&amp;quot; tool.&lt;br /&gt;
Real experience and no command-line inside.&lt;br /&gt;
|Olivier Jourdan&lt;br /&gt;
|[https://www.youtube.com/watch?v=v_cdlwIWfPY YouTube Recording]&lt;br /&gt;
|Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia&lt;br /&gt;
|-&lt;br /&gt;
|Team Based Development with LabVIEW&lt;br /&gt;
|This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials]&lt;br /&gt;
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team&lt;br /&gt;
|-&lt;br /&gt;
|Improving Your LabVIEW Code with the VI Analyzer&lt;br /&gt;
|A comprehensive presentation on the features of the VI Analyzer, and how it can be used to improve code style, increase code performance, and detect bugs. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Architectures and Code Design Patterns===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Plugin Frameworks for Extensibility&lt;br /&gt;
|This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code]&lt;br /&gt;
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes&lt;br /&gt;
|-&lt;br /&gt;
|Introduction to DQMH&lt;br /&gt;
|DQMH is the world’s most popular 3rd-party framework for LabVIEW, and was designed to facilitate the robust implementation of complex LabVIEW applications, while still being accessible to CLAD/CLD-level LabVIEW programmers.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
&lt;br /&gt;
These materials cover best practices for various aspects of LabVIEW development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|An End to Brainless LabVIEW Programming&lt;br /&gt;
|There are lots of supposed &amp;quot;best practices&amp;quot; we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/brainlesslabview Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|I Find Your Lack of LabVIEW Programming Speed Disturbing&lt;br /&gt;
|In just an hour of LabVIEW programming, you interact with the LabVIEW IDE hundreds, perhaps thousands, of times. Chances are, you could be executing many editor gestures more efficiently. Explore how to change your workflow to perform the most common LabVIEW programming tasks as quickly as possible. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/labviewspeed Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quick! Drop Your VI Execution Time!&lt;br /&gt;
|Simple tips and techniques for speeding up your VIs. This includes general purpose programming techniques, as well as the most efficient way to use profiling tools in LabVIEW. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/slowvis Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Wait for LabVIEW R&amp;amp;D... Implement Your Own LabVIEW Features!&lt;br /&gt;
|You can choose from many hooks to add your own G-based features to the LabVIEW IDE (no text programming required). This session reveals every single one of those hooks (No, really!) along with some LabVIEW Scripting tips and best practices for implementing those LabVIEW features you always wanted.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattlvhooks Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hidden Gems in vi.lib&lt;br /&gt;
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Augmenting Right-Click Menus in LabVIEW&lt;br /&gt;
|All the details of the right-click plugins feature in LabVIEW, that allows you to extend the right-click menus in the LabVIEW editor purely with G code. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Debugging/Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Ludicrous Ways to Fix Broken LabVIEW Code&lt;br /&gt;
|When LabVIEW programmers encounter compiler errors, app builder failures, and crashes, they will usually settle for any hack, kludge, or workaround just to get usable code. This presentation demonstrates a number of ridiculous ways to get broken code running. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording]&lt;br /&gt;
|This content is very DNatt-specific, and may be difficult for others to present.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:User Group]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=GLA_Summit_2024/What_to_Expect_When_You%27re_Expecting_an_Error&amp;diff=32554</id>
		<title>GLA Summit 2024/What to Expect When You&#039;re Expecting an Error</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=GLA_Summit_2024/What_to_Expect_When_You%27re_Expecting_an_Error&amp;diff=32554"/>
		<updated>2024-03-29T20:53:36Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;What to Expect When You&#039;re Expecting an Error&#039;&#039;&#039; by Darren Nattinger&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also quickly and precisely convey their exact error behavior in an error condition.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&amp;lt;youtube width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;NpEaa2P7qZI&amp;lt;/youtube&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Presentation Links==&lt;br /&gt;
* [https://youtu.be/NpEaa2P7qZI Presentation on YouTube]&lt;br /&gt;
{{ambox|text=Replace the placeholder video code with actual YouTube video code after it is available.}}&lt;br /&gt;
{{ambox|text=Add links to presentation slides and source code.}}&lt;br /&gt;
{{ambox|text=If you need to Upload a file for the LabVIEW Wiki to host it, upload it [[Special:Upload|Here]].}}&lt;br /&gt;
{{ambox|text=After uploading to the LabVIEW Wiki, add the line&amp;quot;&amp;lt;code&amp;gt;[[media:&amp;lt;Your Filename&amp;gt;|&amp;lt;Description&amp;gt;]]&amp;lt;/code&amp;gt;&amp;quot;. The Description is what will show as the link text.}}&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [https://bit.ly/dnatterrors Presentation landing page]&lt;br /&gt;
* [https://www.dnatt.org DNatt&#039;s LabVIEW Presentation Library]&lt;br /&gt;
&lt;br /&gt;
[[Category:GLA Summit 2024]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_VI_Analyzer_Toolkit&amp;diff=32233</id>
		<title>LabVIEW VI Analyzer Toolkit</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_VI_Analyzer_Toolkit&amp;diff=32233"/>
		<updated>2024-01-27T18:46:26Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:VI Analyzer.png|thumb|VI Analyzer]]&lt;br /&gt;
The &#039;&#039;&#039;LabVIEW VI Analyzer Toolkit&#039;&#039;&#039; helps you improve the quality and readability of graphical code developed in LabVIEW software. With this toolkit, you can configure more than 90 included tests for automated code review and static code analysis of all VIs in an application, or create your own using the test creation wizard.&lt;br /&gt;
&lt;br /&gt;
Use the LabVIEW VI Analyzer Toolkit to debug and avoid overlooking improper coding techniques that could impact an application’s performance, functionality, or maintainability. In addition, you can enforce effective programming practices and coding styles within teams of developers to ensure code readability and functionality. By using this toolkit regularly, you can develop high-quality, robust LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
--LabVIEW VI Analyzer Toolkit Marketing&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Introduction to the VI Analyzer] - by Darren Nattinger, National Instruments (page includes slides, demos, and a link to a video recording)&lt;br /&gt;
*[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/ct-p/7021 VI Analyzer Enthusiasts Forum]&lt;br /&gt;
**[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/List-of-Community-VI-Analyzer-Tests/ta-p/3501893 List of Community VI Analyzer Tests]&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Static_program_analysis Static Program Analysis - Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Analyzer]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_configuration_file/Miscellaneous&amp;diff=31869</id>
		<title>LabVIEW configuration file/Miscellaneous</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_configuration_file/Miscellaneous&amp;diff=31869"/>
		<updated>2022-10-21T18:30:57Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Removed bad link to ni.com (I couldn&amp;#039;t find a replacement link)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of Miscellaneous LabVIEW ini File settings. {{TOCright}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = ActiveXMoreContainerOptions&lt;br /&gt;
| example = ActiveXMoreContainerOptions=FALSE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Adds &amp;quot;Persist State To Edit Mode&amp;quot; and &amp;quot;Destroy And Recreate When Run&amp;quot; to the Advanced submenu of an ActiveX container&amp;lt;ref name=&amp;quot;lava-18469&amp;quot;&amp;gt;[https://lavag.org/topic/18469-i-found-some-more-hidden-ini-keys/ I found some more hidden INI keys (LAVA)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
| OS1 = w&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = BldApp.RemovePolyVIsandTypedefs&lt;br /&gt;
| example =BldApp.RemovePolyVIsandTypedefs=FALSE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Setting this to &amp;lt;code&amp;gt;FALSE&amp;lt;/code&amp;gt; stops the LabVIEW Application Builder from aggressively removing polymorphic VIs and typedefs that it thinks are not required&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =TRUE&lt;br /&gt;
| LV1 = 7&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =By default, the LabVIEW 7.x Application Builder does not include type definitions and unused instances of polymorphic VIs into executable in order to decrease size of application. This setting can be changed in the LabVIEW 7.1 applciation Builder in the Application Settings page.&lt;br /&gt;
If a VI in your build calls an external VI that uses a type definition in order to pass parameters, and the AppBuilder is unaware of this external VI, it will end in tears.&lt;br /&gt;
Also there is one other issue which makes this setting very important. In LabVIEW 7.x, by disconnecting typedefs from controls they did loose their default data and return to LabVIEWs default default data. This could be a major problem if you used strict typedefed clusters on front panels to provide certain default data when unwired and those default data did not match LabVIEWs default default data. This has been mostly fixed in newer LabVIEW versions from 8.0 on.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = coerceFromVariant&lt;br /&gt;
| example =coerceFromVariant=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Force variants to automatically coerce to any data type that they are connected to&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 7&lt;br /&gt;
| LV2 = 8&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =Tread carefully, as using this function removes coercion notification, and does not use error handling&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = cleanupVisa&lt;br /&gt;
| example =cleanupVisa=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Automatically close VISA sessions - do not require the use of the &#039;&#039;VISA Close&#039;&#039; VI&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 5&lt;br /&gt;
| LV2 = 6&lt;br /&gt;
| LV3 = 7&lt;br /&gt;
| LV4 = 8&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = defaultConPane&lt;br /&gt;
| example = defaultConPane=4833&lt;br /&gt;
| datatype = I32&lt;br /&gt;
| description = Sets the default [[Connector pane]] layout for new VIs&lt;br /&gt;
| permitted_values =&lt;br /&gt;
| default = (4815)&lt;br /&gt;
| LV1 = 8.x&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 = w&lt;br /&gt;
| OS2 = m&lt;br /&gt;
| OS3 = l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = dropThroughClicks&lt;br /&gt;
| example =dropThroughClicks=FALSE&lt;br /&gt;
| datatype = i&lt;br /&gt;
| description =Allow drop-through clicks&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =TRUE&lt;br /&gt;
| LV1 = 4&lt;br /&gt;
| LV2 = 5&lt;br /&gt;
| LV3 = 6&lt;br /&gt;
| LV4 = 7&lt;br /&gt;
| LV5 = 8&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = EnableStrictTypedefConstantConfiguration&lt;br /&gt;
| example = EnableStrictTypedefConstantConfiguration=FALSE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Adds a new context menu item to constants based on strict typedefs called Act as Strict Typedef Constant. &amp;lt;ref name=&amp;quot;lava-18469&amp;quot; /&amp;gt;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = ExternalNodesEnabled&lt;br /&gt;
| example =ExternalNodesEnabled=FALSE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Enables use of [[External Nodes]]&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =6.x?, 7.x: TRUE  8.x: FALSE&lt;br /&gt;
| LV1 = 6.x?&lt;br /&gt;
| LV2 = 7&lt;br /&gt;
| LV3 = 8&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = ExternalNodeDebugging&lt;br /&gt;
| example =ExternalNodeDebugging=FALSE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Shows External Nodes for what they are: sequence diagrams&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 7&lt;br /&gt;
| LV2 = 8&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = GenericsAreGo&lt;br /&gt;
| example = GenericsAreGo=TRUE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Adds a context-menu item to controls and indicators labeled &amp;quot;Generic&amp;quot;. This activates an abandoned feature in LabVIEW enabling the creation of &amp;quot;[[Generic VIs]]&amp;quot;. If a control marked &amp;quot;generic&amp;quot; is connected to a VI&#039;s connector pane, it will automatically change to whatever type is wired to it; an indicator marked &amp;quot;generic&amp;quot; shows similar behavior with its block diagram terminal. If this just sounds like [[Malleable VIs]] with extra steps, that&#039;s because this is an unfinished prototype of what eventually became that. &#039;&#039;&#039;Using them is a BAD IDEA, unless you just want to experiment with it as a curiosity. NI staff have warned against using this in any kind of production code, as it is very buggy, abandoned for a reason, and can corrupt VI&#039;s. Use Malleable VI&#039;s instead; they do the same thing much better without using buggy unfinished features.&#039;&#039;&#039;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
| LV1 = 2014&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 = w&lt;br /&gt;
| OS2 = m&lt;br /&gt;
| OS3 = l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes = None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = hotMenus&lt;br /&gt;
| example =hotMenus=FALSE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Use hot menus&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =TRUE&lt;br /&gt;
| LV1 = 4&lt;br /&gt;
| LV2 = 5&lt;br /&gt;
| LV3 = 6&lt;br /&gt;
| LV4 = 7&lt;br /&gt;
| LV5 = 8&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = MaxHelpDescLength&lt;br /&gt;
| example =MaxHelpDescLength=8000&lt;br /&gt;
| datatype =i&lt;br /&gt;
| description =Maximum number of characters that will be displayed before truncation in the Context Help&lt;br /&gt;
| default =8000&lt;br /&gt;
| LV1 = 8&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =If set to a non-positive number, then there will be no max. If set to 50 or less, then 50 will be the max&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = MRUFolders&lt;br /&gt;
| example = MRUFolders=TRUE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = MRUFolders:Most recently used folders. Every time you select a file in a file dialog in LabVIEW, that location (folder) becomes the new top item in the location area (left side of the dialog) of the Windows file dialog.&lt;br /&gt;
| permitted_values = TRUE, FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
| LV1 = 8.2&lt;br /&gt;
| OS1 = w&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = openInRun&lt;br /&gt;
| example =openInRun=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =When opening VIs in the development environment, open them in &#039;&#039;run mode&#039;&#039;&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 3&lt;br /&gt;
| LV2 = 4&lt;br /&gt;
| LV3 = 5&lt;br /&gt;
| LV4 = 6&lt;br /&gt;
| LV5 = 7&lt;br /&gt;
| LV6 = 8&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = readOnlyLock&lt;br /&gt;
| example =readOnlyLock=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Treat read-only VIs as locked&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 5&lt;br /&gt;
| LV2 = 6&lt;br /&gt;
| LV3 = 7&lt;br /&gt;
| LV4 = 8&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =It is important to set this to &amp;lt;code&amp;gt;TRUE&amp;lt;/code&amp;gt; when using source code control outside of the LabVIEW environment, so LabVIEW will not allow a VI that is not checked out to the user to be edited&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = showBDConstName&lt;br /&gt;
| example =showBDConstName=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Show auto-constant labels&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 4&lt;br /&gt;
| LV2 = 5&lt;br /&gt;
| LV3 = 6&lt;br /&gt;
| LV4 = 7&lt;br /&gt;
| LV5 = 8&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = ShowHiddenLibraryItems&lt;br /&gt;
| example = ShowHiddenLibraryItems=FALSE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Shows hidden library items (for example when editing a statechart library). &amp;lt;ref name=&amp;quot;lava-18469&amp;quot; /&amp;gt;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = showNoNavDialog&lt;br /&gt;
| example =showNoNavDialog=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Prevents the &amp;quot;Getting Started Window&amp;quot; dialog from appearing&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 8&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes = Source: NI Knowledge Base ( http://digital.ni.com/public.nsf/allkb/841B934909D863C886256F62006AC243?OpenDocument )&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = showRunAtAnyLoopMenuItem&lt;br /&gt;
| example = showRunAtAnyLoopMenuItem=FALSE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Adds a new menu item to Property and Invoke nodes labeled &amp;quot;Run At Any Loop&amp;quot;. When selected, the node turns brown as if a private property or method was selected, even if none are. &amp;lt;ref name=&amp;quot;lava-18469&amp;quot; /&amp;gt;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = ShowTipStrings&lt;br /&gt;
| example =ShowTipStrings=FALSE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Display Tip Strips during execution&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =TRUE&lt;br /&gt;
| LV1 = 4&lt;br /&gt;
| LV2 = 5&lt;br /&gt;
| LV3 = 6&lt;br /&gt;
| LV4 = 7&lt;br /&gt;
| LV5 = 8&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =u&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = SimShowCompanionDiag&lt;br /&gt;
| example = SimShowCompanionDiag=FALSE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Adds a context menu option to the Simulation structure called &amp;quot;Show Companion Diagram&amp;quot;, which toggles showing what looks like a &amp;quot;behind-the-scenes&amp;quot; block diagram for the simulation. &amp;lt;ref name=&amp;quot;lava-18469&amp;quot; /&amp;gt;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = skipNavigatorDialog&lt;br /&gt;
| example =skipNavigatorDialog=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Skip the navigation dialog on development environment launch&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 5&lt;br /&gt;
| LV2 = 6&lt;br /&gt;
| LV3 = 7&lt;br /&gt;
| LV4 = 8&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = SuperSecretPrivateSpecialStuff&lt;br /&gt;
| example =SuperSecretPrivateSpecialStuff=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Exposes private properties, method and events in the IDE&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 8&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =Not supported by NI, this is not a scripting method.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = suppressFileDlgForMissingVIs&lt;br /&gt;
| example =suppressFileDlgForMissingVIs=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Suppresses the file dialog for when loading a VI that has missing SubVIs&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 5&lt;br /&gt;
| LV2 = 6&lt;br /&gt;
| LV3 = 7&lt;br /&gt;
| LV4 = 8&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = useNativeFileDialog&lt;br /&gt;
| example =useNativeFileDialog=FALSE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Use the OS native file dialogs&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =TRUE&lt;br /&gt;
| LV1 = 4&lt;br /&gt;
| LV2 = 5&lt;br /&gt;
| LV3 = 6&lt;br /&gt;
| LV4 = 7&lt;br /&gt;
| LV5 = 8&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = useUnicode&lt;br /&gt;
| example = useUnicode=FALSE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Enables Unicode characters in LabVIEW. &amp;lt;ref name=&amp;quot;thelvlab&amp;quot;&amp;gt;[https://thelvlab.wixsite.com/thelabviewlab/single-post/2017/12/21/All-the-LabVIEWini-Treasures-You-Were-Looking-For All the LabVIEW.ini Treasures You Were Looking For] (The LabVIEW Lab)&amp;lt;/ref&amp;gt;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
| OS1 = w&lt;br /&gt;
| OS2 = m&lt;br /&gt;
| OS3 = l&lt;br /&gt;
| notes = Unicode is not fully supported in LabVIEW. Use with caution!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = userVIsAppearFirst&lt;br /&gt;
| example =userVIsAppearFirst=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Makes the user VIs appear first in the tool menu&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 6&lt;br /&gt;
| LV2 = 7&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =Unfortunately this option no longer works in LabVIEW versions 8+.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = viTitleInPalettes&lt;br /&gt;
| example = viTitleInPalettes=TRUE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Displays window titles instead of VI names in functions palettes. This key is set by the [[Controls/Functions Palettes options#Formatting|Use window titles in functions palette]] option in the [[Controls/Functions Palettes options|Controls/Functions Palettes]] category of the [[Options dialog]].&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = TRUE&lt;br /&gt;
| OS1 = w&lt;br /&gt;
| OS2 = m&lt;br /&gt;
| OS3 = l&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = XNodeDevelopment_LabVIEWInternalTag&lt;br /&gt;
| example =XNodeDevelopment_LabVIEWInternalTag=True&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Enables [[XNode|XNodes]] to be edited and created within LabVIEW.&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| OS1 =m&lt;br /&gt;
| OS2 =l&lt;br /&gt;
| notes =This configuration key does not work on Windows, as on that version it is enabled via an &amp;quot;XNodeDevelopment&amp;quot; license which is only available to NI employees; thus, there is no way to access this functionality on the Windows version without violating the license agreement. When enabled, regardless of OS, &amp;quot;XNode&amp;quot; will appear in the File-&amp;gt;New dialog.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = XNodeWizardMode&lt;br /&gt;
| example =XNodeWizardMode=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Allows contextual menus on [[XNodes]] to facilitate debugging&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default =FALSE&lt;br /&gt;
| LV1 = 8&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = MaxGSWRecentProjects&lt;br /&gt;
| example =MaxGSWRecentProjects=10&lt;br /&gt;
| datatype =i&lt;br /&gt;
| description =Allows more projects to be added to the Getting Started Window&lt;br /&gt;
| permitted_values = 1 to 10&lt;br /&gt;
| default = 2&lt;br /&gt;
| LV1 = 2009&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = operateCursorRunningVIs&lt;br /&gt;
| example = operateCursorRunningVIs=TRUE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Changes the default cursor on running VIs to its behavior prior to LabVIEW 2012&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
| LV1 = 2012&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = useNewProjWiz&lt;br /&gt;
| example =  useNewProjWiz =FALSE&lt;br /&gt;
| datatype =b&lt;br /&gt;
| description =Set to FALSE to make the Create Project menu items (in File and Project) open empty projects instead of launching the Create Project dialog.&lt;br /&gt;
| permitted_values =TRUE or FALSE&lt;br /&gt;
| default = TRUE&lt;br /&gt;
| LV1 = 2012&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| LV6 =&lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =m&lt;br /&gt;
| OS3 =l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = QuickBold&lt;br /&gt;
| example = QuickBold=TRUE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = When editing text (either on the block diagram or the front panel) Ctrl-B allows you to toggle &#039;&#039;&#039;bold&#039;&#039;&#039; on or off. (When not editing text, Ctrl-B still performs it&#039;s normal function: remove broken wires.)&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
| LV1 = 2013&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| OS1 = w&lt;br /&gt;
| OS2 = m&lt;br /&gt;
| OS3 = l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ labviewconfigurationkey&lt;br /&gt;
| keyname = ShowConsoleForPythonNode&lt;br /&gt;
| example = ShowConsoleForPythonNode=TRUE&lt;br /&gt;
| datatype = b&lt;br /&gt;
| description = Shows the output from Python when a Python Node executes.&amp;lt;ref name=&amp;quot;ni-ShowConsoleForPythonNode&amp;quot;/&amp;gt;&lt;br /&gt;
| permitted_values = TRUE or FALSE&lt;br /&gt;
| default = FALSE&lt;br /&gt;
| LV1 = 2018 and later&lt;br /&gt;
| LV2 =&lt;br /&gt;
| LV3 =&lt;br /&gt;
| LV4 =&lt;br /&gt;
| LV5 =&lt;br /&gt;
| OS1 = w&lt;br /&gt;
| OS2 = m&lt;br /&gt;
| OS3 = l&lt;br /&gt;
| OS4 =&lt;br /&gt;
| notes =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;ni-ShowConsoleForPythonNode&amp;quot;&amp;gt;[https://forums.ni.com/t5/LabVIEW-2021-Public-Beta/New-Feature-Improved-Python-Support/m-p/4147033/highlight/true#M87 Improved Python Support (LabVIEW 2021 Public Beta)] by Christina Rogers&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration File|Misc]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_File_Extensions&amp;diff=31207</id>
		<title>LabVIEW File Extensions</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_File_Extensions&amp;diff=31207"/>
		<updated>2021-09-03T19:05:55Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Add .cfg and .rsl, update description of .viancfg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all the file extensions supported by [[LabVIEW]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;text-align:center&amp;quot; |File Extension&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot; |Definition/Description&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[ALIASES File Extension|aliases]]&lt;br /&gt;
|File that maps computer names to IP Addresses&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[BIN3 File Extension|bin3]]&lt;br /&gt;
|File to include example [[VI|VIs]] in [[NI Example Finder]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[BIN4 File Extension|bin4]]&lt;br /&gt;
|File to include example [[VI|VIs]] in [[NI Example Finder]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CDF File Extension|cdf]]&lt;br /&gt;
|RT image file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CFG File Extension|cfg]]&lt;br /&gt;
|VI Analyzer Configuration File (LabVIEW 2017 and previous)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CTL File Extension|ctl]]&lt;br /&gt;
|Control&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CTT File Extension|ctt]]&lt;br /&gt;
|Control Template&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CVT File Extension|cvt]]&lt;br /&gt;
|LabVIEW toolkit conversion mapping file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LLB File Extension|llb]]&lt;br /&gt;
|LabVIEW Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVBIT File Extension|lvbit]]&lt;br /&gt;
|LabVIEW FPGA bit file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVBITX File Extension|lvbitx]]&lt;br /&gt;
|LabVIEW FPGA bit file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVCLASS File Extension|lvclass]]&lt;br /&gt;
|LabVIEW Class Library and LabVIEW Interface&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLAD File Extension|lvlad]]&lt;br /&gt;
|LabVIEW Ladder Diagram ([[LabVIEW 8.6]] Only)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLIB File Extension|lvlib]]&lt;br /&gt;
|LabVIEW Project Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLIBP File Extension|lvlibp]]&lt;br /&gt;
|LabVIEW Packed Project Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLPS File Extension|lvlps]]&lt;br /&gt;
|LabVIEW Local Project Settings&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVM File Extension|lvm]]&lt;br /&gt;
|LabVIEW Measurement File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVMODEL File Extension|lvmodel]]&lt;br /&gt;
|Control &amp;amp; Simulation Model&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVPROJ File Extension|lvproj]]&lt;br /&gt;
|LabVIEW Project&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVRBT File Extension|lvrbt]]&lt;br /&gt;
|LabVIEW Robotics (NXT Robot Project)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVSC File Extension|lvsc]]&lt;br /&gt;
|LabVIEW Statechart&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVTEST File Extension|lvtest]]&lt;br /&gt;
|LabVIEW Unit Test Framework Test&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVVECT File Extension|lvvect]]&lt;br /&gt;
|LabVIEW Unit Test Framework Test Vector&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[MNU File Extension|mnu]]&lt;br /&gt;
|Palette Menu&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[RC File Extension|rc]]&lt;br /&gt;
|IVI Instrument Driver Configuration File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[RSL File Extension|rsl]]&lt;br /&gt;
|VI Analyzer Results File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[RTM File Extension|rtm]]&lt;br /&gt;
|Run-Time Menu&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[TDM File Extension|tdm]]&lt;br /&gt;
|Technical Data Management File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[TDMS File Extension|tdms]]&lt;br /&gt;
|TDM Streaming File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VI File Extension|vi]]&lt;br /&gt;
|Virtual Instrument&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIANCFG File Extension|viancfg]]&lt;br /&gt;
|VI Analyzer Configuration File (LabVIEW 2018 and later)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIDB File Extension|vidb]]&lt;br /&gt;
|LabVIEW Compiled Object Cache&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIM File Extension|vim]]&lt;br /&gt;
|&lt;br /&gt;
*Malleable VI ([[LabVIEW 2017]] and later)&lt;br /&gt;
*VI Macros ([[LabVIEW 2016]] and earlier) (see also [[Rusty Nails]])&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIT File Extension|vit]]&lt;br /&gt;
|Virtual Instrument Template&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XCTL File Extension|xctl]]&lt;br /&gt;
|XControl&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XMAP File Extension|xmap]]&lt;br /&gt;
|LabVIEW XMap Conversion Mapping File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XNODE File Extension|xnode]]&lt;br /&gt;
|XNode&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XSFP File Extension|xsfp]]&lt;br /&gt;
|LabVIEW Save For Previous Mapping File&lt;br /&gt;
|}&lt;br /&gt;
==LabVIEW NXG File Extensions==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;text-align:center&amp;quot; |File Extension&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot; |Definition/Description&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[DNI File Extension|dni]]&lt;br /&gt;
|.NET Interface (DotNet Interface)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GCOMP File Extension|gcomp]]&lt;br /&gt;
|&lt;br /&gt;
*Application Document&lt;br /&gt;
*Library Document&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GLL File Extension|gll]]&lt;br /&gt;
|G Linked Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GPAL File Extension|gpal]]&lt;br /&gt;
|G Palette&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GRSC File Extension|grsc]]&lt;br /&gt;
|G Resource Collection&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GRTM File Extension|grtm]]&lt;br /&gt;
|G Run-Time Menu&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GTYPE File Extension|gtype]]&lt;br /&gt;
|G Type&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GVI File Extension|gvi]]&lt;br /&gt;
|Graphical Virtual Instrument&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVDIST File Extension|lvdist]]&lt;br /&gt;
|LabVIEW Distribution Document&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVPROJECT File Extension|lvproject]]&lt;br /&gt;
|LabVIEW Project&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[MLI File Extension|mli]]&lt;br /&gt;
|MATLAB Interface&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[SLI File Extension|sli]]&lt;br /&gt;
|Shared Library Interface&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:LabVIEW file extensions]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=31097</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=31097"/>
		<updated>2021-05-07T20:54:06Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;Project Item&#039;&#039;&#039; is an individual item in a [[LabVIEW Project]], [[LabVIEW Project Library]], [[LabVIEW Class]], or [[XControl]].  A Project Item can be one of many types with an associated type GUID.  The [[ProjectItem class]], [[ProjectItem class/Type String property|Type String Property]] can be used to get the &#039;&#039;Type String&#039;&#039;.  The [[ProjectItem class]], [[ProjectItem class/Type GUID property|Type GUID Property]] can be used to get the &#039;&#039;Type GUID&#039;&#039;.  In cases where no Type String exists the [[ProjectItem class/Type String property|Type String Property]] returns the Type GUID.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Type String&#039;&#039; is used in the [[ProjectItem class]], [[ProjectItem class/Get All Descendents method|Get All Descendents method]] to get a filtered list of the Descendents by the inputted type.  A list of valid &#039;&#039;Type Strings&#039;&#039; with associated &#039;&#039;Type GUIDs&#039;&#039; are listed below.  (Add to this list as more are discovered.)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String&lt;br /&gt;
! Type GUID &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI &lt;br /&gt;
| {DAABD3DA-4F44-4C3D-8BA3-E5D035A4F27A}&lt;br /&gt;
| Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| BeagleBone Black &lt;br /&gt;
|&lt;br /&gt;
| BeagleBone Black target (available with the [[LabVIEW LINX|LINX Toolkit]])&lt;br /&gt;
|-&lt;br /&gt;
| Build &lt;br /&gt;
| {0C750917-83D7-9871-8908-BB4ED6A8099B}&lt;br /&gt;
| Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data &lt;br /&gt;
| {64A9BF48-4C55-45DB-8F18-9C796DA0C113}&lt;br /&gt;
| Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Compact Vision System Target &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Compact Vision System target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Ethernet Device &lt;br /&gt;
|&lt;br /&gt;
| Ethernet RIO target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Windows &lt;br /&gt;
|&lt;br /&gt;
| Windows CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis &lt;br /&gt;
|&lt;br /&gt;
| CompactRIO Chassis under a cRIO RT target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies &lt;br /&gt;
| {0D75D917-83D7-9871-AA09-A0FFD6A8099B}&lt;br /&gt;
| Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives &lt;br /&gt;
|&lt;br /&gt;
| Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL &lt;br /&gt;
| {20A41099-3F2C-42C3-9544-7ABCC1E6CB0D}&lt;br /&gt;
| Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document &lt;br /&gt;
| {D60740D6-F255-4BBC-5675-8858F35B820E}&lt;br /&gt;
| Includes: &lt;br /&gt;
* Another [[LabVIEW Project]] [[LVLIB File Extension|&#039;&#039;(*.lvproj)&#039;&#039;]] file when nested inside of a Project&lt;br /&gt;
* [[ALIASES File Extension|Aliases &#039;&#039;(*.aliases)&#039;&#039;]]&lt;br /&gt;
* [[LVLPS File Extension|Local Projects Settings &#039;&#039;(*.lvlps)&#039;&#039;]]&lt;br /&gt;
* [[LabVIEW Library|LabVIEW Libraries]] [[LLB File Extension|&#039;&#039;(*.llb)&#039;&#039;]] (Depending on how it was added to the Project)&lt;br /&gt;
* [[Run-time Menu]] [[RTM File Extension| &#039;&#039;(*.rtm)&#039;&#039;]]&lt;br /&gt;
* other Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave &lt;br /&gt;
|&lt;br /&gt;
| EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave &lt;br /&gt;
|&lt;br /&gt;
| EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster &lt;br /&gt;
|&lt;br /&gt;
| EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE &lt;br /&gt;
| {9A75366A-79D3-4BFD-9532-E3070185C1E8}&lt;br /&gt;
| Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO &lt;br /&gt;
|&lt;br /&gt;
| IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| elvisRIO Chassis &lt;br /&gt;
|&lt;br /&gt;
| Chassis under an ELVIS RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Embedded Vision System Target &lt;br /&gt;
|&lt;br /&gt;
| NI Embedded Vision System target &lt;br /&gt;
|-&lt;br /&gt;
| Folder&lt;br /&gt;
| {D60740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
| Includes: &lt;br /&gt;
* [[Auto-populating Folder]]s, &lt;br /&gt;
* [[Virtual Folder]]s&lt;br /&gt;
* [[LabVIEW Library|LabVIEW Libraries]] [[LLB File Extension|&#039;&#039;(*.llb)&#039;&#039;]] (Depending on how it was added to the Project)&lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock &lt;br /&gt;
|&lt;br /&gt;
| Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP &lt;br /&gt;
|&lt;br /&gt;
| RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock &lt;br /&gt;
|&lt;br /&gt;
| Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO &lt;br /&gt;
|&lt;br /&gt;
| FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Generic Target &lt;br /&gt;
|&lt;br /&gt;
| Networked Computer/Device target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block &lt;br /&gt;
|&lt;br /&gt;
| Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Register &lt;br /&gt;
|{730535F4-F2D1-43C7-8D98-0EBD6BAE3470}&lt;br /&gt;
| Register item under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target &lt;br /&gt;
|&lt;br /&gt;
| FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Hyperlink&lt;br /&gt;
| {CC472C20-0441-48DC-AF25-3E82ECC9376F}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container &lt;br /&gt;
| {CC977D9A-0BF1-470B-B5A7-DF1D00EF9C9B}&lt;br /&gt;
| Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server &lt;br /&gt;
|&lt;br /&gt;
| I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target &lt;br /&gt;
|&lt;br /&gt;
| IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer &lt;br /&gt;
| {B912C944-F9D3-49E7-B0A6-073ED50A150B}&lt;br /&gt;
| Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass &lt;br /&gt;
| {EFD740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
| Includes: [[LabVIEW Class]] [[LVCLASS File Extension|&#039;&#039;(*.lvclass)&#039;&#039;]] and [[Interface (object-oriented programming)|Interfaces]]&lt;br /&gt;
|-&lt;br /&gt;
| Library &lt;br /&gt;
| {ABC740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
| [[LabVIEW Project Library]] [[LVLIB File Extension|&#039;&#039;(*.lvlib)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData &lt;br /&gt;
| {AE832914-DFCB-471F-930C-C57747746FF2}&lt;br /&gt;
| Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost &lt;br /&gt;
|&lt;br /&gt;
| In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp &lt;br /&gt;
| {CF31838A-5E97-4315-AE50-9EBA613BCBBB}&lt;br /&gt;
| [[Packed Project Library]] [[LVLIBP File Extension|&#039;&#039;(*.lvlibp)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart &lt;br /&gt;
| {FB056C2C-833C-414C-8330-397F164A5211}&lt;br /&gt;
| [[LabVIEW StateChart]] [[LVSC File Extension|&#039;&#039;(*.lvsc)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem &lt;br /&gt;
| {FB056C2D-833C-414C-8330-397F164A5211}&lt;br /&gt;
| Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI &lt;br /&gt;
| {DAABD3DC-4F44-4C3D-8BA3-E5D035A4F27A}&lt;br /&gt;
| Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer &lt;br /&gt;
| {CEFE1B10-1732-4678-A70A-299293455410}&lt;br /&gt;
| My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| NI-DAQmx Task&lt;br /&gt;
| {0A806145-1BF3-3A50-0B5E-F969F56C8E2A}&lt;br /&gt;
| DAQmx Task&lt;br /&gt;
|-&lt;br /&gt;
| NI-DAQmx Channel&lt;br /&gt;
| {B5F05770-7C71-3A03-C9FB-F73F35629FC1}&lt;br /&gt;
| DAQmx Virtual Channel&lt;br /&gt;
|-&lt;br /&gt;
| NI-DAQmx Scale&lt;br /&gt;
| {BC977C97-1833-3D51-4EF6-D82E6838A8F3}&lt;br /&gt;
| DAQmx Scale&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library &lt;br /&gt;
| {E4492117-CED3-4F31-9F8D-E2118AE04F12}&lt;br /&gt;
| Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project &lt;br /&gt;
| {D60740D6-F254-4BBC-9975-8858F35B810E}&lt;br /&gt;
| Root project item at the top of the [[Project Explorer]] for the [[LabVIEW Project]]&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition &lt;br /&gt;
| {81C68620-8BE3-4643-B04A-4E83AA6363D2}&lt;br /&gt;
| Property definition folder under a [[LabVIEW Class]]&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder &lt;br /&gt;
|&lt;br /&gt;
| Property folder in an [[XControl]]&lt;br /&gt;
|-&lt;br /&gt;
| Property VI &lt;br /&gt;
| {DAABD3DB-4F44-4C3D-8BA3-E5D035A4F27A}&lt;br /&gt;
| Property VI in an [[XControl]]&lt;br /&gt;
|-&lt;br /&gt;
| Raspberry Pi 2 B &lt;br /&gt;
|&lt;br /&gt;
| Raspberry Pi 2 B target (available with the [[LabVIEW LINX|LINX Toolkit]])&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module &lt;br /&gt;
|&lt;br /&gt;
| CompactRIO module that appears under the FPGA Target node under an RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource &lt;br /&gt;
|&lt;br /&gt;
| Resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CDAQ Chassis &lt;br /&gt;
|&lt;br /&gt;
|  Real-Time CompactDAQ Chassis target&lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO &lt;br /&gt;
|&lt;br /&gt;
| RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Desktop &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Desktop target&lt;br /&gt;
|-&lt;br /&gt;
| RT elvisRIO &lt;br /&gt;
|&lt;br /&gt;
| ELVIS RIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT FlexRIO &lt;br /&gt;
|&lt;br /&gt;
| Real-Time FlexRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic &lt;br /&gt;
|&lt;br /&gt;
| Generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Industrial Controller &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Industrial Controller target &lt;br /&gt;
|-&lt;br /&gt;
| RT myRIO &lt;br /&gt;
|&lt;br /&gt;
| myRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis &lt;br /&gt;
|&lt;br /&gt;
| RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT roboRIO &lt;br /&gt;
|&lt;br /&gt;
| roboRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO &lt;br /&gt;
|&lt;br /&gt;
| RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator &lt;br /&gt;
|&lt;br /&gt;
| Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis &lt;br /&gt;
|&lt;br /&gt;
| Single-Board RIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Variable &lt;br /&gt;
| 9BA597C5-4996-4622-B9BB-444431834D0D}&lt;br /&gt;
| Shared Variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Smart Camera Target &lt;br /&gt;
|&lt;br /&gt;
| Real-Time Industrial Smart Camera Target&lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution &lt;br /&gt;
| {15DA4F9E-0591-4AB1-A339-C3B4D54902D8}&lt;br /&gt;
| Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container &lt;br /&gt;
| {F0D505FA-F9AD-43D8-8811-2F23BBC4C8A2}&lt;br /&gt;
| Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| Target Folder&lt;br /&gt;
| {AB0740D6-F254-4BBC-5675-8858F35B820E}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TestItem &lt;br /&gt;
| {39B74B88-DF2D-4BA8-BEB5-FD65FC0FD56D}&lt;br /&gt;
| Test file from the Unit Test Framework [[LVTest File Extension| &#039;&#039;(.lvtest)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem &lt;br /&gt;
| {50E0C210-38A2-420B-AB4E-3BEFFC710090}&lt;br /&gt;
| Test vector file from the Unit Test Framework [[LVTest File Extension| &#039;&#039;(.lvvect)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel &lt;br /&gt;
|&lt;br /&gt;
| Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI &lt;br /&gt;
| {D60740D6-F254-4BBC-5675-8858F35B810E}&lt;br /&gt;
| Includes: &lt;br /&gt;
* [[VI]]s [[VI File Extension| &#039;&#039;(.vi)&#039;&#039;]]&lt;br /&gt;
* [[CTL File Extension|Controls &#039;&#039;(*.ctl)&#039;&#039;]]&lt;br /&gt;
* [[Polymorphic VI]]s&lt;br /&gt;
* [[Malleable VI]]s [[VIM File Extension| &#039;&#039;(.vim)&#039;&#039;]]&lt;br /&gt;
* [[Global Variable]]s&lt;br /&gt;
* [[VI Template]]s [[VIT File Extension| &#039;&#039;(.vit)&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| Web Service &lt;br /&gt;
| {2386AD17-A358-4EA9-86F1-7808B4D5B5ED}&lt;br /&gt;
| Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl &lt;br /&gt;
| {2E4BD3AC-4E04-45C9-B6C5-AD138962C435}&lt;br /&gt;
| [[XControl]]&lt;br /&gt;
|-&lt;br /&gt;
| XNode &lt;br /&gt;
|&lt;br /&gt;
| [[XNode]]&lt;br /&gt;
|-&lt;br /&gt;
| Zip File &lt;br /&gt;
| {51F0E16F-7FA4-4E9F-AE30-C81D9D0444B0}&lt;br /&gt;
| Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly &lt;br /&gt;
| {0E6E9692-2CDC-4645-B4F6-93F9260BF6FA}&lt;br /&gt;
| .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} &lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} &lt;br /&gt;
| Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} &lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} &lt;br /&gt;
| IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {CED73189-3D7D-4B2F-B6C9-EA03FBC59E14} &lt;br /&gt;
| {CED73189-3D7D-4B2F-B6C9-EA03FBC59E14} &lt;br /&gt;
| Linux RT Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} &lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} &lt;br /&gt;
| Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} &lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} &lt;br /&gt;
| Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=VI_Scripting&amp;diff=30920</id>
		<title>VI Scripting</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=VI_Scripting&amp;diff=30920"/>
		<updated>2021-01-19T20:20:34Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Fixing &amp;#039;Don&amp;#039;t Wait for LV R&amp;amp;D&amp;#039; link again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCnestright}}&lt;br /&gt;
[[File:Lv scripting.jpg|thumb|VI Scripting Nodes appear as Light Cyan]]&lt;br /&gt;
&#039;&#039;&#039;VI Scripting&#039;&#039;&#039;, also known as Scripting, deals with the ability of LabVIEW to use G to write G. VI Scripting contains several new [[VI Server]] classes, properties, methods, and events so you can create, move, and wire objects; edit the connector pane; create new VIs; and more. Scripting is useful for generating or editing VIs automatically based on simpler configurations. Examples of scripting include the code generated by Express VIs, the code generated for LVOOP Accessor VIs and the code generated by the NI Vision Builder. Because scripting requires recompiling the VI and may break it, you can not run scripting code on a VI which is reserved for running.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
VI Scripting began shipping with LabVIEW beginning with [[LabVIEW 2010]].  However, it is available for download from the [http://sine.ni.com/nips/cds/view/p/lang/en/nid/209110 LabVIEW Tools Network] for [[LabVIEW 8.6]] and [[LabVIEW 2009|2009]]. Before [[LabVIEW 8.6]] scripting was an undocumented feature and was available to those that knew how to enable it as early as [[LabVIEW 5.0]] through  flags in the [[LabVIEW configuration file]].  However, as it was not documented or supported to the greater community, it had the potential to be dangerous.  Before scripting was official an NI employee famously refferred to it as something akin to [[Rusty_nails|Rusty Nails]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
VI Scripting generally falls into three categories:&lt;br /&gt;
# Using G to automate the generation of more G&lt;br /&gt;
# Using G to create add-on tools (i.e. [[Quick Drop]], [[Shortcut Menu Plugins]], etc.)&lt;br /&gt;
# Using G to inspect G (i.e. [[VI Analyzer]])&lt;br /&gt;
VI Scripting uses properties and methods to create, locate, and operate on Block Diagram objects (i.e. primatives, structures, wires, and terminals), Front Panel objects (i.e. controls, indicators, decorations, splitters, panes, and panels), edit the Connector Pane and the VI.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation ===&lt;br /&gt;
Many of the main application frameworks use VI Scripting to automate the generation of code, modules, messages, etc. Some examples of this include:&lt;br /&gt;
* How [[Delacor Queued Message Handler (DQMH)|DQMH]] starts new projects and adds new modules&lt;br /&gt;
* How [[Actor Framework]] creates new messages (see also [http://www.mooregoodideas.com/actor-framework/AF-Message-maker/ MGI&#039;s AF Message Maker])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General Guideline for Code Generation:&#039;&#039;&#039; VI Scripting code can get large and complex very quickly. A guideline to VI Scripting is to start with a template, make a copy, and then edit the copy.&lt;br /&gt;
&lt;br /&gt;
Another common use case of VI Scripting is to automate repetitive tasks. For example, if the code required the generation of many similar VIs. It might be more efficient to create a template and then write the scripting code to copy, modify, and save the VI.&lt;br /&gt;
&lt;br /&gt;
=== Creation of Add-on Tools ===&lt;br /&gt;
The creation of add-on tools can improve efficiency by automating repetitive tasks or making tasks easier to accomplish. There are many hooks into the LabVIEW IDE to let you create add-on tools.&lt;br /&gt;
&lt;br /&gt;
Presentation to help create new tools:&lt;br /&gt;
* [http://bit.ly/dnattlvhooks Don&#039;t Wait for LabVIEW R&amp;amp;D, Implement Your Own LabVIEW Features] - by Darren Nattinger, National Instruments&lt;br /&gt;
* [https://forums.ni.com/t5/Top-of-Utah-LabVIEW-User-Group/Seven-Things-Your-Doctor-Won-t-Tell-You-About-LabVIEW-Scripting/gpm-p/3685320 Seven Things Your Doctor Won&#039;t Tell You About LabVIEW Scripting] - by Quentin Alldredge, Q Software Innovations&lt;br /&gt;
Cool tools that currently exist:&lt;br /&gt;
* More to come&lt;br /&gt;
&lt;br /&gt;
=== Code Inspection ===&lt;br /&gt;
Another use of VI Scripting is to automate inspection of code to ensure adherence to style guidelines and effective programming practices, to catch common errors, and improve performance, functionality, and maintainability.&lt;br /&gt;
&lt;br /&gt;
Such tools include:&lt;br /&gt;
* [[VI Analyzer]] - The LabVIEW VI Analyzer Toolkit helps you improve the quality and readability of graphical code developed in LabVIEW software.&lt;br /&gt;
* [http://sine.ni.com/psp/app/doc/p/id/psp-844/lang/en LabVIEW Unit Test Framework] - The Unit Test Framework Toolkit provides interactive tools to create, configure, manage, and execute tests that check VIs for functional correctness.&lt;br /&gt;
* [https://github.com/JKISoftware/JKI-VI-Tester JKI VI Tester] - software test framework for LabVIEW that allows software developers to test their LabVIEW code; VI Tester is based on the industry standard xUnit software test architecture that is used in many other programming languages&lt;br /&gt;
* [https://github.com/JKISoftware/Caraya JKI Caraya Unit Tester] - open source assertion and unit testing framework for LabVIEW; convert your manual test VIs you use for debugging into unit test cases with nearly no effort&lt;br /&gt;
&lt;br /&gt;
== Enabling VI Scripting ==&lt;br /&gt;
[http://zone.ni.com/reference/en-XX/help/371361P-01/lvhowto/enabling_vi_scripting/ Instructions for enabling VI Scripting]&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
* [http://zone.ni.com/reference/en-XX/help/371361P-01/lvhowto/scripting_quick_reference/ Common VI Scripting Tasks]&lt;br /&gt;
&lt;br /&gt;
* [http://zone.ni.com/reference/en-XX/help/371361P-01/lvhowto/scripting_tutorial_intro/ VI Scripting Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
[https://forums.ni.com/t5/LabVIEW-APIs-Discussions/Exploring-the-Depths-of-the-VI-Server/td-p/3844848 Exploring the Depths of the VI Server] - by Quentin Alldredge, Q Software Innovations&lt;br /&gt;
&lt;br /&gt;
This presentation goes into the depths of the [[VI Server]] including Basic LabVIEW, VI Scripting, and even the Private stuff, showing many of the Properties, Methods, and Events I have found useful in the creation of LabVIEW IDE add-ons.&lt;br /&gt;
&lt;br /&gt;
[https://delacor.com/5-steps-to-become-a-vi-scripting-ninja/ 5 Steps to Become a VI Scripting Ninja] - Fabiola De la Cueva, Delacor&lt;br /&gt;
&lt;br /&gt;
Why would you want to use LabVIEW Scripting? LabVIEW VI scripting allows LabVIEW Developers to programmatically generate, edit, and inspect LabVIEW code. You would want to use LabVIEW VI Scripting to create tools that would make you and your team more efficient, to enforce coding guidelines or to automate repetitive tasks.&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Rusty Nails]]&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;br /&gt;
[[Category:IDE Add-ons]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=VI_Scripting&amp;diff=30919</id>
		<title>VI Scripting</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=VI_Scripting&amp;diff=30919"/>
		<updated>2021-01-19T16:44:33Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Fix link for &amp;#039;Don&amp;#039;t Wait for LV R&amp;amp;D&amp;#039; video recording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCnestright}}&lt;br /&gt;
[[File:Lv scripting.jpg|thumb|VI Scripting Nodes appear as Light Cyan]]&lt;br /&gt;
&#039;&#039;&#039;VI Scripting&#039;&#039;&#039;, also known as Scripting, deals with the ability of LabVIEW to use G to write G. VI Scripting contains several new [[VI Server]] classes, properties, methods, and events so you can create, move, and wire objects; edit the connector pane; create new VIs; and more. Scripting is useful for generating or editing VIs automatically based on simpler configurations. Examples of scripting include the code generated by Express VIs, the code generated for LVOOP Accessor VIs and the code generated by the NI Vision Builder. Because scripting requires recompiling the VI and may break it, you can not run scripting code on a VI which is reserved for running.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
VI Scripting began shipping with LabVIEW beginning with [[LabVIEW 2010]].  However, it is available for download from the [http://sine.ni.com/nips/cds/view/p/lang/en/nid/209110 LabVIEW Tools Network] for [[LabVIEW 8.6]] and [[LabVIEW 2009|2009]]. Before [[LabVIEW 8.6]] scripting was an undocumented feature and was available to those that knew how to enable it as early as [[LabVIEW 5.0]] through  flags in the [[LabVIEW configuration file]].  However, as it was not documented or supported to the greater community, it had the potential to be dangerous.  Before scripting was official an NI employee famously refferred to it as something akin to [[Rusty_nails|Rusty Nails]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
VI Scripting generally falls into three categories:&lt;br /&gt;
# Using G to automate the generation of more G&lt;br /&gt;
# Using G to create add-on tools (i.e. [[Quick Drop]], [[Shortcut Menu Plugins]], etc.)&lt;br /&gt;
# Using G to inspect G (i.e. [[VI Analyzer]])&lt;br /&gt;
VI Scripting uses properties and methods to create, locate, and operate on Block Diagram objects (i.e. primatives, structures, wires, and terminals), Front Panel objects (i.e. controls, indicators, decorations, splitters, panes, and panels), edit the Connector Pane and the VI.&lt;br /&gt;
&lt;br /&gt;
=== Code Generation ===&lt;br /&gt;
Many of the main application frameworks use VI Scripting to automate the generation of code, modules, messages, etc. Some examples of this include:&lt;br /&gt;
* How [[Delacor Queued Message Handler (DQMH)|DQMH]] starts new projects and adds new modules&lt;br /&gt;
* How [[Actor Framework]] creates new messages (see also [http://www.mooregoodideas.com/actor-framework/AF-Message-maker/ MGI&#039;s AF Message Maker])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General Guideline for Code Generation:&#039;&#039;&#039; VI Scripting code can get large and complex very quickly. A guideline to VI Scripting is to start with a template, make a copy, and then edit the copy.&lt;br /&gt;
&lt;br /&gt;
Another common use case of VI Scripting is to automate repetitive tasks. For example, if the code required the generation of many similar VIs. It might be more efficient to create a template and then write the scripting code to copy, modify, and save the VI.&lt;br /&gt;
&lt;br /&gt;
=== Creation of Add-on Tools ===&lt;br /&gt;
The creation of add-on tools can improve efficiency by automating repetitive tasks or making tasks easier to accomplish. There are many hooks into the LabVIEW IDE to let you create add-on tools.&lt;br /&gt;
&lt;br /&gt;
Presentation to help create new tools:&lt;br /&gt;
* [https://education.ni.com/center-of-excellence/resources/1141/don-t-wait-for-labview-r-d-implement-your-own-labview-features Don&#039;t Wait for LabVIEW R&amp;amp;D, Implement Your Own LabVIEW Features] - by Darren Nattinger, National Instruments&lt;br /&gt;
* [https://forums.ni.com/t5/Top-of-Utah-LabVIEW-User-Group/Seven-Things-Your-Doctor-Won-t-Tell-You-About-LabVIEW-Scripting/gpm-p/3685320 Seven Things Your Doctor Won&#039;t Tell You About LabVIEW Scripting] - by Quentin Alldredge, Q Software Innovations&lt;br /&gt;
Cool tools that currently exist:&lt;br /&gt;
* More to come&lt;br /&gt;
&lt;br /&gt;
=== Code Inspection ===&lt;br /&gt;
Another use of VI Scripting is to automate inspection of code to ensure adherence to style guidelines and effective programming practices, to catch common errors, and improve performance, functionality, and maintainability.&lt;br /&gt;
&lt;br /&gt;
Such tools include:&lt;br /&gt;
* [[VI Analyzer]] - The LabVIEW VI Analyzer Toolkit helps you improve the quality and readability of graphical code developed in LabVIEW software.&lt;br /&gt;
* [http://sine.ni.com/psp/app/doc/p/id/psp-844/lang/en LabVIEW Unit Test Framework] - The Unit Test Framework Toolkit provides interactive tools to create, configure, manage, and execute tests that check VIs for functional correctness.&lt;br /&gt;
* [https://github.com/JKISoftware/JKI-VI-Tester JKI VI Tester] - software test framework for LabVIEW that allows software developers to test their LabVIEW code; VI Tester is based on the industry standard xUnit software test architecture that is used in many other programming languages&lt;br /&gt;
* [https://github.com/JKISoftware/Caraya JKI Caraya Unit Tester] - open source assertion and unit testing framework for LabVIEW; convert your manual test VIs you use for debugging into unit test cases with nearly no effort&lt;br /&gt;
&lt;br /&gt;
== Enabling VI Scripting ==&lt;br /&gt;
[http://zone.ni.com/reference/en-XX/help/371361P-01/lvhowto/enabling_vi_scripting/ Instructions for enabling VI Scripting]&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
* [http://zone.ni.com/reference/en-XX/help/371361P-01/lvhowto/scripting_quick_reference/ Common VI Scripting Tasks]&lt;br /&gt;
&lt;br /&gt;
* [http://zone.ni.com/reference/en-XX/help/371361P-01/lvhowto/scripting_tutorial_intro/ VI Scripting Tutorial]&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
[https://forums.ni.com/t5/LabVIEW-APIs-Discussions/Exploring-the-Depths-of-the-VI-Server/td-p/3844848 Exploring the Depths of the VI Server] - by Quentin Alldredge, Q Software Innovations&lt;br /&gt;
&lt;br /&gt;
This presentation goes into the depths of the [[VI Server]] including Basic LabVIEW, VI Scripting, and even the Private stuff, showing many of the Properties, Methods, and Events I have found useful in the creation of LabVIEW IDE add-ons.&lt;br /&gt;
&lt;br /&gt;
[https://delacor.com/5-steps-to-become-a-vi-scripting-ninja/ 5 Steps to Become a VI Scripting Ninja] - Fabiola De la Cueva, Delacor&lt;br /&gt;
&lt;br /&gt;
Why would you want to use LabVIEW Scripting? LabVIEW VI scripting allows LabVIEW Developers to programmatically generate, edit, and inspect LabVIEW code. You would want to use LabVIEW VI Scripting to create tools that would make you and your team more efficient, to enforce coding guidelines or to automate repetitive tasks.&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Rusty Nails]]&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;br /&gt;
[[Category:IDE Add-ons]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_File_Extensions&amp;diff=30875</id>
		<title>LabVIEW File Extensions</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_File_Extensions&amp;diff=30875"/>
		<updated>2020-12-31T17:37:22Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Adding several LabVIEW file types to the list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all the file extensions supported by [[LabVIEW]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;text-align:center&amp;quot; |File Extension&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot; |Definition/Description&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[ALIASES File Extension|aliases]]&lt;br /&gt;
|File that maps computer names to IP Addresses&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[BIN3 File Extension|bin3]]&lt;br /&gt;
|File to include example [[VI|VIs]] in [[NI Example Finder]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[BIN4 File Extension|bin4]]&lt;br /&gt;
|File to include example [[VI|VIs]] in [[NI Example Finder]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CDF File Extension|cdf]]&lt;br /&gt;
|RT image file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CTL File Extension|ctl]]&lt;br /&gt;
|Control&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CTT File Extension|ctt]]&lt;br /&gt;
|Control Template&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[CVT File Extension|cvt]]&lt;br /&gt;
|LabVIEW toolkit conversion mapping file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LLB File Extension|llb]]&lt;br /&gt;
|LabVIEW Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVBIT File Extension|lvbit]]&lt;br /&gt;
|LabVIEW FPGA bit file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVBITX File Extension|lvbitx]]&lt;br /&gt;
|LabVIEW FPGA bit file&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVCLASS File Extension|lvclass]]&lt;br /&gt;
|LabVIEW Class Library and LabVIEW Interface&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLAD File Extension|lvlad]]&lt;br /&gt;
|LabVIEW Ladder Diagram ([[LabVIEW 8.6]] Only)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLIB File Extension|lvlib]]&lt;br /&gt;
|LabVIEW Project Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLIBP File Extension|lvlibp]]&lt;br /&gt;
|LabVIEW Packed Project Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVLPS File Extension|lvlps]]&lt;br /&gt;
|LabVIEW Local Project Settings&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVM File Extension|lvm]]&lt;br /&gt;
|LabVIEW Measurement File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVMODEL File Extension|lvmodel]]&lt;br /&gt;
|Control &amp;amp; Simulation Model&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVPROJ File Extension|lvproj]]&lt;br /&gt;
|LabVIEW Project&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVRBT File Extension|lvrbt]]&lt;br /&gt;
|LabVIEW Robotics (NXT Robot Project)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVSC File Extension|lvsc]]&lt;br /&gt;
|LabVIEW Statechart&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVTEST File Extension|lvtest]]&lt;br /&gt;
|LabVIEW Unit Test Framework Test&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVVECT File Extension|lvvect]]&lt;br /&gt;
|LabVIEW Unit Test Framework Test Vector&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[MNU File Extension|mnu]]&lt;br /&gt;
|Palette Menu&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[RC File Extension|rc]]&lt;br /&gt;
|IVI Instrument Driver Configuration File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[RTM File Extension|rtm]]&lt;br /&gt;
|Run-Time Menu&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[TDM File Extension|tdm]]&lt;br /&gt;
|Technical Data Management File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[TDMS File Extension|tdms]]&lt;br /&gt;
|TDM Streaming File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VI File Extension|vi]]&lt;br /&gt;
|Virtual Instrument&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIANCFG File Extension|viancfg]]&lt;br /&gt;
|VI Analyzer Configuration File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIDB File Extension|vidb]]&lt;br /&gt;
|LabVIEW Compiled Object Cache&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIM File Extension|vim]]&lt;br /&gt;
|&lt;br /&gt;
*Malleable VI ([[LabVIEW 2017]] and later)&lt;br /&gt;
*VI Macros ([[LabVIEW 2016]] and earlier) (see also [[Rusty Nails]])&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[VIT File Extension|vit]]&lt;br /&gt;
|Virtual Instrument Template&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XCTL File Extension|xctl]]&lt;br /&gt;
|XControl&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XMAP File Extension|xmap]]&lt;br /&gt;
|LabVIEW XMap Conversion Mapping File&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XNODE File Extension|xnode]]&lt;br /&gt;
|XNode&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[XSFP File Extension|xsfp]]&lt;br /&gt;
|LabVIEW Save For Previous Mapping File&lt;br /&gt;
|}&lt;br /&gt;
==LabVIEW NXG File Extensions==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;text-align:center&amp;quot; |File Extension&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot; |Definition/Description&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[DNI File Extension|dni]]&lt;br /&gt;
|.NET Interface (DotNet Interface)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GCOMP File Extension|gcomp]]&lt;br /&gt;
|&lt;br /&gt;
*Application Document&lt;br /&gt;
*Library Document&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GLL File Extension|gll]]&lt;br /&gt;
|G Linked Library&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GPAL File Extension|gpal]]&lt;br /&gt;
|G Palette&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GRSC File Extension|grsc]]&lt;br /&gt;
|G Resource Collection&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GRTM File Extension|grtm]]&lt;br /&gt;
|G Run-Time Menu&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GTYPE File Extension|gtype]]&lt;br /&gt;
|G Type&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[GVI File Extension|gvi]]&lt;br /&gt;
|Graphical Virtual Instrument&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVDIST File Extension|lvdist]]&lt;br /&gt;
|LabVIEW Distribution Document&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[LVPROJECT File Extension|lvproject]]&lt;br /&gt;
|LabVIEW Project&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[MLI File Extension|mli]]&lt;br /&gt;
|MATLAB Interface&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; |[[SLI File Extension|sli]]&lt;br /&gt;
|Shared Library Interface&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:LabVIEW file extensions]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=18821</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=18821"/>
		<updated>2020-04-29T16:28:10Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Add &amp;#039;Linux RT Package node under Build Specifications&amp;#039; entry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;Type String&#039;&#039; property (short name is &#039;&#039;TypeString&#039;&#039;) of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;Type String&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| BeagleBone Black || BeagleBone Black target (available with the LINX Toolkit)&lt;br /&gt;
|-&lt;br /&gt;
| Build || Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Compact Vision System Target || Real-Time Compact Vision System target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Ethernet Device || Ethernet RIO target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Windows || Windows CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || CompactRIO Chassis under a cRIO RT target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| elvisRIO Chassis || Chassis under an ELVIS RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Embedded Vision System Target || NI Embedded Vision System target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Generic Target || Networked Computer/Device target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || Virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp || Packed Project Library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project || Root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || Property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || Property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || Property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Raspberry Pi 2 B || Raspberry Pi 2 B target (available with the LINX Toolkit)&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || CompactRIO module that appears under the FPGA Target node under an RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || Resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CDAQ Chassis ||  Real-Time CompactDAQ Chassis target&lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Desktop ||  Real-Time Desktop target&lt;br /&gt;
|-&lt;br /&gt;
| RT elvisRIO ||  ELVIS RIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT FlexRIO || Real-Time FlexRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || Generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Industrial Controller || Real-Time Industrial Controller target &lt;br /&gt;
|-&lt;br /&gt;
| RT myRIO || myRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT roboRIO || roboRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || Single-Board RIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Smart Camera Target || Real-Time Industrial Smart Camera Target&lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || Test file (.lvtest) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || Test vector file (.lvvect) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || Shared Variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {CED73189-3D7D-4B2F-B6C9-EA03FBC59E14} || Linux RT Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=10498</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=10498"/>
		<updated>2020-01-31T17:29:23Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;Type String&#039;&#039; property (short name is &#039;&#039;TypeString&#039;&#039;) of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;Type String&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| BeagleBone Black || BeagleBone Black target (available with the LINX Toolkit)&lt;br /&gt;
|-&lt;br /&gt;
| Build || Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Compact Vision System Target || Real-Time Compact Vision System target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Ethernet Device || Ethernet RIO target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Windows || Windows CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || CompactRIO Chassis under a cRIO RT target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| elvisRIO Chassis || Chassis under an ELVIS RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Embedded Vision System Target || NI Embedded Vision System target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Generic Target || Networked Computer/Device target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || Virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp || Packed Project Library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project || Root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || Property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || Property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || Property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Raspberry Pi 2 B || Raspberry Pi 2 B target (available with the LINX Toolkit)&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || CompactRIO module that appears under the FPGA Target node under an RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || Resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CDAQ Chassis ||  Real-Time CompactDAQ Chassis target&lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Desktop ||  Real-Time Desktop target&lt;br /&gt;
|-&lt;br /&gt;
| RT elvisRIO ||  ELVIS RIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT FlexRIO || Real-Time FlexRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || Generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Industrial Controller || Real-Time Industrial Controller target &lt;br /&gt;
|-&lt;br /&gt;
| RT myRIO || myRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT roboRIO || roboRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || Single-Board RIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Smart Camera Target || Real-Time Industrial Smart Camera Target&lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || Test file (.lvtest) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || Test vector file (.lvvect) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || Shared Variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8008</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8008"/>
		<updated>2019-06-07T20:34:08Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;Type String&#039;&#039; property (short name is &#039;&#039;TypeString&#039;&#039;) of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;Type String&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| Build || Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Compact Vision System Target || Real-Time Compact Vision System target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Ethernet Device || Ethernet RIO target&lt;br /&gt;
|-&lt;br /&gt;
| CompactRIO Windows || Windows CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || CompactRIO Chassis under a cRIO RT target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| elvisRIO Chassis || Chassis under an ELVIS RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Embedded Vision System Target || NI Embedded Vision System target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Generic Target || Networked Computer/Device target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || Virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp || Packed Project Library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project || Root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || Property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || Property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || Property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || CompactRIO module that appears under the FPGA Target node under an RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || Resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CDAQ Chassis ||  Real-Time CompactDAQ Chassis target&lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  RT CompactRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Desktop ||  Real-Time Desktop target&lt;br /&gt;
|-&lt;br /&gt;
| RT elvisRIO ||  ELVIS RIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT FlexRIO || Real-Time FlexRIO target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || Generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Industrial Controller || Real-Time Industrial Controller target &lt;br /&gt;
|-&lt;br /&gt;
| RT myRIO || myRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT roboRIO || roboRIO target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || Single-Board RIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Smart Camera Target || Real-Time Industrial Smart Camera Target&lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || Test file (.lvtest) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || Test vector file (.lvvect) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || Shared Variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8005</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8005"/>
		<updated>2019-06-03T19:15:02Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;Type String&#039;&#039; property (short name is &#039;&#039;TypeString&#039;&#039;) of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;Type String&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| Build || Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || CompactRIO Chassis under a cRIO RT Target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || Virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp || Packed Project Library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project || Root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || Property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || Property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || Property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || CompactRIO module that appears under the FPGA Target node under an RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || Resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || Generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || Single-Board RIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || Test file (.lvtest) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || Test vector file (.lvvect) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || Shared Variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8004</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8004"/>
		<updated>2019-06-03T19:09:48Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;Type String&#039;&#039; property (short name is &#039;&#039;TypeString&#039;&#039;) of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;Type String&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| Build || Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || RT CompactRIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || Virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp || Packed Project Library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || Hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project || Root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || Property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || Property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || Property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || CompactRIO module that appears under the FPGA Target node under an RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || Resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || Generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || Single-Board RIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || Test file (.lvtest) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || Test vector file (.lvvect) from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || Shared Variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8003</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8003"/>
		<updated>2019-06-03T19:06:14Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;Type String&#039;&#039; property (short name is &#039;&#039;TypeString&#039;&#039;) of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;Type String&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type String !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || An Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| Build || The Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || The Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || RT CompactRIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || The Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || The Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || The Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || A virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || The Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || An I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || The Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || A LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || A LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || A hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp || A packed project library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || A LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || A hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || A Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || The Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || The My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || The Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project || The root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || A property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || A property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || A property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || A CompactRIO module that appears under the FPGA Target node under an RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || A resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  An RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || A generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || An RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || An RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || An sbRIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || The Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || The Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || A .lvtest file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || A .lvvect file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || A Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || A Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || A shared variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || A Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || An XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || An XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || The Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || The .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || The Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || The IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || The Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || The Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8002</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8002"/>
		<updated>2019-06-03T19:05:39Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;TypeString&#039;&#039; property of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;TypeString&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! TypeString !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || An Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| Build || The Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || The Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || RT CompactRIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || The Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || The Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || Non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || The Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || A virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || The Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || An I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || The Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || A LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || A LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || A hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVLibp || A packed project library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || A LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || A hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || A Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || The Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || The My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || The Packed Library node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Project || The root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || A property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || A property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || A property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || A CompactRIO module that appears under the FPGA Target node under an RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || A resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  An RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || A generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || An RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || An RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || An sbRIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || The Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || The Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || A .lvtest file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || A .lvvect file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || A Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || A Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || A shared variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || A Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || An XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || An XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || The Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || The .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || The Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || The IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || The Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || The Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8001</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8001"/>
		<updated>2019-06-03T18:42:04Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;TypeString&#039;&#039; property of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;TypeString&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! TypeString !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Ability VI || an Ability VI within an XControl or XNode&lt;br /&gt;
|-&lt;br /&gt;
| Build || the Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Class Private Data || the Private Data Control inside a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || RT CompactRIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || the Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || the Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || the Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || A virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || The Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IO Server || An I/O Server node under a target&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || the Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || A LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || A LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| LibraryData || A hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || A LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| LVStatechartVIItem || A hidden ProjectItem that contains internal information about an LVStatechart library&lt;br /&gt;
|-&lt;br /&gt;
| Method VI || A Method VI in an XControl &lt;br /&gt;
|-&lt;br /&gt;
| Module Container || The Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || The My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || A packed project library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| Project || The root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| Property Definition || A property definition folder under a LabVIEW Class&lt;br /&gt;
|-&lt;br /&gt;
| Property Folder || A property folder in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| Property VI || A property VI in an XControl&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || A CompactRIO module that appears under the FPGA Target node under an RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || A resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  An RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || A generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || An RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || An RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || An sbRIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || the Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || The Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || A .lvtest file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || A .lvvect file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || A Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || A Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || A shared variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || A Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || An XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || An XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || the Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || the .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || The Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || The IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || the Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || The Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8000</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=8000"/>
		<updated>2019-06-03T18:07:39Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;TypeString&#039;&#039; property of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;TypeString&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! TypeString !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Build || the Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || RT CompactRIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || the Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || the Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || the Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO || IO Resource under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock || Base clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP || RIO DRAM &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock || Derived clock under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO || FIFO node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block || Memory node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target || FPGA target (R-series device, cRIO target, etc.) &lt;br /&gt;
|-&lt;br /&gt;
| Folder || A virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container || The Web Resources folder under a Web Service node&lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target || IP Builder node under an FPGA target &lt;br /&gt;
|-&lt;br /&gt;
| Installer || the Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || A LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || A LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || In some projects with a Real-Time target, the &#039;My Computer&#039; target will have a type of &#039;Localhost&#039; instead of &#039;My Computer&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || A LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| Module Container || The Real-Time Scan Resources node under an RT Chassis &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || The My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || A packed project library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| Project || The root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module || A CompactRIO module that appears under the FPGA Target node under an RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource || A resource under a RIO module. For example, an SD Card node. &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  An RT CompactRIO Target&lt;br /&gt;
|-&lt;br /&gt;
| RT Generic || A generic RT Target &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis || An RT PXI Target &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO || An RT Single-Board RIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis || An sbRIO Chassis that appears under an RT Single-Board RIO target &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || the Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container || The Startup VIs folder under a Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| TestItem || A .lvtest file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem || A .lvvect file from the Unit Test Framework &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel || A Touch Panel target&lt;br /&gt;
|-&lt;br /&gt;
| VI || A Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable || A shared variable node under a library or a target&lt;br /&gt;
|-&lt;br /&gt;
| Web Service || A Web Service node &lt;br /&gt;
|-&lt;br /&gt;
| XControl || An XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || An XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || the Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || the .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} || The Real-Time Application node under Build Specifications (under an RT Target) &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} || The IP Build node under Build Specifications (under an IP Builder target)&lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || the Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} || The Compilation node under Build Specifications (under an FPGA target) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=7996</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=7996"/>
		<updated>2019-05-31T23:17:35Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;TypeString&#039;&#039; property of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;TypeString&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! TypeString !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Build || the Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis || RT CompactRIO Target &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || the Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives || Directives items created for VIs by FPGA IP Builder &lt;br /&gt;
|-&lt;br /&gt;
| DLL || the Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave || EtherCAT slave device &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave || EtherCAT slave device&lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster || EtherCAT master device&lt;br /&gt;
|-&lt;br /&gt;
| EXE || the Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target ||  &lt;br /&gt;
|-&lt;br /&gt;
| Folder || A virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container ||  &lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target ||  &lt;br /&gt;
|-&lt;br /&gt;
| Installer || the Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || A LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || A LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost ||  &lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || A LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| Module Container ||  &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || The My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || A packed project library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| Project || The root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module ||  &lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT Generic ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO ||  &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator || Simulated robot device&lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis ||  &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || the Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container ||  &lt;br /&gt;
|-&lt;br /&gt;
| TestItem ||  &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem ||  &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel ||  &lt;br /&gt;
|-&lt;br /&gt;
| VI || A Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable ||  &lt;br /&gt;
|-&lt;br /&gt;
| Web Service ||  &lt;br /&gt;
|-&lt;br /&gt;
| XControl || An XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || An XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || the Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || the .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} ||  &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} ||  &lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || the Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} ||  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=7994</id>
		<title>ProjectItem</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=ProjectItem&amp;diff=7994"/>
		<updated>2019-05-31T20:55:51Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;ProjectItem&amp;#039;&amp;#039;&amp;#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.  If y...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ProjectItem&#039;&#039;&#039; class in VI Server allows you to inspect and modify items that appear in the Project window, such as VIs, virtual folders, classes, libraries, etc.&lt;br /&gt;
&lt;br /&gt;
If you have a reference to a ProjectItem, you can read the &#039;&#039;TypeString&#039;&#039; property of the item to identify what kind of item it is:&lt;br /&gt;
&lt;br /&gt;
[[File:TypeString property.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same string you can use for the &#039;&#039;Type&#039;&#039; parameter of the &#039;&#039;Get All Descendents&#039;&#039; method of the ProjectItem class to get all children of a ProjectItem that match a specific type:&lt;br /&gt;
&lt;br /&gt;
[[File:Get All Descendents method.png]]&lt;br /&gt;
&lt;br /&gt;
The following table lists valid &#039;&#039;TypeString&#039;&#039; values and their descriptions. Update this table with new type strings as you discover them.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! TypeString !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Build || the Build Specifications node under every target&lt;br /&gt;
|-&lt;br /&gt;
| cRIO Chassis ||  &lt;br /&gt;
|-&lt;br /&gt;
| Dependencies || the Dependencies node under every target&lt;br /&gt;
|-&lt;br /&gt;
| Directives ||  &lt;br /&gt;
|-&lt;br /&gt;
| DLL || the Shared Library (DLL) node under Build Specifications &lt;br /&gt;
|-&lt;br /&gt;
| Document || non-LabVIEW files, like images, text files, etc.&lt;br /&gt;
|-&lt;br /&gt;
| ECATEbusSlave ||  &lt;br /&gt;
|-&lt;br /&gt;
| ECATEnetSlave ||  &lt;br /&gt;
|-&lt;br /&gt;
| ECATMaster ||  &lt;br /&gt;
|-&lt;br /&gt;
| EXE || the Application (EXE) node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Elemental IO ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Base Clock ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Component Level IP ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Derived Clock ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA FIFO ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Memory Block ||  &lt;br /&gt;
|-&lt;br /&gt;
| FPGA Target ||  &lt;br /&gt;
|-&lt;br /&gt;
| Folder || A virtual folder or an auto-populating folder&lt;br /&gt;
|-&lt;br /&gt;
| HTTP WebResources Container ||  &lt;br /&gt;
|-&lt;br /&gt;
| IP Builder Target ||  &lt;br /&gt;
|-&lt;br /&gt;
| Installer || the Installer node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| LVClass || A LabVIEW class&lt;br /&gt;
|-&lt;br /&gt;
| Library || A LabVIEW project library&lt;br /&gt;
|-&lt;br /&gt;
| Localhost ||  &lt;br /&gt;
|-&lt;br /&gt;
| LVStatechart || A LabVIEW StateChart Module library&lt;br /&gt;
|-&lt;br /&gt;
| Module Container ||  &lt;br /&gt;
|-&lt;br /&gt;
| My Computer || The My Computer node under the root Project&lt;br /&gt;
|-&lt;br /&gt;
| Packed Library || A packed project library (PPL)&lt;br /&gt;
|-&lt;br /&gt;
| Project || The root project item at the top of the Project Explorer&lt;br /&gt;
|-&lt;br /&gt;
| RIO C Series Module ||  &lt;br /&gt;
|-&lt;br /&gt;
| RIO Subresource ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT CompactRIO ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT Generic ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT PXI Chassis ||  &lt;br /&gt;
|-&lt;br /&gt;
| RT Single-Board RIO ||  &lt;br /&gt;
|-&lt;br /&gt;
| Robotics Environment Simulator ||  &lt;br /&gt;
|-&lt;br /&gt;
| sbRIO Chassis ||  &lt;br /&gt;
|-&lt;br /&gt;
| Source Distribution || the Source Distribution node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| Startup VIs Container ||  &lt;br /&gt;
|-&lt;br /&gt;
| TestItem ||  &lt;br /&gt;
|-&lt;br /&gt;
| TestVectorItem ||  &lt;br /&gt;
|-&lt;br /&gt;
| TouchPanel ||  &lt;br /&gt;
|-&lt;br /&gt;
| VI || A Virtual Instrument (VI)&lt;br /&gt;
|-&lt;br /&gt;
| Variable ||  &lt;br /&gt;
|-&lt;br /&gt;
| Web Service ||  &lt;br /&gt;
|-&lt;br /&gt;
| XControl || An XControl library&lt;br /&gt;
|-&lt;br /&gt;
| XNode || An XNode library&lt;br /&gt;
|-&lt;br /&gt;
| Zip File || the Zip File node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| .NET Interop Assembly || the .NET Interop Assembly node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {69A947D5-514E-4E75-818E-69657C0547D8} ||  &lt;br /&gt;
|-&lt;br /&gt;
| {9C5E1E31-72F0-41E9-9B17-FFBE4626F549} ||  &lt;br /&gt;
|-&lt;br /&gt;
| {E661DAE2-7517-431F-AC41-30807A3BDA38} || the Package node under Build Specifications&lt;br /&gt;
|-&lt;br /&gt;
| {F4C5E96F-7410-48A5-BB87-3559BC9B167F} ||  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VI Scripting]]&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Get_All_Descendents_method.png&amp;diff=7993</id>
		<title>File:Get All Descendents method.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Get_All_Descendents_method.png&amp;diff=7993"/>
		<updated>2019-05-31T20:32:16Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Get All Descendents method of the ProjectItem class&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:TypeString_property.png&amp;diff=7992</id>
		<title>File:TypeString property.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:TypeString_property.png&amp;diff=7992"/>
		<updated>2019-05-31T20:30:04Z</updated>

		<summary type="html">&lt;p&gt;Dnatt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The TypeString property of the ProjectItem class in VI Server.&lt;/div&gt;</summary>
		<author><name>Dnatt</name></author>
	</entry>
</feed>