By Adam Nagy
There is already a blog post on a similar topic here, and so this one is just to clarify that not only transformations, but model geometry is also affected by it.
a) If you have a part and you modify its PartComponentDefinition then all occurrences of it in assemblies will be affected by it.
b) If you only modify the geometry of its ComponentOccurrence in the assembly then it will not affect its definition, and so will only be reflected in that given occurrence.
We have the following part and assembly, where the part's geometry is affected by features added at the assembly level - i.e. only the component occurrence will be affected:
This VBA code shows the difference between the bodies you get back in different ways: the original has 6 faces as expected, and the occurrence has 8 faces because of the extra 2 faces created by the chamfer feature in the assembly:
Sub FaceCountOfProxyVsNative() Dim occ As ComponentOccurrence Set occ = ThisApplication.ActiveDocument.SelectSet(1) MsgBox _ "Proxy Body Face Count = " + _ Str(occ.SurfaceBodies(1).Faces.Count) + vbCrLf + _ "Native Body Face Count = " + _ Str(occ.Definition.SurfaceBodies(1).Faces.Count) End Sub