Error: missing 1 required positional argument: 'initialValue' but I did input `initialValue`

Error: missing 1 required positional argument: 'initialValue' but I did input `initialValue`

11713013
Contributor Contributor
1,647 Views
2 Replies
Message 1 of 3

Error: missing 1 required positional argument: 'initialValue' but I did input `initialValue`

11713013
Contributor
Contributor

Hi there!

I am new to use Fusion360 API although I have used Fusion360 as my major modeling tools for a while. And I feel amazing about Fusion360 API for what they can do. I have never imagine modeling by codes. However, Fusion360 API is not that easy to learn because it is not widespread to find solutions to debug.

So I have to write this post to asking help. Sorry for bothering you.

 

Here is my problem:

I just want to create a dialog to get some user input so I using `CommandInputs` and `addValueInput` method to get user input. That seems easy, right? But here is something I got confused.

My python code part is here:

inputs = adsk.core.CommandInputs

length_input = inputs.addValueInput('length_input', 'Length(cm)', 'cm', default_length)

 

But when I run the code and it comes out with `TypeError: addValueInput() missing 1 required positional argument: 'initialValue'`

I did put `default_length` as the `initialValue` and its type is `ValueInput`. I don't know what I did wrong and I could find out the result using google. This have stuck me several days. 😥

(I guess this is a foolish problem but I did cost a lot of time here. This cause me EMO 😥)

 

Best Wishes!

 

 

0 Likes
Accepted solutions (1)
1,648 Views
2 Replies
Replies (2)
Message 2 of 3

tykapl.breuil
Advocate
Advocate
Accepted solution

The problem is you aren't getting the inputs object the right way. The inputs object is linked to a command, so in your CommandCreated class you need to have this :

cmd = args.command
inputs = cmd.commandInputs

The reason you were getting this error is that since you weren't dealing with the right object, the 'self' argument in the class was missing, thus everything mas moved back and the last positional argument wasn't given.

 

In general in the Fusion API, you'll almost never get an object from the class or a constructor, you'll either use something like a create method or get it through already existing objects (like in this example).

 

If you still have problems, this sample code form the documentation might help :

https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-e5c4dbe8-ee48-11e4-9823-f8b156d7cd97

 

Message 3 of 3

11713013
Contributor
Contributor

Oh, I see.

You are so nice!

Thank you so much for this answer and I will give it a try!

It seems I do not fully understand the UserInterface part of Fusion360 API. I should re-read the manual. 

 

0 Likes