Part references are used to pick any geometry and mark it as a part. The referenced part will have a special behavior that allows it to interact with Bill Of Materials and allows it to be included in other drawings or assemblies through xreferences.
Part reference properties and features
Part references are special entities with attributes that are used to mark parts in assemblies and populate part data to a Bill Of Materials database. Below you can see an attached and detached part reference.
![image1](/files/inline-images/image1.png)
Detached part reference
![image2](/files/inline-images/image2.png)
Attached part reference
Part references do not hold much data. They have a flag that shows whether it is detached or not and a DataEntry object that holds all part reference attributes (component properties).
![image3](/files/inline-images/image003_1.png)
Part reference component properties shown in OdaMfcApp example
When part references are present in a drawing, there are also BomRow records in dictionaries (BomRow also appears in Bill Of Materials for further processing) and a DataEntry object with part reference data.
![image4](/files/inline-images/image004.png)
Part reference data object
A Bill Of Materials counts the part references as well as components. Part reference attributes work like component properties for components. A referenced part could be included in another assembly or drawing, and a Bill Of Materials of an external file could be attached to a selected part reference.
Example of how to extract data from a part reference:
OdDbObjectId dataEntryObjectId = pPartRef->dataEntryId();
Example of how to remove an attribute from a part reference:
OdError errStatus = pPartRef->removeAttribute("DESCRIPTION");
Conclusion
A part reference is another annotative mechanical entity that allows you to pick any geometry and identify it as a part with Bill Of Materials interaction.