I don't get asked this but it is a very powerful tool and will make your life a lot easier. This also applies to other repetitive parts, not just LEGO bricks, and can be applied with the exact same methods.
Step 1: CONCEPT:
* I use Autodesk Inventor, but any parametric software will behave similarly.
Parameters allow you to assign "names" to features, as well as create formulas and relationships, among other things. These can be pulled from external documents like XML or XLS, or internally in a native document. All of my projects include a #data brick. I chose to create a part (IPT) to import from as I thought it would be easier to maintain visually. When using a text-based file, you have to keep track of the parameters and names through memorization or with notes. If I need to edit a parameter 5 years down the road and I don't remember what they all do, I have a visual brick that I can verify my changes with. See image below.
Step 2: USAGE:
* The creation of parameters will vary with different software, but the usage should be identical.
The user would create a "name" for a common feature. In my #data brick I use "lu" for a one-stud unit. This is the standard 1x1 (8.0mm) brick measurement explained in Part 01 (https://grabcad.com/tutorials/lego-01-basic-dimensions-bricks-explained). Example: I create all my bricks by importing the "lu" parameter and using that dimension for the appropriate features. If I decide later that bricks should be 7.9mm, I simply go back to the #data brick and change that parameter for "lu". Every file that imported that parameter will now be updated to reflect that 7.9 either upon opening the brick or by hitting "rebuild all".
I also created non-imported parameters for the square-arrayed bricks. For these, I created "knobsh" and "knobsv" (bad names, I know). These are used in the basic brick size and to array the studs. Example: Say I create a 2x2 brick using those parameters. Now I copy that file to create a 2x4 brick. All I have to do it edit those parameters and the brick is now the correct size. No sketch or dimension editing. Keep in mind that individual components of an array can be suppressed. This is how I create those angles "wing" plates. See image below.
Step 3: CONCLUSION:
It may take a little time to set up in the beginning, but it makes every aspect of creating repetitive features magnitudes easier and quicker. Take a look at my #data brick and a regular brick to see how it all fits together. And define more detail that you think you'll need. (I am now wondering if I should've put the fillets on a parameter.)
Step 4: (Parameters in the #Data Brick)
Step 5: (Imported Parameters)