What is a Parameter?

Parameters are variables defined at different levels of the Project configuration that can be used to dynamically set the values of queries in DataView refresh scripts, replace column names in Data Transfer and other bespoke implementations.

How are Parameters defined?

Parameters are defined in a hierarchy of Parameter Stores going from the DataView all the way up to the Viewer. They are primarily accessible when configuring DataView, under the button Define Parameters, but third party extensions providers can also provide access to parameters in other relevant places.

When a Parameter is required by BimSens, its value is first looked up in the leaf node of the Store hierarchy for the current context, most often the DataView. If the Parameter definition is not found in the DataView, it is looked up in the parent Store: the DataSource. Then the Project and ultimately the Viewer. This cascading is referred to as Parameter Inheritance.


Parameters can also be looked up from neighbouring nodes in the same Project such as another DataView, allowing DataViews to Refresh automatically when filter or selection of other DataView change. Parameter path for these scenarios follow the same logic as directory relative path where the prefix '..\' navigate to a parent directory, and '\name' navigates down to a node with matching name. For simplicity, the Parameter browser allow visual navigation of the Parameter Stores tree to select a given parameter and have its relative path calculated automatically.

Examples of Parameter Use

  • Select a Parameter instead of column names when running Data Export, for instance to include the {ModelFileName} or {ModelFileDate} as a field in your data set
  • Use a custom item property Parameter in Navisworks to filter a SQL Read Query based on the selection, e.g. SELECT * FROM AttributesTable WHERE Id = '{Param}' where the Expression of Param is '=Element.Id'
  • Use a system Parameter from Navisworks to query assets from an AIMS database
  • Switch between 2 Configurations with parameters pointing at a development database and a production database
  • Create a list (or tree) of values, and automatically refresh a filtered view based on the selected list/tree value, e.g. SELECT * FROM Asset WHERE AreaId = '{..\SiblingView\Param}' where the Expression of Param is '=SelectedRow.Area'. The following diagram illustrate the Parameter Store behaviour in a similar example:


Using Configurations

Configurations define values override for parameters in a Parameter Store. See the Configurations topic for more information.