Tuesday, April 08, 2014

Hidden Parameters

Hey we missed an undocumented feature in 2015! Hidden Parameters! Notice the column for Hidden in the dialog?

Maybe a product manager will see this and blink? Sorry it isn't real, it is a mock-up. Yes, it's a few days late for an April Fool's joke.

Daniel Stine and I traded a couple emails recently and part of that conversation included the concept of making parameters hidden. He passed along this image to illustrate his idea.

For background, if we edit a Shared Parameter file with a text editor, something that we are warned not to do in the opening paragraph of the file itself (see the link for Walking on Thin Ice below), we can set a value that causes a parameter to be hidden from the user when the family is loaded into a project.

This technique only works for Shared Parameters and is really only practical for loadable (component) families. You have to set the parameter to hidden BEFORE you use it AND you can't reverse your decision without removing and replacing the parameter. The parameter remains visible while editing a family. It is not visible to users in their project. By not visible I mean it does not appear in the Properties Palette or Type Properties dialog.

I think it IS desirable to have more control over user interaction with parameters. I'd like to be able to make it more obvious which parameters are for their input versus derived from other parameters. Color coding, locked, hidden, and many other ideas have all been discussed over the years. It seems to me that adding a Hidden column would be an interesting way to define how a parameter should be regarded by a project. Certainly less secretive than the existing approach.

Related Posts:
Walking on Thin Ice
Ignore Good Advice
Making Shared Parameters Hidden (from What Revit Wants)


Parley said...

Interesting post Steve! Having a true function for hiding parameters has been a long standing request for all of us. Do you think that Autodesk will eventually implement an easy way to toggle the visible state of parameters if they’ve already technically given us a solution in Shared Parameters?
While I also anxiously await a better way, we've developed a software solution to help us efficiently make use of the Shared Parameter hidden property:
We make a practice of naming all 'extra' parameters (constraints, formula driven, etc.) with a prefix of 'z'. Then, when our tool is run, it converts all z parameters to a standard list of hidden shared parameters that all created families use. For example: z Jamb Width in Family1.rfa and z Panel Thickness in Family2.rfa both become zz Lenght1 when the tool is run. The tool also remembers the original name and can revert to the old family parameter names with a single button click. We see this as having a few benefits:
1. Any parameter you want can quickly become hidden in the project
2. Because the families all use the same zz shared parameters, the impact on the project is smaller.
3. There’s an unintended benefit also that could also be seen as a drawback: somebody without the tool cannot easily reverse engineer the logic in the model – a benefit to some manufacturers we work with.
It’s not an ideal solution but we feel that being able to remove the clutter is a huge advantage. What are your honest thoughts on a tool like this? Would others find it useful if we built the tool to reference a shared parameter ‘in the cloud’ so that EVERYBODY used the same parameters?
..and because I know you’ll ask  the tool is surprisingly stable and fast – as long as the families don’t have nested families with z parameters or grouped elements that reference parameters.

Armando Martinez said...

I just found out the other day, perhaps from one of your posts on AUGI Steve, how you can hide shared parameters. I wished I would have known this before I deleted all of the project parameters from the project! Users kept on complaining that the properties palette was unreadable due to there being a million parameters for Mechanical Equipment. I thought Project Parameters were so convenient because you can load any family without parameters and instantly make it schedulable, but the Properties Palette was the problem. Will editing the visibility value in the Shared Parameters text file work with Shared Project Parameters as well? That would be amazing.

Parley said...

Armando, yes.. Hidden Shared Parameters are not visible, even if used as Project Parameters. Sounds like you'll enjoy that!!

Armando Martinez said...

That's good news! I had switched everyone over to Parameter Jerk because of the complaining but now gonna switch them back! Thanks

Cesar Escalante said...

Upon review, to my dismay, this feature didn't make it in the final 2015 release. Sorry to inform.