In our ERP we provide a raw material quantity. For sheet metal parts, whether they are bent or not, we provide a true area of the part. For any part made of sheet metal, we currently use Creo's Measure tool to get the surface area of the FLAT, divide that number by 144 (yes, I know you can change the units in the Measure tool, but it changes them everywhere, when I only need feet in the area calculation), enter that number into a Parameter in the parent part (called "Quantity"), and it appears in the Quantity section in a drawing table. This is a pretty annoying manual process, and needs to be redone with any change to the part during design or revisions.
Because it will be important in a moment, I will point out that we do this for any part literally made from sheet metal, whether or not that part is bent (meaning they may or may not have a FLAT).
I would like to use a Relation to feed the Quantity Parameter. I know I can use the Reported Mass Properties parameters (https://support.ptc.com/help/creo/creo_pma/usascii/index.html#page/model-based_definition/About_Work...) and Relations to calculate the same area I'm fetching manually with the Measure tool, including converting from in^2 to ft^2.
Unfortunately, I've learned that because the FLAT is a member of a Family Table with the bent part being the generic, they have different mass properties, including the crucial one for what I wanted to do: PRO_MP_VOLUME. I understand why this is, but it means that I need to see if this is possible with Relations:
1. Use a conditional to determine whether or not there is a FLAT state.
2. EITHER fetch the FLAT's PRO_MP_VOLUME
Fetch the Generic's PRO_MP_VOLUME
3. Divide VOLUME by SMT_THICKNESS (which we're already using elsewhere in Relations)
4. Feed the answer to a Parameter
5. Put the Parameter into a Sheet Metal specific drawing format
My immediate roadblock is I can't figure out a way to retrieve a FLAT's Parameter in the Generic's Relations. I also can't figure out how to fetch Parameters from BOTH the Generic and the FLAT in the drawing format. Finally, the Conditional I mention in step 1 may also be impossible.
If we add the FLAT to the drawing FIRST, it will use the correct values, but then the mass is wrong (because it's different between the two). Also, the way the format fetches the title block information means something like 12345_FLAT1 shows up as the part's name.
Finally, I should point out that maybe the difference between the two VOLUME parameters is so small that I just shouldn't worry about it...That may be the easiest solution.
Have you considered creating an analysis feature in the model to calculate the area and/or mass values in the units of choice and use these feature parameters in your relations? Analysis features will change as the model is modified and can be included in a family table if needed.
The unbend or flatten feature (and its' parameters) may be used to determine if a part is formed or not. You can create a search tool with rules to find if there is a bend or flatten in a model. I think it may be possible to find it even if the feature is suppressed using the search tool.
I don't know if this will help, but I just did a bit of a test and maybe you can "trick" the system by using multiple measurement features?
For example, I have a rectangular block, 5 X 6. I create a measure feature right after creating the "raw" block. That area is 30. This measure feature is mxAreaRaw.
Now, I cut a notch out of one corner of the block, a square of 2 X 2. Another measure feature is created after this to get the area, which is 26, and its name is mxAreaCut.
Then, I have two parameters, areaRaw and areaCut, assigned by the relations:
areaRaw = area:FID_MXAREARAW areaCut = area:FID_MXAREACUT
If I create a family table and add an instance that doesn't create the corner cut or the mxAreaCut measure feature, The value of the two areas in the instance is still what I want, because the parameter was set in the generic. Kind of a cheat, I don't know how it will work out with iterations on the design, but maybe that's what you need to get your results?
Another dirty trick I've used for this kind of thing is to add the instance that's not being shown in the drawing to the drawing, and pull the values of interest from that instance. You can have as many models in a drawing as you want and still only make views with one of them. I do this sometimes to include the part number of the previous state of a part (i.e. the casting, which has its own part number).