How to Design a Parametric Bookcase




Introduction: How to Design a Parametric Bookcase

About: I am an Engineering Technician with 15 years as a glorified government drafter. Another 5 years was spent drawing/programing for a company that had CNC machines. I taught AutoCAD at the local community college…

When is a Bookcase not a bookcase? When it has nothing but plants and rocks on it (mine). When it has nothing but clothes on it (kids). When it has nothing but tools and sawdust on it (hubbies). Then it is just a set of shelves.

Parametric Bookcase is the third Instructable in the Parametric Dimensioning Series. It will apply the concepts that were covered in Parametric Dimensioning 101 and 201.

This tutorial is for beginning users of Alibre Design or Alibre Xpress (the free versions) and will work with any other parametric modeling program. Some of the descriptions are a little lengthy. I wish it were not so, but sometimes it is necessary in the beginning to explain not just WHAT to do, but WHY.

In this Instructable, we will apply the concepts of Parametric Dimensioning to an actual project: The design of a simple bookcase. The construction will be simplified slightly with the elimination of the toe kick, in order to more clearly demonstrate the concepts involved. We will leave it as an exercise for the reader to use the techniques covered here to add the toe kick on their own.

We will cover the following techniques:
Use parameters with equations to define the component dimensions
Efficiently reuse previously created parts rather than creating all parts from scratch
Use Color Properties to change from gray to wood
Define Constraints to position parts
Create a Linear Pattern rather than inserting multiples of the same part

This bookcase will become the basis for additional lessons that will take this project all the way to manufacture.

Step 1: Three Important Questions

How wide? Internet investigation shows bookcase shelves to be 12" to 14" wide.
How long? Between the TV and the sofa.
How high? How much of that sheet of plywood is left?

I would like to use a beautiful sheet of bamboo plywood that I have. Because of its three-ply construction with a lumber type core and thick outer laminations, the edges are quite attractive and there is no need for edge-banding (see Image 1). If you think you might want to look into bamboo plywood most suppliers will send you a sample box. See Image 1.

During the initial stages of a design, joinery is often ignored while the design concept is developing. For this bookcase, we will assume that if he really makes it, my husband is going to use that brand new biscuit joiner he talked me into buying for his birthday. If construction were going to use dados, we would have to add the dado depth to the length to the shelves.

We will start with Overall Dimensions of 42" Wide x 54" High x 13" Deep, and the 4th dimension is the material thickness of 3/4". The width of the Bookcase should not be confused with the width of individual parts, because it is the overall width of the bookcase design. See Image 2.

In fact, my husband's been encouraging me to accept Breadth for an overall design value definition so as not to confuse the two uses of the term Width. That would result in overall design dimensions of Height, Breadth and Depth. For the time being, I will be sticking with the more common term of Width, and try to avoid any confusion for my husband who thinks I bought that biscuit joiner for him.

Step 2: Open Up and Say W-o-o-d

Open Alibre Design or Xpress and create a New Part.

Open the Equation Editor - f(x) - and select the Add option.

We are going to add Parameters for the overall size of the bookcase, that will drive the rest of the bookcase part Dimensions. While this is a bit of an overkill for such a straight forward design, it will demonstrate how the use of equations and parametric modeling can be applied to more complex designs.

Parameter Names must not contain spaces and very few special characters are allowed, so I will use an underscore as a separator. We like to work with mixed Case parameter names, Capitalizing the first letter of a word and use the underscore separator between the descriptive name and dimensions indicator (e.g. Length, Thick, Width, Offset). However, in order to highlight the parameters that provide the overall dimensions of a design, we like to fully capitalize the entire parameter name. While it is a bit harder to read, it makes these important values stand out from the rest of the working parameters. It also helps the user quickly identify what parameters should be changed to modify the design conditions for the current model. When using those fully capitalized parameters in equations, they should not be capitalized! This avoids the necessity of having to change the capitalization of a large number of parameters should the design evolve and different parameters become the all important design specifying parameters. Capitalization is irrelevant within equations, and has evolved in our use to bring attention to specific parameters.

