The Evolution of a Numbering Scheme

Because numbering schemes are a very important part of every CAD standard, I have decided to share with you the story about how we got to the numbering scheme we are using today.

APPRENTICESHIP

I started working as an apprentice one year before I went to university. This was the first time I held a real drawing in my hands, and it had a real drawing number on it too. During my years as an apprentice , the company had at least three different numbering schemes!

  • The first scheme was an old one that was very significant and complicated. If I remember correctly these drawings were made in a 2D software.
  • The second scheme was only used for projects in our country and had a hierarchical structure.
  • And the third was a non-significant scheme with 6 digits.

This means we had all the numbering schemes we could have at once. Sadly, I don’t have any examples to show you.

UNIVERSITY

At the university, we never gave much importance to the numbering of drawings. All the professors cared about was that we made the drawing according to the ISO standard!

This is an example of a weldment drawing. As you can see its’ parts are also on the drawing.

ISO drawing
MY FIRST JOB

My first employer was a start-up company that made sports equipment. Because I was the first mechanical engineer there, I had to come up with a numbering scheme. It turned out to be complicated and significantly hierarchical. Not a surprise, is it?

To make this blog post more readable, I made a diagram to explain the numbering schemes and an additional diagram to show how it looked on a project.

Numbering Scheme Numbering Example for SolidWorks

But soon this numbering system came crashing down on me.

According to ISO standard, one should have all the parts of a weldment on the weldments drawing. After some time, I realized that if the weldments’ parts are made by two different manufacturers and then welded by a third manufacturer, I damn sure want to have a separate drawing for each part so I can send it to each manufacturer! And if I was going to make drawings for each part, why should they be hierarchically positioned under the basis number of the weldment (KO_01_1001)?

The next problem appeared when I used the same part in two different subassemblies. How will I number that part? After the first subassembly or after the second? And what if I had to machine the weldment afterwards, how would I get another level in it?

Looking at it now, it was a real mess and very complicated.

BEING SELF-EMPLOYED

Being self-employed, I knew I had to come up with a better numbering scheme that I could use with multiple customers.

One day I got a call from the manufacturer that was making the parts for the second version of a product. He said: “Hey Barbara, I need some help. Can you please tell me which parts have actually changed in comparison with the first product we made?”

You see, when I was working on a new version of the product, I copied the whole main assembly via “Pack-and-Go” and replaced the old project number with a new one (KO_01 -> KO_02). The manufacturer had all the CNC code saved according to the last products’ numbers, but now the drawing numbers were different although some parts remained the same. This was when a light bulb lit up: one part should have one number even if used in multiple products, and if it changes it should get a revision. Eureka! I think this was the first time I typed “CAD numbering” system into Google.

I did some research and found that non-significant numbering is the way to go. So, I came up with a new numbering scheme. 

 

Numbering Scheme Numbering Example for SolidWorks

The first two digits were customer digits, and the last six were for the parts, assemblies, weldments, etc. I tried this system for some time, but it got very hard to manage and to keep track of which part was used where. And if I made a change to a part it could have affected other projects that were already finished! I also had problems with folder organization. Besides all that, I had to manage an Excel table to keep track of the numbers. All this became very time-consuming.

THE LATEST NUMBERING SCHEME

Although we are aware of all the benefits that a totally non-significant numbering scheme has, we kept some significance to make it easier for people to interact with the projects' documentation.

Numbering Scheme Numbering Example for SolidWorks

Keep in mind that for all our numbering schemes the filename of the drawing and the model matched the drawing number.

Drawing Numer = Filename

As you can see from the example above, a number begins with the project number (17002) and is then followed by a 3-digit number (or 4 digits for larger projects). If these 3 digits are 000, this means you are looking at the main assembly or one of its’ subassemblies that we call “main subassemblies”. If these 3 digits are anything else then 000, then you are looking at a part or a lower level assembly. In case it is a standard part, we designate it with the needed ordering information.

So why are we using the number of the main assembly (17002-000) also for the main subassemblies? We could also have numbered the first main subassembly 17002-012 and the second one 17002-035 for example, but what would this mean in a printed project folder? It would mean that every time someone would open the project folder, he would have to go through a lot of paper to get to the main subassemblies, and after that, he would sooner or later bring them to the beginning of the project folder. And the same goes for a Windows project folder. If these subassemblies are positioned just under the main assembly, everything is much more transparent and organized on the top of our screen. Furthermore, when it comes to very large projects you want each main subassembly to have its own drawing file. We tried to put all of the main subassemblies on different sheets of the main assembly drawing, but SolidWorks just wasn’t responding fast enough to make it bearable.

