However, all definitions returned by this method for any parameter whatsoever are InternalDefinition, including for shared parameters that have been marked as invisible.
The InternalDefinition does not have the Visible property exposed.

It also seems, from looking in the Visual Studio watch window, that the base Definition class does contain a visible property (whose value is correct), but it is internal and not exposed:

Answer: Yes, there is a known issue accessing the definition class of a shared parameter.
The Parameter.Definition property on a shared parameter erroneously returns an InternalDefinition, even though it actually should be returning an ExternalDefinition.
This issue is being looked into and will be resolved soon.
It may be possible to implement a workaround to get the proper external definition through the sequence Application.OpenSharedParameterFile > DefinitionFile > DefinitionGroup > ExternalDefinition.

Happily, if Visual Studio is able to display the visibility property that you are interested in, then you should also be able to access it from your application source code using .NET
reflection.

Response: Excellent - thanks for the information on the issue with the Parameter.Definition property, and thanks for pointing me towards using reflection.
We have created the following function that solves the problem for the current release:

However, all definitions returned by this method for any parameter whatsoever are InternalDefinition, including for shared parameters that have been marked as invisible.
The InternalDefinition does not have the Visible property exposed.

It also seems, from looking in the Visual Studio watch window, that the base Definition class does contain a visible property (whose value is correct), but it is internal and not exposed:

Answer: Yes, there is a known issue accessing the definition class of a shared parameter.
The Parameter.Definition property on a shared parameter erroneously returns an InternalDefinition, even though it actually should be returning an ExternalDefinition.
This issue is being looked into and will be resolved soon.
It may be possible to implement a workaround to get the proper external definition through the sequence Application.OpenSharedParameterFile > DefinitionFile > DefinitionGroup > ExternalDefinition.

Happily, if Visual Studio is able to display the visibility property that you are interested in, then you should also be able to access it from your application source code using .NET
reflection.

Response: Excellent - thanks for the information on the issue with the Parameter.Definition property, and thanks for pointing me towards using reflection.
We have created the following function that solves the problem for the current release: