Public Sub UpdateVolume()
' Get the active part document.
Dim invPartDoc As PartDocument
Set invPartDoc = ThisApplication.ActiveDocument
' Get the volume of the part. This will be returned in
' cubic centimeters.
Dim dVolume As Double
dVolume = invPartDoc.ComponentDefinition.MassProperties.Volume
' Get the UnitsOfMeasure object which is used to do unit conversions.
Dim oUOM As UnitsOfMeasure
Set oUOM = invPartDoc.UnitsOfMeasure
' Convert the volume to the current document units.
Dim strVolume As String
strVolume = oUOM.GetStringFromValue(dVolume, oUOM.GetStringFromType(oUOM.LengthUnits) & "^3")
' Get the custom property set.
Dim invCustomPropertySet As PropertySet
Set invCustomPropertySet = invPartDoc.PropertySets.Item("Inventor User Defined Properties")
' Attempt to get an existing custom property named "Volume".
On Error Resume Next
Dim invVolumeProperty As Property
Set invVolumeProperty = invCustomPropertySet.Item("Volume")
If Err.Number <> 0 Then
' Failed to get the property, which means it doesn't exist
' so we'll create it.
Call invCustomPropertySet.Add(strVolume, "Volume")
Else
' Got the property so update the value.
invVolumeProperty.value = strVolume
End If
End Sub