Hi Falk
I have an idea that IMHO is worth to be tested on your side. I've tested it on my simple test model.
Description
1) Master part (skeleton) includes two solid bodies — bar and cylinder. This master part was used as MBP to create the assembly with two components (bar and cylinder).
2) Each of this components derives necessary model parameters from master part. These parameters works as triggers for local iLogic rules that perform any needed calculations (e.g., measure dimensions).
3) Top assembly document has no derived parameters but has iLogic rule that updates entire assembly.
4) Master part has the rule “Sensor” that is triggered by the combination of all control parameters. This rule initiates the update rule in the top assembly.
Open assembly and master part.
Then open the form in master part and change any control parameter (e.g., Length).
Local rule “Sensor” automatically finds and run update rule in the top assembly.
All components are updated and those that are driven by changes in control parameters run their local update rules. Rules are initiated by derived parameters. We may see this due to message boxes. Local rules in components can measure required dimensions.
Result: all components and top assembly are updated “automatically” performing required calculations.
Sample assembly is attached (Inventor 2013).
Master part (skeleton)
Has several control parameters Length, Width, Height, Radius.


Rule in the MasterPart.ipt
Rule is initiated by changes of values of blue parameters.
Rule finds in memory the document with the name “ASSY.iam” and run all its rules (here I have only one rule that updates assembly).
x = Width+Height+Radius+Length 'trigger
Dim MainAssyName As String = "ASSY.iam"
Dim Found As Boolean = Fasle
For Each oDoc as Inventor.Document In ThisApplication.documents
If oDoc.DisplayName = MainAssyName Then
Found = True
Dim iLogicAuto As Object = iLogicVb.Automation
Dim rules As Object = iLogicAuto.rules(oDoc)
If (rules IsNot Nothing) Then
For Each rule As Object In rules
' iLogicAuto.RunRule(oDoc, rule.Name) ' this also works
iLogicAuto.RunRuledirect(rule)
Next
End If
End If
Next
If Not Found Then
MessageBox.Show("Assembly " & MainAssyName & " not found",
"TEST", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
-----------------------------------------------------------------
Rule “SensorASSY” in ASSY.iam
Updates entire top assembly. Driven by rule in MasterPart.ipt.
Message box is used as process indicator only and may be removed.
InventorVb.DocumentUpdate()
Beep
MsgBox("Assy was updates")
-----------------------------------------------------------------
Rule in Cylinder.ipt
Run when at least one “blue” parameter is changed.
Message box is used as process indicator only and may be removed.
x=Length+Radius
Beep
MsgBox("Rule in CYLINDER")
-----------------------------------------------------------------
Rule in Bar.ipt
Run when at least one “blue” parameter is changed.
Message box is used as process indicator only and may be removed.
x=Width+Height+Length
Beep
MsgBox("Rule in BAR")
-----------------------------------------------------------------
Please let me know if this control method works for you.
Cheers,
Vladimir Ananyev
Developer Technical Services
Autodesk Developer Network