Parametric modeling is a great way of streamlining your CAD work. However, it’s easy to feel daunted by tables, formulas, constraints and parameters. With that in mind, I’ve come up with a practical, exercise, that anyone with a basic knowledge of CAD can follow. It will give you an idea of the basics of 3D parametric modeling in BricsCAD.

In this exercise, you will learn how to use parametric modeling to make a set of drums for a drumkit. You will do this by modeling one drum and adding parameters and constraints. All you need to do is change the values of these parameters to create the other drum sizes. You will finish by adding a design table.

If you get stuck don’t worry, you can download the complete model in the project file.

parametric model of drum with design table

Make a Drum Kit With Parametric Modeling

Time to complete: 1-2 Hours

Difficulty: 8/10


Download the project .dwg files here

Watch the step by step video


Before we begin..

If you need to manually enter a value during the exercise, it will be shown in green.

Quick guide to terminology:

  • Parameter – defines the position, distance, and angle of geometry
  • Constraint – rules: position, slope, tangency, dimension, and relationship of geometry
  • Expression – formula or absolute value of a parameter or constraint

How to model a drum kit with parametric modeling

  1. Start by modeling the basic parts of the drum:
    • Shell
    • Skin
    • Ring
    • Boltdrum kit assembly skin ring bolt

    You can model them yourself or download the project file.
    Note: It’s a good idea to use 0,0,0 as the origin point for the center of the drum. This helps when adding constraints later.


  2. Now it’s time to create components, if you don’t want to you can use the model in the project download file and skip to Step 17.
    Add 3 new parameters:

    1. Open the Mechanical Browser
    2. Right-click and select Add new parameter from the drop-down menu.
    3. Repeat Step 2, 2 times.
    4. Click on the new parameters and change the Expression (their values) – use the bottom half of the Mechanical Browser:
      • Name = height
        Expression = 300
      • Name = rad
        Expression =150
      • Name = bolts
        Expression = 6parameters in the mechanical browser
  3. Now add a Coincidence constraint to the bottom face of the drumkit to “lock” it in position. coinsidence constraint
    1. The Command line will display: Select a pair of subentities or [Autoconstrain/WOrld/BLock/selection options (?)] <Autoconstrain>: Choose the WOrld option
    2. The Command line displays: Select reference coordinate system subentity [Origin/X axis/Y axis/Z axis/XY plane/YZ plane/ZX plane]: Choose the Origin option
    3. Select the bottom face of the drum shell.constraint fix drum kint 3d model

    The face of the drum shell is now fixed in position.
    TIP It’s best-practice to set coincidence constraints first.
    You could also use a Fix constraint for this step. However, it will give you less options later.


  4. Now convert the skin, rim and bolts into components. Begin by setting the constraints, then convert each item into a component.
    Set a Radius Constraint to the outer face of the drumskin.radius constraint how to model a drum kit in CAD
  5. Change the value of Expression to ‘rad‘.radius constraint
    The drumskin radius is now the same value as the ‘rad’ parameter. If you change the value of ‘rad’ the radius of the drumskin will change to match.


  6. Test this: right-click on the ‘rad’ parameter and select Animate.animate constraints in BricsCAD
  7. Use BMForm to convert the skin into a component.
    Select the ‘External component’ option and set the origin point as the center of the top face. Give it a sensible name and storage location.
    Once you have created the component it will appear in the Mechanical Browser.


  8. Right-click the ‘rad’ constraint and select Link to Parameter.parametric modeling
  9. Test the constraints now. Right-click on the ‘rad’ parameter and select Animate.
  10. Repeat steps 4-9 to add Radius Constraints to the ring and change the values (see illustration below). Set the origin point to the center of the ring.
    how to constrain a ring
    Click to enlarge
  11. Mirror/Copy the bolt.
    mirror copy bolt drum kit 3d model
  12. Add a Distance Constraint between the two faces (see illustration).distance constraintNote: The first face you select will be the “stationary” face. The second face will move relative to the location of the first face.
  13. Set the Distance to ‘height-112’.
  14. Test it: right-click the ‘height’ parameter and select Animate.animate distance parameter
  15. Use BMForm to convert the bolts into a component. Again, use the External option.
    Set the origin point to the center of the washer on the bolt. This should be the bolt that does not move when the height parameter is animated.
    The face should be the face that will touch the bottom face of the ring (see image).

    The blue dot indicates the origin point. This is the “stationary” point.
  16. Right-click the ‘height’ constraint select Link to parameter.
  17. Mirror/Copy the skin and the ring.mirror
  18. Add a Coincidence Constraint to fix the bottom drum skin in place. using fix constraints in BricsCAD
    • The Command line will display: Select a pair of subentities or [Autoconstrain/WOrld/BLock/selection options (?)] <Autoconstrain>: Choose the WOrld option
    • The Command line displays: Select reference coordinate system subentity [Origin/X axis/Y axis/Z axis/XY plane/YZ plane/ZX plane]: Choose the Origin option
    • Select the top face of the bottom skin.

    If you complete this step correctly, the skin should jump to the bottom of the shell. However, the skin is fixed in position relative to the world coordinate system and not the shell.
    Fixing components relative to the world coordinate system makes their behavior more predictable and prevents them from “jumping around”.


  19. Create a Coincidence constraint between the inner of the bottom ring and the bottom face of the drum skin.
    Note: If you prefer you could set this constraint and the following distance constraints, from the world coordinate system. I have not, in case I wish to change the thickness of the drum skin at a later point in time.drum skin If you complete this step correctly, the ring should jump to the bottom of the skin.


  20. Add a Distance constraint between the top and bottom faces of the shell.
    distance constraint
  21. Set the Distance to ‘height’.
  22. Add a Distance constraint between the top face of the bottom skin and the bottom face of the top skin.
    Perspective added for clarity.
  23. Set the Distance to ‘height’.
  24. Add a Distance constraint between the top face of the bottom ring and the bottom face of the top ring.
    distance between solids
    Perspective added for clarity.
  25. Set the expression to ‘height -6’.
    So far so good! Check and see how everything is looking:
  26. Right-click the ‘height’ parameter and select Animate.distance constraint
    If you animate the ‘rad’ parameter, you’ll see that the shell doesn’t move with the rest of the model, so let’s fix that!


  27. Add two Radius Constraints to the inner and outer faces of the shell. Set the outer radius Expression to ‘rad’ and the inner radius Expression to ‘rad-7.5’.
  28. Now all that’s left is to add the bolts!
    Move the bolts into position with the bottom ring. 
    At this point, you’ll notice that there is a problem: the ring isn’t large enough. Luckily this is easy to fix!


  29. In the Mechanical Browser, right-click on the ring and select Open from the drop-down menu.open component to edit
  30. The component will open in a separate drawing. Change the expression of the largest radius from ‘rad+20’ to ‘rad+30’.radius values
  31. Save the drawing.
  32. Open the main drawing back up (click the tabs).
  33. In the Mechanical Browser, right-click on the ring and select Update from the drop-down menu. update
    Note:
    both rings automatically update.


  34. Enter ArrayPolar. Select the bolt component as the entities to array and use 0,0,0 as the origin point.
  35. In the Mechanical Browser, change the parameters of the array to:
    • Radius = ‘rad+15
    • Items = ‘bolts
    • Angle between items = ‘360/boltsarray values
  36. In the Mechanical Browser, animate the various parameters or manually type a new value for each parameter. You now have a way to quickly create drums of different sizes!parametric model

