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.


Advantages and disadvantages of multipart part studios vs. in-context editing?

james_aguilar160james_aguilar160 Member Posts: 34

I am quite new to onshape and LOVING it. It's so much fun, even compared to certain other parametric modeling software I've used before. I'm asking this question in the context of an extremely simple part I'm building, but I'm interested in a more general answer to my question:


So, the part I'm building is an interface for mating a Nintendo Switch to a USB port, including all the necessary geometry for holding the Switch upright. I started by modeling the switch itself, and have gone on to model the holder in relation to the model of the Switch.

In this document, I've used in-context editing to handle this problem. I created an assembly with just the Switch, and then created a new part studio to model the holder interface.

I understand that I could have also modeled the holder interface in the same part studio as the Switch itself.

It seems like this is a case of two different ways to skin the same cat. I've seen forum questions via search that ask, "What should I use?" with an answer of, "It depends." So I thought I might ask it a different way: in what situations should I prefer one approach or the other? What are the advantages of each approach?


  • Options
    james_aguilar160james_aguilar160 Member Posts: 34
    Maybe answering my own question a little bit from further googling around and some information from the learning center. If parts are closely interrelated and reference each in many respects, it seems like they should usually be defined in a single part studio. But if the parts only loosely relate to each other then perhaps putting them in separate studios makes more sense. This is because in context editing is relatively cumbersome compared to editing parts in a single studio.

    One other thing I noticed is that if you have a part that needs to be referenced by two different parts, but in two different positions within an assembly, then the only way I can see to accomplish that is in-context editing. For example, if you have a carriage that rides along some rails and parts at either end of those rails both need to reference the geometry of the carriage (or vice versa), that cannot be easily accomplished within a single part studio.
  • Options
    nick_papageorge073nick_papageorge073 Member, csevp Posts: 749 PRO
    edited June 25
    You have the gist of it. 

    A few other considerations:

    Off-the-shelf (OTS) parts:
    Such as your switch. Or let's say you are making an enclosure for an arduino pcb. Those OTS parts should be in their own studios. Because they are likely to be used in future projects, that are completely unrelated to the current project. Pretend you are a big company and have a library of OTS parts that all the CAD users can access to work on their independent designs.

    Anytime you have OTS parts, try to find a step file for them, rather than modeling them from scratch. Digikey or Mouser for anything electronic. McMaster-Carr for anything mechanical. An account at both so you can download the CAD will come in very handy.

    Although the in-context is a bit more cumbersome than modeling everything in one studio, its performance is much higher. Right now you only have 2 parts. If you had 100 parts all in one studio, the feature list might be 1000 features long. This will make the studio performance slow. In-context allows you to still reference a large assembly, but keeps the performance of the modeling studio high.

    No relation:
    Sometimes you don't need any relationship between the parts. In your example, it's basically a rectangle that fits inside a channel. You could simply make an assembly of the two, aligned by their origins. Then adjust the size of the channel until it has the clearance/interference you desire. You don't expect the rectangle to change (unless you measured the OTS one incorrectly). So for something super simple, sometimes its better just to do it in your head and not have in-context or same-studio relations.

    Back to the Arduino scenerio, let's say you have the arduino, and you will have 3 buttons and 2 knobs all attached to it with wires. You are designing an enclosure for all of them. You download all the STEP files for the 6 OTS parts. You don't really know how you want them arranged, you're brainstorming. Make an assembly of the 6 parts. The pcb mate to the asm origin. The 3 buttons and 2 knobs also mate to the origin, and then offset them in xyz and rotation until they feel right. Then you can create the housing in-context and pick up the locations of all of the OTS parts to cut holes in the housing for. (actually at first just drag the components around instead of mate to the origin and offset. It will be much quicker and simpler for ball-park positioning).

    Moving things around in an assembly is much simpler than if you had modeled everything in one studio.
  • Options
    rick_randallrick_randall Member Posts: 154 ✭✭✭
    1) If you are creating an assembly for your own personal use, and it's relatively simple - I would go with multi part studio (keeps all related files in one central, easy to find document).
    2) On the other hand, if you're working for a company (or even yourself), and have large assemblies, with many sub-assemblies, you will never be able to find your parts later if you try using multi part studios (this can get out of hand very quickly).
    I'm basically repeating what nick_papageorge073 said above, but it's the end use that ultimately drives your decision. 

  • Options
    jelte_steur814jelte_steur814 Member Posts: 109 PRO

    in addition: version (or revision management) is messy with multi-part studio's. and as the model gets more complicated, performance is really an issue.

    I've developed some complicated injection moulding parts (6 in total) in a multi-part studio when I just started in onshape (and didn't understand all this)
     and I regret it.
      - the performance is poor. (its just slow)
      - I can't seperate them after the fact becuase the geometry is too intertwined.
      - when i change something on one part, all parts versions nrs change.

    with an in context assembly way of working, i would have started with all parts in a document for ease and speed of changes. But as the model matured I could have split them into different documents so the version control would be separate and the documents more lightweight.

    so even if in-context assemblies may be a bit more cumbersome, if the model has the potential to grow into something more complicated, it's well worth the investment.

    that said: when I just model a simple 3d-print fix for around the house, I always model multi-part just for sake of simplicity.

  • Options
    josh_targojosh_targo Member Posts: 69 ✭✭
    just like photoshop, there are many ways to achieve the same result, with pros, cons, and preferences. I would probably have the Switch in an assembly and then in-context the holder. this is nice because you can turn off context after you have the critical dimensions set and just work on the holder alone.  the Performance boost that someone mentioned is because part studios are re-built every time you commit a function.  Onshape runs through the whole history to arrive at the final result.  if you have something in context or derived, it just renders the geometry without having to build it step by step.
Sign In or Register to comment.