Overview: In this lesson, you learn how to parametrize your BricsCAD BIM entities.
Lesson Objectives
After completing this lesson, you will be able to:
 Understand the difference between global and local parameters.
 Identify the geometric and dimensional constraints.
 Set an expression to a parameter.
 Parametrize your custom component.
 Control your 3D geometry with parameters.
Parametric Modeling
In BricsCAD, parametric modeling is done through the use of geometrical and dimensional constraints. A rich toolset controls the 2D and 3D geometric model with a set of parameters. Each parameter will be displayed with a value in the Mechanical Browser. The value from the different parameters can be linked together via expressions. When one of the parameter values is changed, the geometric model is updated automatically. The toolset allows BricsCAD users to add parametric behavior to any geometry and easily explore design intent.
Note: In BricsCAD, there are no parentchild dependencies between geometric elements. For instance, if you change a sketch used to create an extruded 3D solid, the solid is not changed accordingly. Any kind of dependencies can be created using the parameters and expressions.
There are two types of parameters: Local parameters are attached to a particular entity. Global parameters are not attached to a particular entity.
Working with constraints
If you create some components (e.g. windows, doors,…) in your BIM model, you can parametrize them by applying 3D constraints. Defining constraints allows you to control the shape and size of the elements. Together with constraints, parameters determine the positions of entities through an expression.
There are two types of 3D constraints in BricsCAD: one specifies the size of the entities, the other locate their positions.
Geometrical constraints
Geometric constraints allow you to control the position of 3D entities with respect to each other.
Toolbar: Parametric > 3D constraints
Quad: Constraints
The following table shows the 3D geometrical constraints.
Fix 
Keeps solids, edges or faces of solids inplace in the drawing.  
Coincident 
Applies a coincident constraint between two edges, two faces or an edge and a face of two different solids.  
Concentric 
Keeps two cylindrical, spherical or conical surfaces centered.  
Parallel 
Keeps the two faces of a solid or of different solids parallel.  
Perpendicular 
Keeps the two faces of a solid or of different solids perpendicular.  
Tangent 
Keeps a face and a curved surface of different solids tangent.  
Rigid set 
Makes a set of entities or subentities a rigid body. 
Dimensional constraints
Dimensional constraints allow you to control the sizes of 3D entities in drawings, and the distances between them.
Toolbar: Parametric > 3D constraints
Quad: Constraints
Ribbon: Parametric Tab > 3D constraints
The following table shows the dimensional constraints.
Distance 
Creates a distance between two subentities.  
Radius 
Creates a radius to cylindrical surfaces or circular edges.  
Angle 
Creates an angle between two faces of a solid or of different solids. 
Setting an expression to a parameter
In BricsCAD, you can set an expression to any parameter, be it global or local. As an example, you can create a simple expression that only contains a number or a name of a global parameter and apply it to the related geometry in the drawing. You can also use more complex formulas that include the use of standard operators and functions.
NOTES 

The following table shows the operators that can be used in expressions.
Addition (+) 
Produces the sum of numeric values. 
Subtraction or Negative () 
Subtracts the two numeric values. 
Multiplication (*) 
Multiplies the numeric values. 
Division (/) 
Divides two numeric values. 
Exponentiation (^) 
Calculates the exponential value of the given numbers. 
Modulo or Remainder operator (%) 
Gives the remainder after the division of one numeric value to another e.g. The expression "5 % 2" would evaluate to 1, because 5 divided by 2 leaves a quotient of 2 and a remainder of 1. 
The following table shows the functions and the syntax which can be used in expressions.
Cosine 
cos(expression) 
Sine 
sin(expression) 
Tangent 
tan(expression) 
Arc cosine 
acos(expression) 
Arc sine 
asin(expression) 
Cosine 
cos(expression) 
Arc tangent 
atan(expression) 
Hyperbolic cosine 
cosh(expression) 
Hyperbolic sine 
sinh(expression) 
Hyperbolic tangent 
tanh(expression) 
Arc hyperbolic cosine 
acosh(expression) 
Arc hyperbolic sine 
asinh(expression) 
Arc hyperbolic tangent 
atanh(expression) 
Square root 
sqrt(expression) 
Signum function (1,0,1) 
sign(expression) 
Round to nearest integer 
round(expression) 
Truncate decimal 
trunc(expression) 
Round down 
floor(expression) 
Round up 
ceil(expression) 
Absolute value 
abs(expression) 
Largest element in array 
max(expression1;expression2) ^{*} 
Smallest element in array 
min(expression1;expression2) ^{*} 
Degrees to radians 
d2r(expression) 
Radians to degrees 
r2d(expression) 
Logarithm, base e 
ln(expression) 
Logarithm, base 
10 log(expression) 
Exponent, base e 
exp(expression) 
Exponent, base 10 
exp10(expression) 
Power function 
pow 
Random decimal, 01 
Random(expression1;expression2) ^{*} 
*Use the list separator character as defined on your system: , (comma) or ; (semicolon).
Parametric Blocks
Parametric Blocks refer to blocks that have parameters that determine the size and shape of the 3D geometry. Once the parametric block is created, it can be inserted as a block reference in the drawing. The parameters of your block can be changed after you insert it in your model. Thus, no need to modify the parametric block file individually. The parametric blocks also enable you to use the same block in different sizes and in different shapes in your model.
Procedure: Parametrizing a custom component
The window that was created in the previous lesson is used to demonstrate how the parametric design works. This window consists of three solids: subtractor, fixed frame, and glass pane.
Step 1: Before starting to add constraints:
 Open the Mechanical Browser with the MechanicalBrowserOpen command, to control and manage the values of 3D constraints and parameters.