Finishing up

Typically, drums come in just a few standard sizes. This is where Design tables can be useful!

I created this design sheet for my drum kit, all I needed was a simple spreadsheet software package. I then saved the table to .csv. Make sure the column headers match the parameter names.

An example of a design table created in a spreadsheet software package.

To load a design table into BricsCAD is really easy:

  1. Enter DesignTable.
    • The Command line will display: Create design table [From file/Empty] <From file>: Choose the From file option
    • Select the .csv file.

    The Mechanical Browser will then display a new branch with a grid icon (just below the Parameters branch).sizes design table drum kit

  2. Navigate to the bottom of the panel. Next to the word Value there will now be a drop-down menu. This will provide you with all the size options available in the design table.

parametric model

And that’s it! Your first parametric model. Just add some hardware and a few cymbals and you’re rocking!

3d model drumkit bricscad

Automatic parameters and constraints

BricsCAD includes a Parameterize command. This automatically adds parameters and constraints to a drawing. However, for the purposes of this exercise, you manually added parameters and constraints to a drawing. Feel free to test out Parameterize for yourself to see how it works!

Learn more

If this has wet your appetite for parametric modeling, why not check out our BricsCAD BIM – Grasshopper connection!


Download BricsCAD Shape free

Get started with BricsCAD today

Permanent or subscription licenses that work in all languages, in all regions.