Like Becktho mentions your question is a little vauge in your meaning. But I think I know what your hinting at. As LabVIEW is coded now the possibility of a true polymorphic VI cannot be realized. When creating a sub VI you *have* to assign a numeric representation to the controls and indictators ahead of time.
I would agree that it would be nice to have "adapt to input" controls and indicators for this purpose... the only work around I have found for this (after much hair pulling/ searching/ reading) is as close to a polymorphic template as I could get it to (please someone provide a better solution if one is available!).
1> Create a standard polymorphic VI
2> Create a VI containing the main code you would like executed and set the inputs/ outputs to one of the larger representations (such as extended)
3> Create a bunch of template VIs which call the VI in step 2 as a subvi
Note: These template VIs all look exactly the same except for their input and output types.
This approach, like everything, has its good and bad points. Some of the good is you can create a template up front, copy it to a new location, and modify the code in Main Code VI and you have a new polymorphic VI ready to go (you have to use it at least once so the LLB will relink the modified VI). Another good point is since the wrapper VIs are small it has some good space savings. The only bad thing about it (that I know of) is the type casting.
See example below. I know this is not exactly what you wanted but I tried something like this a couple of weeks ago and this is as close as I got... This polymorphic VI just adds two inputs. For the example I added support (natively) for extended and two additional template VIs for double and single.
The other inputs are easy to add. Edit one of the existing template VIs buy changing its representation to what you need, save it under a new name, add it to the library as a new option.
Hope this helps!