So, last month I talked about the CTRL-Q "Forced Rebuild" command. I mentioned that you need to do a Forced Rebuild on each part, assembly, and drawing. Why is that?
SolidWorks is a single-point database system. Each piece of information needed by SolidWorks to do something will be found in one place and one place only. Features of the part, while they are visible and accessible from the assembly, are not copied into the assembly. The assembly provides a "window" to the part information, which is loaded into RAM behind the scenes when the assembly is open. Likewise with a drawing: the part features are not copied into the drawings, although they are accessible through the drawing.
What does Forced Rebuild do? It goes through the instruction set and carries out each instruction, which then provides the result from the modeling engine as topology (faces, edges, etc.). The instructions for a part are not in the assembly, so the part isn't being rebuilt when you do a CTRL-Q in the assembly; rather, each feature of the assembly is being rebuilt (mates, assembly features, and in-context features which are defined within the assembly). In a drawing, Forced Rebuild rebuilds the "features" of the drawings (like the views).
It's really very simple: the Forced Rebuild rebuilds those items actually in the file. Since parts aren't copies into assemblies and drawings, parts aren't rebuilt when you do a CTRL-Q in an assembly or drawing. Bottom line: do a CTRL-Q at each level, at least once (before you release the item in question). See last month's blog entry for more on CTRL-Q. Oh, yeah, and make sure you turn on Verification on Rebuild before you do the Forced Rebuild. (Tools, Options, System Options, Verification on Rebuild.) You can turn it off again after the CTRL-Q. I'll be writing about this switch in my next entry.
Jeff,
I am looking forward to your post regarding the details behind Verification on Rebuild. Any further explanation of the additional error checking it performs would be great information to have.
Posted by: Gabe Biertzer | June 15, 2009 at 07:26 AM
My mistake...I meant to address John :)
Posted by: Gabe Biertzer | June 15, 2009 at 07:28 AM