Using Intent Objects to Build Robust Models and Automatically Place UDFs
I'd like to share some information about, and try to clear up the confusion around, Intent Objects. At a high level, there are two kinds of Intent Objects: the ones that the system creates for you, and the ones that the user defines manually.
First off are the Intent Objects created by the system. They are automatically created at the intersections of merged solid features, all side edges, start or end section edges, all side surfaces, start or end surfaces, etc. It's a great idea to teach your users to use these references when they can. They are very robust because they don't require a specific reference. To get to the Intent References, you need to either query select or Pick From List (RMB on a reference). A simple example of this would be to extrude a cylinder, then apply a round to the Intent reference that corresponds to the circular section at one or the the other end. Now go back and redefine the extruded cylinder. Delete the circle and draw a rectangle instead. The round will still be created on the edges at the end of the now rectangular protrusion.
Next we have the Intent Objects that the user defines manually. These are the Intent Reference Features, such as Intent Chain, Intent Surface, Intent Csys, etc. There are basically two uses for these. The first is to provide a single reference that collects a set of several references. The second is to provide automatic placement of a UDF.
If you have a scenario where you have several children that all refer to the same set of surfaces or edges, you can create an Intent Reference Chain or Intent Reference Surface that collects all of those references. If you need to change the set, you only change it once in the definition of the Intent Reference, and it updates for all children. By the same token, if it fails, you only need to fix it in one place.
Automatic placement of a UDF can also be achieved with Intent References. Basically, you can create named Intent Refernce Features on your model, and then design your UDF so that the placement references are Intent Reference Features that query for the names of the references to which they should correspond. The simplest case would be to place an Intent Datum Csys in your model with a name, then build a UDF around an Intent Datum Csys that searches for that name. When you insert the UDF, it will place itself.
I did a presentation on Intent References at Planet PTC Live 2012 in Orlando a few weeks ago. It talks about the advantages of using Intent References over both simply selected references and rule based references. It also covers the use case of auto placing a UDF. I think I've seen some low res Youtube videos that show the process. I think you'll be able to follow along with those videos combined with my attached presentation to learn the UDF auto-placement workflow.
Let me know what you think, I hope you find the presentation helpful.