Open the Equation Editor, and select the Add button to manually add new parameters to the Equation Editor. Enter BOOKCASE_HEIGHT for the parameter name, and 54" for the Equation value; BOOKCASE_WIDTH and 42" for the breadth, er... Width; BOOKCASE_DEPTH and 13" for the depth; and BOOKCASE_THICK and 3/4" for the thickness of the components parts for the bookcase. We just need to add BOOKCASE_TOEHEIGHT and 3" to define the height of the toe kick below the bottom shelf. With these 5 parameters that define the overall design conditions of the bookcase, we now have all the information we need to create equations that will specify the size of each part.

Step 3: ZOOM-ZOOM-Z-o-o-O-O-O-M

Zoom way out and select Activate 2D Sketch on the XY plane. We are going to start with the side of our Bookcase. We could start with any part, but have chosen the side as the best part to begin the introduction on using parameters with equations.

Draw a rectangle, constrain it symmetrically about the X & Y axes, and get ready to dimension the Width and Length. Review the Instructable "Model Woodworking Board or Sheet Part" if you need more detailed information on the steps to draw a simple board. Read it carefully, because it is crammed with everything you need to know in order to construct a board model that will function properly all the way through output for drawing, Bill of Material, and sheet nesting or even CNC machining. Since the focus of this lesson is parametric dimensioning, we will concentrate on the dimensioning aspects of this board part.

Add dimensions. We know that the bookcase is 54 inches high. It would be safe to presume then that the side will be 54" long, and we would be right. It would also be safe to say that any drafting program can do this. Since we are using Alibre and it has the advantage of being parametric, we want instead to set the value of the part Length to the (you guessed it) the BOOKCASE_HEIGHT. Add the Length dimension for the board to the horizontal side of the rectangle, and enter the Equation Editor via the dimension dialog box and set the Name to Length and Equation entry to "Bookcase_Height". Complete the entry, and when you return to the drawing area, you should notice the length of the rectangle now contains a parameter name rather than a value, and the horizontal length of the rectangle is 54" long. Press the HOME key to show the entire sketch if it does not currently fit entirely within the drawing area.

It may be necessary to check the Show Equations box in the Design Properties to see the parameter names and equations rather than a simple value on your sketches. Go to File > Properties and in the Design Properties dialog box Dimension Tab, the Show Equations box is about half way down on the Left. You can apply this only to the current document for this exercise, but you may want to apply to Both (in the Apply Options tab) if you want to do more work with parametric equations.

Dimension the vertical direction of the rectangle for the part using the parameter name Width and Equation Value of "Bookcase_Depth". This will make the board Width equal to the BOOKCASE_DEPTH. If you goof as I did, and made it equal to the BOOKCASE_WIDTH instead, you will get a large square rather than a long rectangle. This is where my husband chimes in with a wise crack about using Breadth instead of Width to define the design dimensions, but now is not the time to admit it. Goofs are pretty obvious with the graphical nature of Alibre, and the beauty of using solid modeling rather than some cabinet design packages.

Time to give our Bookcase Side some thickness. Select Extrude Boss and set the extrusion Type to MidPlane. This is in keeping with the best practices described in the Board Instructable and constructing parts symmetrically about the origin when possible. In the depth field instead of just entering 3/4", we know that it we should enter "Bookcase_Thick" for the Depth. You should press the button to the right of the depth field with the 3 dots to enter the Equation Editor, and name the parameter "Thick" and enter "Bookcase_Thick" as the Equation. After returning to the Extrude Boss dialog box, give the Extrude Boss a label of "Part" and click OK. You do not want to be too specific at this time with the name of the Feature for the rectangular solid. If we name it Side now, we will have to rename it each time we re-use this part file to create another part for our model. Being less specific with the feature names allows us to borrow from our growing library of existing part models, and let the name we save the part file under describe the actual use.

Not quite Rocket Science, but we are on our way to using parameters and equations to define the dimensions of our parts rather than just values.

