Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. Be respectful, on topic and if you see a problem, Flag it.

If you would like to contact our Community Manager personally, feel free to send a private message or an email.


Same Part Repeated in BOM

rogerroger Member Posts: 8
Hi, I am encountering unexpected behavior in how Onshape handles parts in a BOM.

I am designing a simple workbench with four identical legs. The legs were created in a single Part Studio by modeling one leg, mirroring that leg, and then mirroring both those legs. Each part was renamed to the same name. There are thus four identical leg parts in the Part Studio, each with the same name.

Since the workbench is symmetric in X and Y about the origin, this is a quick and intuitive way to quickly and precisely assemble identical parts that are positioned symmetrically. My design has numerous other parts that share similar symmetry and I've designed those in a similar manner. I initially wanted to have only one leg part in the Part Studio (instead of four) and then mirror the parts in the Assembly, but couldn't find a way to do this. Is there a way to "mirror assemble" parts in the Assembly?

The entire Part Studio was brought into the Assembly so everything is positioned where it should be. Unfortunately, the BOM doesn't recognize each part as the same part even though they have the same name. Instead of showing a single Item number with Quantity 4, the BOM shows the parts as four separate items each with Quantity 1. This occurs for all parts that were modeled in this manner. Is this the expected behavior, and if so, what is the recommended way to structure the model so that the BOM is displayed correctly?

