Since this customer is using Autodesk Inventor, there is an automation environment called iLogic that can be used to solve this challenge. With a bit of minor customization in iLogic, an iterative process can be developed to automatically adjust one parameter when another changes.
The following code could be adapted in iLogic to satisfy many similar situations:
Parameter.UpdateAfterChange = False Dim CurrentVolume As Double Dim VolumeDelta As Double Dim OldVolume As Double Dim PercentChange As Double 'reset the percent to a high value so the routine runs PercentChange = 10 If HeadDepthChange <> 0 Then OldVolume = CDbl(iProperties.Volume) HeadDepth = HeadDepth - HeadDepthChange 'iterate until volume nearly matches While Abs(PercentChange) > .00000000001 RuleParametersOutput() InventorVb.DocumentUpdate() ThisApplication.ActiveView.Update() CurrentVolume = CDbl(iProperties.Volume) VolumeDelta = OldVolume-CurrentVolume Percentchange = VolumeDelta / OldVolume HeadDia = HeadDia + HeadDia*PercentChange/2 End While CurrentVolume = CDbl(iProperties.Volume) VolumeDelta = OldVolume-CurrentVolume Percentchange = VolumeDelta / OldVolume ' MessageBox.Show(PercentChange , "Final Percent of Change") MessageBox.Show("Original Volume = " & OldVolume & " New Volume = " & CurrentVolume & " Volume Difference = " & VolumeDelta, "Volume Change") HeadDepthChange = 0 End If