Product Parameters
Overview
What are Product Parameters ?
Product parameters are attributes created by Range Managers on each Product.
Parameters each have a name, a type, and either a set value (fixed parameters), or a list / range of possible values (variable parameters).
Setting the value of variable parameters
Variable Product Parameters have a default value that can be modified within possible values in two distinct ways:
- By the user if the Parameter is declared “visible” and “editable”. This situation corresponds to Product Configurability.
- By an overload when the Product is part of an Assembly and that the Assembly overloads the value of some of its Components Parameters (see the Assemblies 🔗 section). This situation corresponds to the Specialization of a Product.
Using the values of Product Parameters
The value of Product Parameters can go:
- Towards the Representation of this Product.
- Example : the Resource chosen as the Representation of this Product, artDecoHandle.BM3 declares a width parameter, and a material parameter. The Range Manager can create a Product called “Art Deco 120 satin” with this Resource as representation, and a width parameter set to 120mm, and a material parameter corresponding to a satin metal finish : these parameters are automatically set on the resource, which is specialized to represent a particular Product. A similar example could be demonstrated with an Assembly resource, detailed in the next section.
- Towards the containing Assembly, if this Product is used in an Assembly
- Example: European-style built-in ovens typically have a height between 432mm and 595mm. The Range Manager can declare a height parameter on all ovens, to be used by the assemblies using this product as a component, in order to compute the size of the horizontal filler piece to be placed in the void on top of the oven (small filler piece for large ovens, larger filler piece for small ovens).
Parameter names
Parameter naming rules
Authorized characters are : A-Z a-z 0-9, underscore, dash. No spaces, no special characters.
The parameter name should be unique to the product. It cannot be the same as another parameter or relation name inside the same Product.
Parameter naming guidelines
There is obviously a strong value in respecting common guidelines over a project which sometimes makes use of Range portions from different origins. We recommend specific names… .while balancing with the need for genericity regarding the various use-cases of this parameter.
Parameter types
Number
Any numerical value. Numbers are used for dimensions or positions, and are input and stored in millimeters.
- example: width = 400,
- example: lightPositionFromWall = 300.
Boolean
Has two states, true or false. Can be used to enable or disable an option/component, or any other two-state behavior.
- example: backCoverPanelOption = [true; false].
Integer
Whole number. Used to describe a behavior with more than two states.
- example: sinkMounting = [ 0 (top-mounted); 1 (under-glued); 2 (moulded);...].
String
text, sequence of characters. String parameters are an alternative to integer parameters, to describe options.
- example : coverPanelBottomPosition = [ “toFloor”; “toFrame;...].
Material
Makes the appearance of a product configurable. Values can only be existing ByMe PublicationMaterial.
Product
Values can only be existing ByMe Products, in order to set References.
Managing configurability through parameter values
The ByMe parameter framework enables fine-grained control on the authorized values of parameters, opening the door to different configurability scenarios.
Parameter default value
The default value is mandatory (defaultValue attribute).
Possible value management
Variable parameters must have a determined set of possible values (bar the boolean and allowAnyValues exceptions).
The following table explains which parameter attributes to use (values, min, max, ids) to define the possible values of a parameter, depending on its type.
Parameter Type | mix/max | values | ids |
---|---|---|---|
Number | Yes: interval | Yes: list | N/A |
Boolean | N/A | N/A | N/A |
Integer | N/A | Yes: list | N/A |
String | N/A | Yes: list | N/A |
Product | N/A | N/A | Yes: list |
Material | N/A | N/A | Yes: list |
Value management
nullable (boolean, default false) : defines if the parameter value can be null, ie unset. If true, null can then be a possible value, and a default value.
allowAnyValue (boolean, default false) : defines if the parameter possible values are defined in the local product (false), or in an enclosing assembly (true) : this avoids repeating the declaration of possible values at several levels of the product structure. Enabling this feature is incompatible with editable=true. This capability is used in the context of Parametric Product Structure detailed in the Assemblies 🔗 section.
Parameter exposure
A Product Parameter has a level of exposure :
- editable : in the Product panel of the Application, the user can change the parameter value, within the possible values defined.
- visible : in the Product panel of the Application, the parameter name and value are displayed
- none : the Parameter is not shown in the edit panel.
Inter-Parameter possible values dependency
If the possible values of one parameter depend on the value of another parameter, you need to implement Product Rules 🔗.