Tutorials‎ > ‎

SolidWorks - Naming and Versions

posted Dec 30, 2013, 10:45 PM by Sean M. Messenger   [ updated Dec 30, 2013, 10:50 PM ]


Fun topic - naming conventions (and version control)! Yay. I want to present what I have settled on as an efficient and functional approach for small groups. By no means does this scale to large scale development, but it works great for my uses!

I have tried naming parts by what they do, what they are, what I call them, separating into folders, including version numbers in the name, and much more. None of these are consistent. I have searched online, talked to other people, and done plenty of research. Ultimately, it comes down to consistency. Whatever you choose to do (if it's my method, some spinoff, or something else), just make sure you are consistent.

For the sake of an example, let's consider my E80 project. We had a team of 4 people designing, manufacturing, and testing a custom supersonic rocket. We had over 20 parts with 5 subsystems. 

Naming Conventions

Consider this naming convention. Each part belongs to one subsystem in most projects. If you have a smaller project (say "cube"), consider every part to belong to the main subsystem, "cube." Let's use the following convention in camelCase capitalization:


So for the body of the fincan subsystem, I would name the file fincan_body.SLDPRT. Now what if you have two parts that are distinct but similar? In this project we had supersonic fin and subsonic fin designs. would the part name be supersonicFin and subsonicFin? No, because that makes them not appear together when sorted alphabetically. Try to keep similar parts similar! Go in decreasing heirarchy. So, I would have:

fincan_finSupersonic.SLDPRT   and   fincan_finSubsonic.SLDPRT

Note these files don't have versions in the file name and as we update them we keep modifying the same file. This is good! No confusing duplicates.

Now this does require some forethought about subsystems and division of your project. But you should have already planned it out before you start SolidingWorks! If you haven't, go back to the drawing board until you know what major systems your project will have.

But what about renders, PDFs, stereolithographies (STLs), et cetera? For PDFs and STLs, I do the same thing -- appending an underscore followed by R1-0 where R1-0 indicates Revision 1.0. Renders I date using ISO 8601 conventions followed by a description. But this one, especially, is a lot more flexible. Just be consistent!

Versions and Revisions

Alright, now on to the dreaded version control. No, I don't suggest going out and buying a license for some proprietary software. Likely, your projects are small scale enough simple solutions will suffice. They do for me. 

When you go into the shop and find you have two drawings for the same part, but they are different, how do you tell which is the most current one? Well, unless you have done anything, you can't. I found myself writing down a revision number and date on drawings I printed out. But then I realized you can do that in SolidWorks in a much more elegant fashion!

Take a look at my SolidWorks tutorial on templates and properties. You can add a property in a part file specifying the version number, have that automatically be pulled in and updated in drawing files, and always print out with a Last Modified date on the printed drawing. I stick with two digit revision numbers. All parts start at 1.0 and increment by 0.1 until there is a major change or the revision is at 1.9. In either of those cases, the revision number goes to 2.0. This helps me keep track of major changes in design. 

But how do you handle versions of the files themselves, you may ask. Simple! Backups. Archives. I zip my entire project (assembly, drawings, parts, etc.) except renders and PDFs before making any changes. Usually that would be once a day when doing heavy design work. Sometimes it would be once a week. In any case, I save the zip with ISO 8601 date naming for the file name, followed by some description. For example,

2013-12-30 Redesigned Fincan.zip

This has worked well for me, as I generally am able to pull up old versions accurately when needed.

Do you have another method or suggestions? I'd love to hear your ideas!