Parameter types

Parameter types

oransen
Collaborator Collaborator
598 Views
7 Replies
Message 1 of 8

Parameter types

oransen
Collaborator
Collaborator

Should I use get_Units to find out if a Model or User parameter is a double or an integer or...?

 

 

0 Likes
Accepted solutions (1)
599 Views
7 Replies
Replies (7)
Message 2 of 8

MegaJerk
Collaborator
Collaborator

You would use TypeName.

MessageBox.Show(TypeName(ParameterNameHere))

 
Example

Dim frank As String 
frank = "1222"

MessageBox.Show(TypeName(frank))

 



If my solution worked or helped you out, please don't forget to hit the kudos button 🙂
iLogicCode Injector: goo.gl/uTT1IB

GitHub
0 Likes
Message 3 of 8

Vladimir.Ananyev
Alumni
Alumni

Numeric parameter values internally  are always Double.   

(that's why you need to be careful when compare them for equality).

Units property is useful if user parameter contains text.

In this case Parameter.Units property returns "Text".

Cheers,


Vladimir Ananyev
Developer Technical Services
Autodesk Developer Network

0 Likes
Message 4 of 8

oransen
Collaborator
Collaborator
In your example you are using VB variables. I was thinking of parameters in a parametric model. I don't think your method would work in that case.
0 Likes
Message 5 of 8

oransen
Collaborator
Collaborator

So even integer counts are stored as doubles?

 

 

0 Likes
Message 6 of 8

Vladimir.Ananyev
Alumni
Alumni
Accepted solution

Yes, integers values of numeric parameters are stored as doubles.

You may find out that the e.g. length parameter is "integer" assuming some tolerance: 
if abs(x - round(x,6)) < 0.000001 then <x is integer>

   


Vladimir Ananyev
Developer Technical Services
Autodesk Developer Network

Message 7 of 8

oransen
Collaborator
Collaborator

Actually suppose I should know if it is integer or double since I probably create the parameter!

0 Likes
Message 8 of 8

Vladimir.Ananyev
Alumni
Alumni

Of course we always know if our parameter should be integer or not  Smiley Happy

But we should remember that it is rather dangerous directly compare “integer” parameter with the reference integer value:   
       If oParameter.Value = 1 then <do something>
because oParameter.Value could be equal to 1.000000000001
Be careful.

Cheers,


Vladimir Ananyev
Developer Technical Services
Autodesk Developer Network

0 Likes