These functions traverse STEP properties on products or other definitions. Properties are attached using a property_definition, which can give a name to the property. The value is given by a property_definition_representation, which connects the property definition to a representation that contains measures, geometry, or other representation items. These functions are defined by the stix_property.h header file.
The stix_property_tag() function adds backpointers to properties and their representations so that you can find them quickly. The stix_property_get_owner() and stix_property_get_owner_as_pdef() functions simplify working with properties.
RoseObject * stix_property_get_owner ( stp_property_definition * pd ); RoseObject * stix_property_get_owner ( stp_property_definition_representation * pdr );
The stix_property_get_owner() function extracts the value from the "definition" select field in a property definitions. The return value is cast to a general RoseObject pointer because the definition field can accommodate a range of different types. Use the stix_property_get_owner_as_pdef() function if you expect the value to be a product_definition.
The property_definition_representation version of the function will follow the reference to a property_definition if present and return its owner, otherwise it just returns the contents of the PDR's "definition" field.
stp_product_definition * stix_property_get_owner_as_pdef ( stp_property_definition * pd ); stp_product_definition * stix_property_get_owner_as_pdef ( stp_property_definition_representation * pdr );
The stix_property_get_owner_as_pdef() function is a wrapper around stix_property_get_owner() that only returns values of type product_definition. If the owner is some other type, the function will return null.
stp_product_definition_shape * stix_property_get_shape ( RoseObject * obj );
The stix_property_get_shape() function searches for a product_definition_shape property on an object. This function expects the properties to have been previously indexed with the stix_property_tag() function. It will return null if the properties have not been tagged.
int stix_property_has (RoseObject * obj);
The stix_property_has() function returns true if an object has associated properties. This function expects the properties to have been previously indexed with the stix_property_tag() function. It will return null if the properties have not been tagged.
void stix_property_tag (RoseDesign * d)
The stix_property_tag() function adds backpointers to all of the things referenced by property_definition and property_definition_representation objects. The backpointers are held in StixMgrProperty and StixMgrPropertyRep manager objects. These classes can be used if fine-grained access is desired.