Note: The Mechanical Browser allows to navigate through all the constraints and parameters in the drawing and to edit dimensional constraints.
 Make sure that the Enable selection of 3D solid faces () is toggled on in the Selection Modes To easily follow the steps, make sure Boundary Detection is toggled off.
Step 2: Applying fix constraints
Command: DmFix3d
 Turn on the BIM_Subtract layer.
 Select the entities (1) you want to add a fixation to.
(Optional) Press the TAB key to select obscured geometry.
 Choose Add Fixation (2) in the 3D constraints command group in the Quad.
The fixation appears in Mechanical Browser as ‘ Fix_1’.
Step 3: Applying rigid constraints
Command: DmRigidSet3d
 Select the entities to apply the Rigid Set constraints.
The entities remain in the same position with respect to each other when they are in a Rigid Set.
To select more than one subentity of the same type at a time, take the following steps: Use Look From Widget (4), by default it is at the top right of your screen, to change the view from 3D to TOP.
 Select the entities using the selection box (5). While drawing a selection box, press CTRL key to change the type of subentity selection. Every time you press CTRL key the type of the subentity selection will change. The type of the subentity can be seen under your mouse cursor, for instance, faces (6) or edges (7).
Note: By default, the selection boxes see and select solids.
 Choose Add Rigid Set () in the 3D constraints command group in the Quad.
 Repeat the same process for the other sides: top, bottom, and right side.
Step 4: Applying distance constraints
Command: DmDistance3d
Dimensions of the window and the thickness of the glass pane.
 Turn off the BIM_Subtract layer.
 Select the first face.
The face highlights.
 Hover over the second face.
Hit the TAB key to highlight an obscured face.
 When the second face highlights, choose Add Distance (8) in the 3D Constraints command group in the Quad.
You are prompted: Specify distance value or [Geometrydriven] <xxx.xx>:
 Do one of the following:
 Press Enter key or rightclick to accept the current value.
The current value displays in the dynamic dimension field (9) when the Dynamic Dimensions (DYN) is active.
 Type a value in the command line.
 Press Enter key or rightclick to accept the current value.
 The distance value between the two surfaces appears in the Mechanical Browser.
Note: To remove any constraint in your model, select the constraint in the Mechanical Browser, e.g. fix, rigid set…, and press the Delete key or rightclick and select the Delete option.
Step 5: Applying parameters
We will create a parameter that controls the width of the window.
 Rightclick the file name (10) in the Mechanical Browser.
 Select Add New Parameter (11)in the context menu.
The parameter settings grid is created and the parameter is added in Mechanical Browser as ‘v1 = 1’ (12).
 Select the parameter, then edit its properties in the settings grid.
The following illustration shows the properties of a Width parameter of the custom window. The table below demonstrates each property.Name
Type a parameter name. Expression
Type a value or formula. Value
Shows the current value of the parameter. Geometrydriven
If yes, makes the parameter geometrydriven. Description
Define an optional description of the parameter. Exposed
Controls whether the parameter is available in the properties panel when the component is inserted into a model. Units
Specifies whether the parameter is linear, areal or volumetric.
 To link the parameter you just created with the dimensional constraint, select the distance constraint in the Mechanical Browser and use the parameters to formulate an expression in the Expression field in the settings grid of the constraint.
 (Optional) change the expression value of the parameter and press Enter. The assigned distance constraint is changed accordingly.
*In your drawing, you can design as many constraints as possible. Note that the software will keep you away from applying more constraints than are necessary.