Reading through the Creo documentation a bit and noticed this line:
"Features in an intersected part should not directly or indirectly reference an assembly cut."
On this page of the doc:
I thought that sounded like an interesting concept so I just did a quick test despite it sounding like it was going to be impossible. It actually seems to work. I assembled a basic cylinder part by itself, created an assembly-level hole feature, then intersected it with the cylinder to make it a part-level feature. Then I activated the cylinder, added another hole after Assembly Hole 1, and used the surface of the first hole as a reference.
Anybody got any idea why the help files say to not do that? It seems like it'd be an amazingly handy feature, but I can certainly see it causing circular refs or crashes if you were to start rearranging the model tree, since now the model tree could be seen as being "out of order". Anybody have any experience using this technique? Should I just never use it, or would it be acceptable to do if managed properly?
That statement is made in the context of unexpected (unmanageable) parent child relationships being an issue with the models. In general it is considered best practice to not reference assembly features in parts ( this is one reason why the top down design tools were developed). I would say do not do it unless it captures the design intent in all of the models to reference an assembly feature and there is not a better way to deal with it.
There are very rare instances that I have seen where assembly features in a part make sense and I can not recall ever using an assembly feature as a parental reference for a part feature.
If you have an example of why this would be of interest to you then some may weigh in on it with the best way to capture the design intent.
Let's say I have a bunch of different crossmembers in the floor of a building and need to pass a straight pipe through them all. I would use an extrude in the assembly to cut holes straight through every member all at once and use the intersect feature to pass that single extrude down into all of those part models. Now let's say I want to chamfer the edge of those holes.
Quick (probably poorly thought out) example, but I'm on my way out the door. I'll see if I can come up with a better example tomorrow.
So one downside I see with your example would be that the assembly must be in session and regenerated to modify the chamfer in each part. As an example of why not to do this we can assume that there are 1,000 cross members in the assembly, that will be a very poor use of the tool in terms of time spent (cpu cycles) to regenerate a single part or chamfer in that part.
For projects such as vehicles (space craft, agriculture equipment, aircraft etc.) or others that have many components this becomes unwieldy from a design standpoint from the start. If your assembly has 5 parts it is not a huge issue from this perspective.
For your example I would put a skeleton model in the assembly for the cross members with a trajectory and surface for the pipe cuts for each pipe. You can then create a copy geometry of the cut surface in each cross member. With this approach you would never have to retrieve the top level assembly of cross members to regenerate a single part. I only need to modify the skeleton part for the pipe route which would then propagate the update to all affected cross members through an external copy geom.
Many design teams tend to structure there CAD assemblies to mimic some hierarchy based on manufacturing or assembly which is often not good for the design phase within the CAD tool. I would always encourage design teams to consider an assembly structure for use within CAD that is not restricted to a BOM structure or process map. I tend to create many design assemblies that exist for use by the design team to exploit the CAD tool and be more efficient in design management. These assemblies exist only to capture and manage design intent and support design changes efficiently.
Not relavent to the exact reason of your post but years ago I did a study of assembly features. They are very time consuming on large assemblies. Even using them in lower levels has serious time implications on your top level assemblies. They are also "finicky". They have a much greater tendency to fail unexpectedly. My study was never formal and was specific to the work a company was doing at that time.
I've never seen an assembly cut I liked! I use them occasionally but I am always looking for better ways. I'm hoping multi-body in Creo 7 will be an improvement. I will begin testing it in 3 or 4 years when we make that jump!