Announcements
Visit Fusion 360 Feedback Hub, the great way to connect to our Product, UX, and Research teams. See you there!
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Better Way to Handle Parameters

Better Way to Handle Parameters

I love the idea that Fusion 360 is parametric, which of course means that you can set forth definitions for various things which you can then use later as parameters while modeling. For instance, as a dimensional parameter in an extrusion operation. Or to control the number of copies that need to be made based on the height and width of a part. Or whatever your imagination can come up with-- parameters which can be tweaked and tuned at any time later to "dial-in" the subtle nuances of your parts dimensional characteristics, for example.

 

The problem is-- unless I'm missing something (and I quite well could be, I still have a lot to learn)-- Fusion 360's parameters seem a bit rough around the edges. They work well for what they do but they lack a top-down flow, inheritability, scoping and localization, and are subject to the same "Do / Undo / Redo" stack as everything else. Meaning that if you don't think to add a particular parameter until later in your process, and then go back and undo some stuff, it can get gone-- poof-- like that, without even realizing it. Parameters-- in my huge opinion-- should exist in a separate "Do / Undo / Redo" stack outside of the general design operations timeline. For people who don't agree with this viewpoint, then perhaps create "transient" parameters or "operational parameters" which are bound to the design timeline and act pretty much like they do now.

 

What I would like to propose is a richer method of dealing with parameters and would start with a Project-level parameter sheet wherein parameters defined would be "global" in scope, with respect to the project. Any component which is attached to the project can access them. Next, a "Localized Parameter Scope" could be created at any time simply by declaring it, which by default would inherit links to the complete set of parameters which are visible in the hierarchical chain above it-- which are in turn ultimately linked to the ones at the global level unless somehow intentionally obscured. Parameters in each new scope could be overwritten, hidden / removed (made unavailable), temporarily redefined, etc. All components which are bound to that sheet and the ones going forward will use that new parameter view, until of course, some action is taken that modifies that view.

 

Parameter sheets could also be individually named and then accessed directly by referencing the name. Hierarchies could similarly be traversed using some hierarchical notation in a manner similar to that provided by many programming languages-- pick one. Seriously, programming languages deal with lexical scoping all the time. This is not a new idea in the grand scheme of things. And you have a whole multitude of examples out there to pick from.

 

Parameters would continue to have all of the same rich expressive abilities such as the ability to add two parameters together or perform other mathematic and/or logical operations on them. But now those expressions would have the ability to reach into other parameter sheets, according to their namespaces and/or whatever hierarchical reference notation is used and thus making them even more useful and worthwhile / practical to use.

 

One feature that I would *strongly* suggest, even apart from the rest of this proposal would be for some very simple 1-character device which would strip the units from a parameter and make it easy to use unitless numbers when/as-needed. I am aware that it can be done using the existing framework, but IMO, it's kind of clumsy and long-winded.

 

I know I'm a neophyte with Fusion 360 but I have many years of other types of procedural experience, such as programming in various languages, embedded hardware design and a number of other arenas. However, nearly all of these other areas include the simple idea of namespaces and scoped / lexical naming and access as basic core features of the underlying structural essence of the language.

 

Fusion 360 is so very powerful and growing more so at every turn-- it is a crying shame that it is so crippled in such a deep and fundamental aspect. However, it is one that I think is correctable, and when those corrections are made-- will supercharge the ability of designers everywhere to unleash the true power and sheer awesomeness of Fusion 360.

 

So that is my proposal. Thank you for your time and kind attention.

 

Keep making Fusion 360 great!!

2 Comments
PaulMunford
Autodesk

Could you check this out for me to see if I'm correct?

 

Parameters come in two types...

 

Parameters that are automatically created by sketch dimensions and features (these will be deleted if the feature/dimension is deleted, and may not be available if the timeline is rolled back?)

 

User parameters, which are created by you and won't be deleted unless you delete them.

Anonymous
Not applicable

Paul,

 

It is my experience that parameters that I create will get removed / deleted if I undo past their creation. I am in the habit these days of making setting up a parameter sheet the first thing I do. Then if I need to add new ones after-the-fact I can roll back in history to that action and add more in that timeline slot. While it is doable, I think it is kind of kludgy personally. Although I have heard a couple of attempts at justifying the behavior by some others. My own opinion is that if anybody wants it that way, then just leave it as the "basic" type of parameters and make what I'm proposing a more "advanced" type. 

 

I'll give you an example of why what I'm proposing would be a big benefit. For example, suppose you are working on-- let's say, a Mars Rover. You probably have a lot of things which are generated from a handful of initial dimensions. But at the same time, you're also going to have dimensions which are only relevant to the local part. And more problematic, they may have the same or similar names as dimensions or parameters in other components, so simply putting them all into a great big list is still unwieldy and prone to errors-- or simply not realizing that a given parameter is even there. Which could lead to duplicate parameters being created-- which then leads to conceptual splitting (forking) of whatever the underlying thing is that you're trying to control for / describe... etc.

 

Also, for more advance projects, your design is probably going to be more complex, contained across more components, and so on.  Keeping track of everything is going to get increasingly difficult, IMO-- plus (AFAIK) you can't reference "default" parameters which are contained in some other part of the project. (If you can, please let me know how and what the syntax is. I could really, really use that about now).

 

Ultimately, when you start thinking it through, it seems clear (at least to me) that the only realistic approach is to hoist into being some sort of Hierarchical Namespace convention along with Global and lexically-scoped parameters so the designer can "mix and match" and choose the parameters which are most appropriate from the most germain parameter sheet in the hierarchy. In a way it does for CAD / Fusion 360 what "Objects" and related notation does for programming-- in my view.

Can't find what you're looking for? Ask the community or share your knowledge.

Submit Idea