Best Answer


  • Options
    NeilCookeNeilCooke Moderator, Onshape Employees Posts: 5,436
    Yes it is expected - copying a part in a Part Studio creates a new part and renaming it does not make it the same (what if you renamed 2 dissimilar parts the same?). Just insert the same part 4x in the assembly or even create a circular pattern with the centre of the bench as the axis.
    Senior Director, Technical Services, EMEAI
  • Options
    billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,022 PRO
    I think you need to understand that assemblies have bom's. Part studio's do not have BOM's. 

    Why are there assemblies? Instancing. One of the main reason for assemblies is to create instances of the "same" thing. BOM's keep track of the assembly instances. 

    Like Neil says, copying a part in a part studio will make 2 different parts that are physically the same. 

    Many try to design in partstudios but you can't. You must learn assemblies if you want a BOM.

    Oddly, this is a basic concept that's often misunderstood. Thanks for posting your question because this comes up a lot.

  • Options
    rogerroger Member Posts: 8
    NeilCooke, I don't think a circular pattern would work since the bench, while rectangular, is not square shaped. Yes, I could insert the part 4x into the assembly, but this is very cumbersome, especially if there are multiple symmetrical parts, as each part must be manually constrained to the assembly.

    billy2, I think why many try to design in Part Studios is that it is extremely quick, easy, and intuitive to do. Also, the Part Studio actually lists "Parts" and since parts comprise an assembly, it's not a big stretch IMO to view the Part Studio as kind of like an assembly of sorts.

    Given the way OS works, I think there is a big opportunity for a usability improvement here. In my particular example, I think the best (only?) way is to assemble the same part 4x into the assembly as suggested. However, as mentioned, this can be highly cumbersome. It would be extremely useful to have the ability to mirror part(s) in an assembly. In my case, I'd insert a leg into the assembly, then insert the other legs via a series of mirrors. This would be relatively quick to do and would maintain parametric associativity (e.g., if I change the table's X/Y dimensions, the legs will continued to be positioned properly in the assembly). OS would of course recognize each mirror as a new instance of the same part in the same way that it recognizes patterned parts as new instances of the same part.
  • Options
    eric_pestyeric_pesty Member Posts: 1,549 PRO
    Answer ✓
    While waiting for the assembly mirror, you can still use a circular pattern to add two of the 4 legs (2x instances at 180deg).

    A good tip is to create an implicit mate connector in the part studio to make assembling the second leg easy:

    Note that if you had multiple parts you were you were trying to pattern/mirror like this, you could group them into a sub-assembly and it wouldn't be any more work than doing the single part:

    So while it's true having the assembly mirror feature would save a bit of time, the way I am showing above really doesn't take long to do, and it's still fully parametric (i.e. everything stays in place if you change the table dimensions in the part studio).
  • Options
    billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,022 PRO
    edited May 2022
    @roger yeap it's easier until there are BOM's. Assemblies are the ultimate design tool and many get stuck at the part studio level. Go check this forum 4 to 5 years ago. You'll see everyone designing in part studios. I guess the main objection back then was because no one wanted to figure out assemblies.

    No mirror is an assembly is an excuse, you still need to learn/do assemblies.

    An interesting note, solidworks has had multi-body parts for 15 years and no one over there builds using multi-body parts in part files. It's easier over there too, I guess they never figured it out.

    Look, design in a part studio, just don't replicate in the part studio. Associating part references in a part studio is wonderful and prevents incontext referencing. You can do a lot in a part studio, do it.

    In an assembly, check out the replicate feature for placing instances. It's easier to replicate in an assembly and it's faster for the CPU & GPU.

    You really need to be in an assembly. I know it's confusing.

    Projects should be made up of assemblies, not part studios. The assemblies in OS are very good and worth learning, it's when the fun really begins.

  • Options
    chadstoltzfuschadstoltzfus Member, Developers, csevp Posts: 134 PRO
    edited May 2022
    I will add to this conversation and say that yes, assemblies should be used for instancing parts, though we have been able to create an environment where we create custom BOMs in Part Studios that responds to instanced parts. In fact, we work almost exclusively in Part Studios, and only use Assemblies for visual purposes in laying out a kitchen. However, this is after spending 5+ years developing 100 custom features and an entirely customized workflow, so I wouldn't go as far as to say I would recommend it for everyone.
    Applications Developer at Premier Custom Built
  • Options
    rogerroger Member Posts: 8
    @billy2, I'm a very longtime Creo/Pro/E user so the entire idea of multi-body parts is still a bit foreign to me. However, I'm quickly adapting and growing to appreciate and like OS' approach.

    @eric_pesty, I had to study up on the model you provided as I didn't know what implicit mate connectors were. I implemented it in my model and while I still think a component mirror in the assembly would be more intuitive, I agree that your way is a good way of doing it. Thanks for the suggestions!

    As a shout-out to the OS developers, kudos on an extremely well designed CAD program! I'm a huge stickler for well designed products, and I feel OS really nails it from an overall product standpoint (functionality, usability and aesthetics). I've evaluated quite a few CAD programs through the years and every single one has been lacking in some major way compared with OS. Fantastic job and keep up the great work!
  • Options
    eric_pestyeric_pesty Member Posts: 1,549 PRO
    Glad that helped, as an extension, you comment above suggests you might note be very familiar with mate connectors in general and may be missing out on a quite a bit of the interesting functionality they enable.

    I find they can save quite a bit of time as they can be used directly for a lot of things where you would typically have to create reference geometry in other CAD systems. And just open up a lot of possibilities but their uniqueness makes them a bit harder to "master".

    For example when used for a sketch (to add an angle or offset to your sketch without creating anything before, or to create a sketch on the midpoint of something), or to split a part (eg. chop a part in half in one easy step) or even to apply draft (adjust the neutral plane location from within the draft feature), etc...
    Even if using mainly implicit mate connectors, it helps to get comfortable with applying modifications (realign, offsets, etc...)

  • Options
    billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,022 PRO
    @chadstoltzfus I think I've seen kitchen layout tool, very impressive.

    If you're going to use featurescript, you're going to be in a partstudio. 

  • Options
    Xiaolei_HuXiaolei_Hu Member Posts: 1 PRO
    This might be tangential. The onshape tutorial should stop telling people to design multiple parts, while stationary to each other, in a part studio. The misunderstanding actually started from the Onshape Bootcamp unfortunately.
Sign In or Register to comment.