Step 4: Wood Is Not Gray Unless It Has Been Left in the Sun.

While the choices and the applications of color are limited, with the use of some color, shadow, reflectivity, and opacity. We can come close to an acceptable brown color.

Hover your arrow over the yucky government gray slab and right click. Choose Color Properties. When the Color box comes up check the color button. I chose the numbers in the custom color section. If you cannot read it, they are: Hue: 30 Sat: 100 and Lum: 180. I added it as a custom color so that it would always be available, at least when I want maple.

I must add another note about the Board Instructable. It has lots of wood colors formulas. Want wenge?

Step 5: Parting Is Such Sweet Sorrow...

Before we move on to the rest of the parts, let's fill in some Part Data so that we have the material information for our Bill of Material. A bit of patience at this stage, and a little extra time taken to finish off the details of this first part, will save a lot of time in the end because we will not have to duplicate these steps again for any parts derived from this first part.

Select File > Properties (or ALT+ENTER) to open the Design Properties Dialog box. Click on the General Tab and scroll down the table located in the lower left. For the field "Stock Size", enter SHEET GOODS for the Material Type. In the next field "Supplier", enter BAMBOO PLYWOOD for the Material Name. This will provide the minimum information required for processing the output from the Bill of Material with a sheet goods nesting and optimization program. Remember to save your work.

Step 6: E=mc2

(this is a long one so get coffee)

Now we can get down to the really fun part. We are going to use parametric equations to define the dimensions for the back of the Bookcase.

To save us the boring task of drawing another rectangle, constraining, dimensioning and entering all the dimensions that define the bookcase, we will instead open the Side part (if not still open) and do a Save As under the new part file name 'Back'. This will allow us to go directly to re-defining the size of the rectangular part that will now become the back of our bookcase.

The normal orientation for the back of a cabinet or bookcase is that with the grain running vertically. It does not matter that we have created the part for the back laying on its side, because it will be oriented vertically when it is constrained into the bookcase assembly. What is important here, is that the Width of the Back will be related to the Width (Breadth for my husband) of the bookcase. In this design, the back will be inset between the two side/end panels of the bookcase. So, the Width of our Back panel will be the Width of the Bookcase, minus the thickness of the two bookcase side panels.

Open the Equation Editor, and MODIFY the Width parameter for the part, and replace the current Equation with a new equation that defines the Width of the Back. I am sure you are already way ahead of me, but that Equation will be 'Bookcase_Width - 2*Bookcase_Thick'. Bookcase_Thick is the value used to define the thickness of each Side panel in our first part.

Maybe you can already see how all the parts for an entire cabinet can be defined if you create all the parameters to describe the cabinet. Counter_Height, Counter_Thick, Toekick_Height, Toekick_Depth, Cabinet_Width, Cabinet_Depth... all can be defined (and easily modified) to provide all the information required to specify the dimensions of every part. The Top of a cabinet is sandwiched between the two cabinet ends would have the same Length formula as the Width of our bookcase back. The equation for the Length of the Top would then be something similar to 'Cabinet_Width - LeftEnd_Thick - RightEnd_Thick' where a thickness is defined for each end in order to allow differing thicknesses if desired (which we have encountered far more than you would think). While it may appear at this time that it is more trouble than it is worth to go through every single part and change the values that define the cabinet itself, there are techniques that make this a reasonable task. From the use of Configurations in the Professional and Expert versions of Alibre to create multiple parts in the same part file, to Spreadsheet driven parameters, and even custom programs written using the Alibre API interface. Creating parametric driven models can make creating common woodworking designs quite simple and quickly.

Xpress users should not loose heart because you too can benefit from configurations. A properly constructed model using configurations will allow you to manipulate the defining parameter values and use a model composed of a significant number of parts, while only be regarded by Xpress as a single part because all the parts are contained in a single part file. But, you can tell I have been listening too much because my husband prattles on about configurations and modeling. Time to finish the back to our bookcase.

