Implications of assembly recomputing to collaborative work
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
The way Fusion handles assemblies means that whenever a component of the assembly is changed and saved, to see the change in the assembly that consumes it one has to "Get Latest" which causes the recompute of the entire assembly, probably by pulling all latest versions from the server and rebuilding all joints and relations.
This recompute is extremely slow which has been highlighted many times and every update they try to make it perform faster. But I do not believe this is a solution.
Whenever a team works on a large project different members of the team work on different parts of design but they all tend to keep the top level product assembly open for references. They can not all work in its context with Edit In Place at the same time, but they can each work on their part and Get Latest to see if the change they made to subassemblies and components fit.
This means that all members of design team run Get Latest dozens of times a day. This works at first. But as soon as you get to the top level assembly it is just unbearably slow. Our product assembly currently take more time to recompute than it takes me to write this post. It is not something that can be solved by making it 10-25-50% faster. Its fundamentally done the wrong way, because the assembly we're working on isn't even particularly complicated or large. I could understand such problems in designing an airplane or a spaceship.
But the assembly should not take 10 minutes to recompute just because it has a couple hundred joints in it.
This just isn't the way.
How do other systems solve this issue of collaboration? Again my past experience is with Creo. The way Creo handles this is every member of the team works in his own local session that run in the local memory. That session is loaded not directly from the server, but from his personal online workspace. The user uploads things he wants to work on into his workspace. From there they load onto his machine. Saving something requires checking something out for changes first, then saving it locally, then uploading it to workspace, then checking it in to the server.
This is designed so that every member of the team has everything he needs running locally on his machine, all changes one makes are automatically implemented in the local session. No "Get Latest" all the time. It updates live, you save in one window, it updates in the assembly in another instantly. It doesn't recompute for 10 minutes. Technically every user works on a different model in his workspace and in his session. They only synchronize their work when they check things in and update their workspaces and session. But this doesn't need to happen often.
Now imagine someone needs to design an airplane in Fusion? How would one even go about it? It just won't work. With such large assemblies teams need to re-compute them no more frequent than once a 24-hour period, probably at night.
I used to think Creo way was complicated and confusing. Now I understand the alternative. "Get Latest" and go have a tea. Make a small change to a part, get latest and go have lunch. Fix a small mistake in thread engagement on the baseplate, get latest and go write a post on the forum. Why do you think I'm so active here? Need something to do waiting for my assembly to recompute, praying it doesn't crash. I think it just about finished...