The negative side of our numbering scheme is seen when a remake of a project occurs, which does not happen very often. But when it does, we use the old project and copy it via “Pack-and-Go” to the new project location with the new project number at the beginning of each file. After we send the files to the manufacturer, we notify him to pay attention if he will be using the code from the old project, because each part could be different. In most cases, manufacturers don’t care much about it after all. 

We could avoid this issue if we used a non-significant 6-digit scheme. But as I said before, managing this without PDM would be very hard and time-consuming. With keeping the project number at the beginning of each CAD file, I know that this CAD file can only be used in one particular project. And if I change it, I can’t ruin any other projects that are already finished. Having this checked up gives me peace of mind.

Although we are using PDM now, we still kept the same numbering scheme as before. But I am thinking of testing a non-significant numbering scheme with PDM in the future because if I figure out how to make it a no brainer, it could be a nice upgrade to our current system.

What is your numbering scheme like?

We would like to show examples of different numbering schemes on this blog. Anyone is welcome here. If you are willing to contribute, please contact me via barbara@simplecadstandards.com

Share this post:

If you found this article helpful, please share it with others who might benefit from it.

About the Author

Barbara Jerin

Is the creator of this blog and author of the majority of blog posts.

Comments 23

  1. Hello Babara,

    a fine story …
    But finally I would say: Be consequent. Now, when you have a PDM system, use non-significant numbers assigned automatically with a part number generator.

    Having the project number as part of the part number is a wrong approach: Parts are not usable in other projects or the significance is going away.

    You wrote: “One part should have one number even if used in multiple products, and if it changes it should get a revision.”
    Well this is correct if you have properly defined: What is a part? What is “changing a part”? What is a revision? And most of all: Are the interchangeability rules used correctly?

    My thougts on part numbers and interchangeability you can find on my website at joergei.de/cm/.

    Best regards
    Jörg

    1. Post
      Author

      Hello Jörg,

      Thank you for your comment and opinion. I appreciate you took the time to check out my blog.
      What do you think about the main subassembly numbering scheme: 17002-000-01, 17002-000-02..? Can we keep this even with the non-significant scheme? This would mean something like: 180521-01,180521-02,..?
      What kind of numbering would you suggest to someone that does not have a number generator?

      1. Your subassembly numbering scheme is the same as project number in the part number. What if the same part later goes into another assembly? Just never code where-used information into the part number. (I have formulated my paper more precise in this point.) The usage of a part must be retrieved from the BOM and only from the BOM, or product structure in the PDM resp.

        The simpliest part number generator may be an Excel sheet with a VBA macro that copies the next free part number into the Windows clipboard. We use this too. And we have little scripts in the CAD and PDM which search for the highest existing part number withinf a defined part number range, addes +1 and put this new one into the P/N field of the system.

        Best regards

        1. Post
          Author

          I agree with you!
          I have thought about doing a similar macro, that would suggest the next highest available number in the project folder, but I did not have the time yet.

          Have you developed these scripts and macro yourself, or have you got it developed from some other company?

          1. Hi Barbara,

            I have written the code by myself. I have sent the Excel VBA version to you by e-mail. The PDM script depends on the system. In principle I have made a SQL select for the highest existing sequential number (this may be a substring of the part number), added +1 and inserted it into the appropriate PDM field of the form for creation a new part record.

            Best regrads,
            Jörg

  2. Hi Barbara,

    I know I’m a little late to the conversation, but I just recently found your blog page.

    I am a consultant (Applied CAD SOLUTIONS, LLC) and have been for many years. Having worked for and with many companies having all kinds of numbering schemas I have grown accustomed to understanding them. I do like your -00, -01, … at the end of the assembly part number indicating an upper level assy.

    However: from an ease and “reuse” point of view I personally like a semi-smart numbers system followed by a sequential (dumb) part number. I’ll clarify what I mean: I like a 2- or 3- digit part number prefix which helps define the type of part/assembly.

    00 for top level assy
    01 for assembly
    02 for machined parts
    03 for weldments parts
    04 for sheetmetal parts



    96 for screws
    97 for washers
    98 for nuts
    99 for Dowel pins

    This prefix followed by a simple 5 or 6 digit sequential (dumb) number (01-00001, 02-00099, et…). I have seen this type of format work at several companies and it typically has the least confusion and issues later.
    No matter what there is no such thing as “one size fits all” and P/N’s depend on the need of the particular company.

    Kind regards,
    ~Tom

    1. Post
      Author

      Hi Tom,

      This is an interessting numbering scheme you are suggesting. Would you suggest this kind of numbering scheme for project-based or product-based companies?

      I suppose this kind of numbering scheme is used to easiliy find the top assembly of a product, because it will always be on top in any project folder. Which is not possible with totally dumb numbers. I agree!

      On the other side it might happen that a sheet metal part could be “replaced” with a machined part, and if the parts are actually interchangeable, the PN would have to stay the same. This means that a 04- part would become a machined part :). The same could happen with a top assembly and assembly.

      I know, there’s always something that get’s in the way :). I’m still searching for the right mix of everything, and it’s hard to find. No matter what scheme I choose, each has it’s pros and cons and should be considered from company to company.

      Looking forward to your response 🙂
      BJ

      1. Hi Barbara,

        Sorry for the late reply to this post, I guess it got lost in my emails in bucket.

        I’ve seen this type of numbering schema work for both product-based and Project-based companies. In both systems I’ve seen the folders sorted by p/n prefix and use a filed on the data card to select the product &/or customer. If using PDM it’s pretty simple, in the model select the product/customer name from a predefined dropdown list and configure the drawing data card to automatically “copy” the product/customer name to the drawing’s data card. Product/Customer name can easily be a search field in PDM and you can set a column in File Explorer to display the customer name (which you can then sort by).

        I’ve also seen customers decide that they want wat to list the Product/Customer and have all the files in one folder. This is pretty easy to setup and the same numbering system can still work but it always seems to get buggered up if reusing the part into another project.

        As we’ve indicated there is no one size fits all. Typically, when I’m working with a client, I start by reviewing their current p/n schema. Most are pretty good about letting you know what pieces work and what gives them issues. After that we assess if the existing system just needs modifications or if an entirely new system warranted.

        Tom

        1. Hi,
          Regarding the semi-smart prefix & dumb sequential numbering scheme.

          Is the dumb sequential part number sequential per prefix or is it sequential system wide?

          From my experiences from working in different firms, both small and semi large, I do believe that using a straight out automated dumb sequential numbering system via PDM gives the least hassles.
          The downside being that the numbers aren’t useful for anything other than an identifier for each individual part contra a (semi)smart number that actually tells you something about the part or assembly in addition to being an identifier.

          I currently work for a firm that uses dumb sequential numbering and I admit that I miss having some form of identifier included in the file & drawing name, but at the same time I see how few issues this has.

          Though, that said, I do like the idea of the prefix you listed above. That’d be great for identifying and wouldn’t cause any headaches when re-using parts.

          But still no matter how reusable a part (due to dumb numbering) is I’ve still seen issues due to their placement in a project/product based folder hierarchy.
          One could make a folder hierarchy according to part/file type, ie. assemblies, machined parts, weldment, sheetmetal, etc etc … and place the files in their respective folders.
          But then the files wouldn’t be easily sorted into projects or products. Headache again!
          The other downside being you’d soon end up with an overwhelming amount of files in one folder.

          Is there a preferred folder hierarchy that you recommend that suits this semi smart prefix/dumb sequential numbering?

          1. Post
            Author

            Hi Ben,

            I know what you mean.
            In case of dumb numbers I was thinking about making separate folders for a sectionof numbers, for example:
            – from 100000 to 100500
            – from 100501 to 101000
            etc.
            I think that having 500 parts in one folder might even still work if you don’t have a PDM and you would like to use the super powers of the custom property Description in SolidWorks.

            But then you say, how do I find the top assembly of a product or project without knowing its exact number and without using too much time for searching?
            In this case, I would make an individual folder that would only contain the top assembly model and its drawing (or even betteronly a shotcut to it). You can name this folder however you like.

            Because in my case, I rarely know the number of the part/drawing…so I always open the top assembly (Large Design Review) and then I continue opening the part files from there.

        2. Post
          Author

          Hey Tom,
          I do have a question for you:
          Have you ever seen a company that is using two different numbering schemes at the same time?
          For example: usualy project companies don’t really care about revisions or interchangeability rules, because this would only slow down their work process that deals with a lot of changes.
          But on the other hand, those companies are also using some subassemblies over and over again in all of their projects and at some point it would be a good idea to standardize them for their own profitability.
          So, I was thinking… why don’t we just use two different schemes…one that is semi-dumb (only a project prefix) fo components that change all the time and another that is a very-dumb six digit scheme for components that remain the same the majority of time? This would enable the company to keep it’s flexibility where it needs it and also start with the standardization process of some devices that are used over and over again.

          What do you think? Have you seen such an approach in any of your companies that you have consulted? If yes, how did it work?

  3. This is all I’ve been thinking about as we’re (I) reading our drawings and standards. We’re a custom furniture and millwork shop, so it’s a project based numbering system. Though I do want the drawings/models/files, etc to be both easily recognized and deciphers quickly, but also easy to file sort and search… so I landed with this..

    3D parts/assemblies follow a ####-#### format in which the first 4 are the project number, the second 4 are an assembly/part number. Assemblies always end in 00… This gives me 99 assemblies/sub assemblies in a project and 99 parts per assembly/sub assembly. The file name is client-job name-itemdesc.-sec.itemdesc(if needed)-and either SKETCH/PART/ASSY/TEMP( temp for templates) this makes finding and distinguishing modeling and sketch files in a folder a lot easier.. drawing names and files always adopt the part/assembly number but also then end in an acronym of either -AD, -DD, -ID(install drawings or elevations), or -TD(template drawings for things that aren’t actual part but need to be made, like molds or jigs that aide in assembly/fabrication)

    So

    1234-0000 is a 3D master assembly
    1234-0000-AD is a drawing for the above
    1234-0001 is a part that does not dependent upon a parent assembly. Such as an adjustable shelf or a leg that is used on different tables. It’s drawing would be 1234-0001-DD.
    1234-0100 is a 3D sub assembly file, it’s drawing would be 1234-0100-AD
    1234–0101 would be a part that belongs to the 0100 subassembly and it’s drawing would be 1234-0101-DD

    General install drawings for contractors or installers (which would look more like arch. drawings) would be 1234-0000-ID

    1. Post
      Author

      Hey Eric
      Thanks for commenting!

      If this kind of structure is “strong” enough for your assemblies, I would continue using it. But I’m afraid of the situation when you need more than 99 parts in one subassembly…

      Are you using PDM? If you are, maybe you could get rid of the acronyms and put the in a separate custom property by which you could filter in SolidWorks and PDM.

      1. Hi Eric and Barbara,

        My first thought was the same as Barbara’s, what if you hit that large project that has more than 99 parts &/or assemblies? But the reality is: if it works for you why change it.

        Personally, I’m a fan of keeping the model and drawing the same name so when you have the model open (in SOLIDWORKS) it’s easier to open the drawing from within SOLIDWORKS (using the “Open Drawing” command). By default, the “Open Drawing” command is designed to look in the same folder as the model and for a file with the same base file name just with the slddrw file extension.

        If you are using SOLIDWORKS (& especially using PDM) why do you need a -DD for a detailed drawing? Couldn’t the drawing simply have the same exact number as the model since they will have different file extensions (sldprt or sldasm vs. slddrw)? I usually suggest customers keep the model and drawing the same and use the fields (Description, Customer Name, etc…) on the data card. When looking at your files in File Explorer simply make the second column have the description and maybe the third with the customer name, therefore you don’t need to build the description into the file name. As Barbara indicated, this would allow for searchable fields in PDM as well, it’s be very easy to search all files for customer X. Just a thought.

      2. Thanks for the reply, and sorry, this was all via my phone.. and is again. Yes that’s the fear, but as of right now as a furniture maker/millwork shop, more than 99 dependent parts per subassembly seems far off. Thanks again.

        No PDM as of now. Also really like the acronyms for drawing files as it really helps to distinguish what type of drawing it is/what type of model it holds. Also needed a way of showing those simpler “architectural” or ID drawings for installers and customers that don’t need to view sheets upon sheets of parts and sub assemblies items… but if they do, I can send them as needed. Thanks again.

  4. Hi Barbara,

    To add to your post, here’s what we had at my 2 last job. We had similar numbering system.
    The part numbers are xx-yyyyyy-zzz
    XX is a number with letter. The number defines if it’s an assembly or a part and the letter a type of ‘object. We also have a series of other xx classes.
    Ex:
    1M,mechanical assembly
    1W, welded assembly
    5M, machined part
    5S, sheetmetal part

    The yyyyyy is simply an incremental number starting at 10000. One thing we did wrong at my first job is to start with 5 digits. Unfortunately after a few years (8-10), we ran out of numbers so when I started this similar scheme at my new job, I used 6 digits.

    The ZZZ is normally 000. For mirror parts, we use 100. If the part is used in an assembly and doesn’t need a separate drawing (a welded gusset for example), we use 5w with the same yyyyyy number as the assembly and -001, -002. This also works for mirrored assembly.

    Now it’s not perfect but it gets us 99% there. We do use a PDM system but prior to that, we’re saving files on a network drive. The drawings had the same number as the object, we use the file extension to know what it is. On our drawing, we only show the ID of the part as xx-yyyyyy but not the zzz.

    Obviously, an excel file or database is nice to keep track of the numbers.

    I hope this helps. I’m happy to discuss more if needed.

    1. Post
      Author

      Hey Marc,

      Thanks for sharing.
      I see you also use a complex numbering scheme :).
      I’m wondering what is the exact purpose of the XX? Do you use it for sorting purposes or something else?

      Thanks,
      BJ

      1. Hi Barbara,

        The value of xx is mainly for quick recognition of the object type. (We use 6 different groups). It also allows sorted BOM to have assemblies first then parts.

        We can also ‘link’ related assemblies or parts together. For example, 1c-12345-000 is a composite assembly. 1T-12345-000 will be the tool to make that part. 8p-12345-000 could be a document explaining the manufacturing process of that part.

        Regards,

        Marc

        1. Post
          Author
  5. Hi Marc,

    While it’s a semi smart numbering system you don’t need much of a “decoder ring” to figure it out. Personally I think it looks like a pretty good numbering schema, simple to understand and would seem to fairly error proof. The only part that I don’t like is needing an Excel file to track the numbers.

    I’ve yet to come across any system that is totally error proof and if this gets you 99% you’re probably ahead of most companies.

    Thanks for sharing,

    Tom

  6. Hello guys,

    This is a great little conversation we have going on. This and ECO’s are probably the two things we spend the most amount of time on when assisting customers.

    I figured I’d pass along the latest that one of my clients has decided to use for a numbering system. They are a contract design & manufacturing company.

    They assign a unique 4 character abbreviation (customer code) per customer. Maybe mine: Applied CAD Solutions would be something like: ACSO

    They really liked the method I described earlier:
    00 for top level assy
    01 for assembly
    02 for machined parts
    03 for weldments parts
    04 for sheetmetal parts



    96 for screws
    97 for washers
    98 for nuts
    99 for Dowel pins

    But that was not granular enough for them so they will be putting the 4 character customer code in front of the part number.

    EX: ACSO-02-00001 in this case the breakdown would be:

    The ASCO indicates that the file is for: Applied CAD Solutions
    The 02 indicated that it is a machined part
    The 00001 is a sequential dumb number, this number will be sequential for ALL 02- part numbers no matter who the customer prefix is for.

    In their case the files are saved in a customer folder specific to the customer 4 character code.
    Honestly I’m not sure I’m totally sold on it but they were very adamant that this is the way they want it.
    But figured I’d pass it along. As I’ve said a few times, there is no one size fits all when it comes to part numbers.

    Regards,

    ~Tom

  7. Hi Tom,

    let’s say you have a screw 96-12345. Do you really want to create a separate part number/identifier no. for the same screw for each individual customer???
    Do you really want to have in your ERP system different part numbers (e.g. AAAA-96-12345, ABBB-96-12345, BASF-96-12345) for the same screw???
    This would be a waste of time and material and therefore money.

    Why the hell customer codes, project numbers, part classificators must be included inside the identifier number? Why not put it into separate data base fields of PDM and ERP? Anyway, they can be included into a filename, into lists, labels etc. even if they are not part of the part number/identifier number.

    Have you read my comments earlier in this discussion? Have you read my numbering recommendations on my web site? Do they really not convince you to do it otherwise?

    Best regards,
    Jörg
    https://cm.joergei.de/

    1. Post
      Author

      Hi Jörg,

      Nice to hear from you again :).

      I’m also on your side when it comes to numbers, but I also understand the problem that Tom’s customer may have, because they are a contract design & manufacturing company. So, the easiest way for them to operate is having things devided by projects. If the projects they make are also very versitale, it might also come handy to divide by customer…but I would have to know more to be sure.

      For example, it might be the case that they have to obey different customers CAD standards, and that is why they might need to have different files of the same screw. The reason for this is usually a different set of metadata (custom properties). Maybe one customer wants to have a different description of the same bolt…for example one wants them in ISO and the other in DIN.

      I had this problem in the past and I also solved it with different files. But if you also add to it ERP, then this might be a bigger problem.

      Of course if we knew exactly what each customer in the future will want, we could set our files the correct way from the beginning, but usually we can’t ;).

      I believe that if a company is product-based they should 100% go with non-sginificant numbering. If they are project-based, this type of numbering can cause a lot of problems if people are not educated about interchangeability and usually they are not. Plus when you are project based, you need to be fast and this means that checking if a file is used on other projects, before we change it, is a waste of time.

      But, I know that usually even project based companies have some devices or groups of parts that they could standardize and run as products under a non-significant scheme. This way they could keep their flexibility on the projects but also reap the rewards of standardizing the parts or devices that are on every project the same.

      I really want to know, what both of you (Tom & Jörg) think about this approach.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.