Open the Equation Editor again, and MODIFY the Length parameter. Since the back of a bookcase usually ends at the bottom shelf and does not go all the way to the floor, we will subtract the Toe kick height from the Height of the bookcase in order to get the length of the back. Replace the Equation for the Length of our part with 'Bookcase_Height - Toekick_Height'.

Since the thickness of the Back does not change, save the part file and we are done with the Back part.

Step 7: Would You Repeat That Please?

We are going to repeat the process and do another Save As for the last part, the Shelf. Like the Sides we have multiple shelves, and we could inset the number we want and then constrain them into place in the Assembly. But, we are going to do it the easy way. We are going to insert a single shelf and constrain it, and create a Linear Pattern from that part to duplicate it vertically to create the other shelves and top shelf.

Before we can do that, we need to modify the dimensions of the Shelf using the Equation Editor. And since this is a lesson on parametric dimensioning, we are again going to use the values that define the overall dimensions of the bookcase

We need to modify the part Length to match the distance between the two sides. That will be the same as the Width of the Back, which is the 'Bookcase_Width - 2*Bookcase_Thick'.

We also need to modify the Width of the Shelf to take into account the thickness of the Back. To add a bit of interest to the design, we will also recess the front of the Shelf half an inch from the front of the Sides. That will give us an Equation for the Width of 'Bookcase_Depth - Bookcase_Thick - .500 in.'

When you are done with the shelf, save it and close it.

Step 8: Assemble the Troops.

Open a New Assembly and select the Back part to Insert into the Assembly. Insert it away from the origin, so it will be easier if we have room to work. Right click on Back <1> in the Design Explorer and turn on the Reference Geometry. We will constrain the Back using the Reference Geometry.

Step 9: Line 'Em Up

Using the symmetric constraints when we made the parts makes it easier to constrain the parts about a center when arranging these parts in the assembly. We need to rotate the Back, because the grain is currently oriented horizontally because the part is laying on its side. Rather than taking the extra time to use the Rotate or the Precise placement commands to re-orient the Back, we can orient and locate the part using just the assembly constraints. Select the reference plane that goes horizontally through the center of the back, and constrain that to the YZ plane in the assembly space. Image 1

The Assembly Constraint dialog box and the directional arrows makes constraints easier in Assemblies than in Parts, I think. The image shows the selected planes. When we apply the constraints, the arrows will be facing (or mated) to each other. (If they were going to point in the same direction, they would be aligned). It helps to add a description to the label that describes the constraint. When the constraint list gets longer, the labels will be very helpful to locate the proper constraint. Image 2.

The next constraint will locate the back Vertically. Select the now horizontal plane for the back, and the horizontal XZ assembly plane. This will locate the Back as centered Left and Right, as well as vertically in the Assembly space. Images 3.

Remember, Save often.

Step 10: A Back and Two Sides...

A Back and Two Sides went into a bar. The bartender told them to get out. He wouldn't serve them until they got themselves together!

Now that back is in place and secure in the side-to-side and vertical direction. Select the icon in the upper right to Insert Part/Subassembly and insert two of the Sides into the Assembly (Image 1). Turn on the Reference Geometry as before. Image 1.

Select the Assembly Constraint icon and constrain the sides with what is now the parts horizontal reference plane to the XY plane. Image 2. Then constrain the uppermost face to the narrow edge of the Back. Do this for each side, and you should have two sides standing vertically. Image 3.

Now individually constrain the top edge of each side to the top edge of the Back. That will fully locate the side, and only leave the depth for the back. Image 4.

Turn the model around so you are viewing the back, and constrain the back face of the Back to the back edge of one of the sides with an Align. That should constrain the back flush with the back of the sides and into proper position. This should result in your bookcase being constrained with the Origin near the center of your bookcase. Image 5.

Step 11: Don't Buy the Encyclopedias Yet

Notice the gap at the bottom of the back (the last image in Step 10). That is the 3" toekick gap. We did not have to deal with it in the assembly because we aligned the TOP of the back to the top of the sides.

