Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- 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.
Branch Clutter!

Branches are really powerful and enable some unique collaboration, BUT in my experience they are the agents of chaos in our environment…
The problem is given they occur at the Document level, when a document has many tabs, you are essentially creating copies of up to dozens of components, most of which are not necessary for iteration of the design. While our best practice is not to build project in a single document, that is the path of least resistance in Onshape, and it continues to run wild with users.
In my experience as CAD Admin/Manager it is NOT best practice to version parts/assemblies (components) that did not change, and even worst practice to create unnecessary copies of components. And yes, they are copies, because for all intents and purposes they clutter and proliferate in the Onshape environment.
In this context I'm submitting a few Improvements Requests, but am really interested in here from other users/admins on this topic:
-Introduce Twigs:
-These are "small branches", basically allow to branch a single tab, any references for that tab, would automatically reference the Main Branch or corresponding linked Document
-Eliminates unused baggage data
-Filter-Out components in Branches:
-When searching and browsing to insert components, exclude any components that exist is a branch, only show what is part of a Main Branch
-This should be an Enterprise configuration setting, so that it can be enabled or disabled per environment needs
-Limit actions in Branch Workspaces:
-ie: Creating a Revision, Moving a Tab, Branch of a branch…
-Basically a way to force user to perform major events like this from the Main, again, this should be an Enterprise Configuration option
CAD Engineering Manager
Comments
hmm, seems you're asking for a lot of complications in the product for this issue:
"While our best practice is not to build project in a single document, that is the path of least resistance in Onshape, and it continues to run wild with users"
Twigs are the same as splitting off a tab into a doc and versioning it separately. If you can't get your users to do that, how would you enforce the use of twigs?
Aren't your users looking for an easier to use library for the components they keep inserting?
Perhaps you should reframe your question and ask other CAD admins/managers how they solve this.
don't get me wrong: I don't have a solution for you, just a hunch that a more realistic solution in your control may be found in another direction than changing the branching functionality…
e.g.: hey CAD admins? how do i get my users to keep/create/split off components into seperate documents, rather than in a tab within the project?
you could even go and ask your users where the hurdle is that they experience against doing this…
I'd think that many parts come into extistence, maybe as an idea first, inside some existing document. That is just the way things go as we work while we still think about it. At some point, when the part becomes more concrete, we wish we had started it as an extra document, but then it's already too late.
In my previous CAD, there was an option named "Externalize Part" or the like. On activation, it would create an external document with the part selected and replace all internal instances already existing with an inserted one. That was pretty easy and the CAD users in the office used it a lot, because it actually helped to create clear overview when collaborating. Documents could have their own versions and the like. They could be individually locked/released, too. Colleagues could develop an improved version of such parts and everyone could update his design using the latest version. That was all good. During externalization, outside references were broken, though, and that was bad. Still it was an acceptable trade-off in in the situation, given there were super strong direct modelling options available.
In Onshape, we do have something similar, with the "Move to …" option, but it is not as easy. It moves some referenced tabs together with the part to be moved. For the user, this action and it's outcome is hard to predict, because he might not be aware of all references existing at the time and might regret it later. Also, when using this option, a warning box pops open, not only telling, but warning the user about this, while not offering an immediate solution to the dilemma.
So, to solve the issue, and instead of adding more complexity, it might be a good approach to reconsider how moving parts to their own/new documents works in Onshape, and rather help and motivate CAD users to keep best practise.
Agree, again I acknowledge just following "Best Practice" is a solution, that being said is not realistic, we have over 300 users, most of which use the tool sporadically maybe every few months or a couple times a year, that's the nature of our business. Not all Designs go through a release process where we monitor/enforce best practices.
Most Enterprise level systems have some "guardrails" you can configure to mitigate issues like this, and that is why believe this should be enterprise configuration options, so that only those of us that benefit, would enable them.
CAD Engineering Manager
This sounds like a combination of things: Onshape could add some more guard rail functionality, AND a best practice needs to be developed and made explicit at your company. I personally don't see value in the twigs thing, and it could add an exponential level of complexity to the version graph.
Functionality I'm interested in:
But there will always be a branch hygiene element to it, which is a sociological problem, not a software problem. It's about setting and keeping SoPs for how branches are and aren't used. An easy one could be to ask people to append their name to the branch name so it's obvious who to ask about it. Another could be getting clear on the CAD strategy before beginning a project. Before any work is done the whole project team should understand how data flows through the design, and at what milestone the project should split into multiple documents. (Often a good practice is to start in 1 doc while things are changing a lot, then split out once the design is beginning to gel). No amount of Onshape functionality can replace the team's mutual understanding of the CAD plan and SoPs. It's a compound challenge involving people, process, and tools, and the solution needs to address all 3. I help with this stuff at www.theonsherpa.com.
The Onsherpa | Reach peak Onshape productivity
www.theonsherpa.com
Much appreciate your input @EvanReese, given we already have Workspace Protections, my assumption is that the framework is already there to implement some controls like the ones we mention.
And again I reiterate that best practices and procedures are paramount, Onshape themselves on all their training content always show large projects hosted on a single Document, these promote those behaviors across the user-base. Onshape is a really powerful Data Management tool, but I still believe it needs to become more robust in that space.
CAD Engineering Manager