Ready to add the shelves? How many shelves? If we continued like we did for the sides and inserted 4 or 5 copies of the shelf, we would have to constrain every one of them. So, like the lazy dog, we are going to insert and constrain a single shelf, and use the Linear Pattern feature to create the rest of the shelves.

Use the Insert Part/Subassembly button in the upper right corner and select the shelf. After it is inserted, turn on the Reference Geometry and use the constraint dialog box to constrain the plane running vertically at the center to the YZ plane. The one which we used to center the Back. Next select on face of the Shelf and constrain it with a mate to the bottom edge of the Back. That should flip it around so it is now flat, and we need only to constrain the back edge of the Shelf to the front face of the Back. Once the shelf is in place we can use it to make duplicates. Images1 and 2.

The Linear Part/Subassembly Pattern button is right below the Insert Part button. Click on the shelf and it will appear in the Part section. Since our pattern is in a straight line up and down, the Row Direction is the Y-Axis. We want 5 shelves or rows. For the Row Spacing we could pick a number, but since we have been working with equations lets get out our calculator and figure out the distance. My first test spacing was 11" inches (Image 1). As you can see we have a lot more than the 2" rim that we wanted around the top. Image 3. Since the side was 54", the toe kick height subtracts 3" for the bottom gap, and I wanted a 2" rim around the top shelf, I figured a total distance of 49". So I entered 49/4. But when I measured the distance from the top rim to the top of the shelf, it was only 1 1/4". Image 4. I realized that the distance for the Linear Pattern is the distance from the bottom of the target shelf to the bottom of the top shelf. I subtracted the thickness of the top shelf from the 49 inches, and I replaced it with 48.25/4 and got 12 1/16". Image 5. Because all our overall shelf dimensions are in the part files, we do not have those values to use in equations in the Assembly file. We could link a spreadsheet to both the part and assembly file and that could be used to provide the overall values to both the part and assembly files. But, that will have to be the subject of another lesson.

Step 12: Then As We Say-Viola!

While using equations to specify dimensions using the parametric capabilities of Alibre for this bookcase may be a bit of extra work, think of the benefits using this same process when applied to a more complex model. Add in Spreadsheet driven overall design values or Configurations and you have a very powerful capability that will allow complex models to be built and easily modified by changing only a few key parameters.

Be sure to move it all around and see how nice it looks from all sides. And if, in the future, you need more storage space you will know how to design it. All that is left is to make it. Remember the bamboo plywood!

As a challenge--make a toekick panel (another rectangle) and insert it 3 or 4 inches back.

Be the First to Share


    • Make It Bridge

      Make It Bridge
    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge
    • Big and Small Contest

      Big and Small Contest



    7 years ago

    nice work , you are right when chosing biscuit joiner to make it

    you can see some new tool in here :


    13 years ago on Step 10

    Great instructable!  I designed and built the physical shelf with this, and I used your  molding extrusion instructable for the corner lock miters.  Thanks!


    14 years ago on Introduction

    I know this may be premature, But I am interested in making a knockdown version of a similar bookcase. Is it possible to set up precision drill holes for cam-locks with this program, so that everything stays snug? Ps. Know any good woodshops in Jacksonville, Fl looking for talented furniture design and build?


    15 years ago on Step 6

    HI. I'm just getting into alibre and these tuts are great But, on step 6 when I go to modify the width parameter the ok button grays out on me after I enter any words.I'm using Alibre Design. I don't know if this is the right place to ask this . If not just send me to the right area to ask questions. Thank you.


    Reply 15 years ago on Step 6

    The OK button will be grayed out if there is an error in the parameter name or value. There can not be any spaces or dashes in the name (which is probably not the case here), and the parameter names in the formulas have to match over valid parameter names. I will check for a problem in the instructable, but I suspect a misspelling of a parameter name or lack of math operation to separate parameter names. I am glad the tutorials are helping, and we are working to prepare more aimed specifically at using Alibre for woodworking.