Keep Bolted Connections Updated with iLogic

autodesk inventor  ilogic bolted connection update.png

Bolted Connections created in Inventor can become out of date when changes to a part in an assembly happen (for example a material thickness change).

I’ve adapted a bit of iLogic code shared on a forum by Rossano Praderi. My version of the code iterates through the assembly, identifies bolted connections, and sets them to Automatic Solve. This will update all bolted connections that are out of date. Once this is complete, the code then iterates back through the assembly and sets all of the bolted connections back to Manual Solve.

Below is an animated GIF showing how the code updates the model.

Autodesk Inventor - iLogic - Bolted Connection updater

Below is a quick overview of the 3 most common statuses that a bolted connection will display in Inventor.

autodesk inventor bolted connection update

Automatic Solve: Automatically updates with any model change (not set by default, makes your model run slower). To set Automatic Solve Right Click > Component > Automatic Solve

Manual Solve: This is the default setting for bolted connections

Update Needed: The Bolted Connection is out of date. To update a bolted connection in this state, either edit it, or set it to Automatic Solve. Always remember to set your bolted connections back to Manual.

Here is the iLogic Code:

'This version of the code by Clint Brown, originally posted at https://clintbrown.co.uk/iLogicBolts
'Acknowlegments: Rossano Praderi posted see his post in the forum below
'https://forums.autodesk.com/t5/inventor-customization/bolt-size-with-ilogic/td-p/6232695

On Error Resume Next
Dim oAss As AssemblyDocument = ThisApplication.ActiveEditDocument
Dim bp As BrowserPane = ThisApplication.ActiveDocument.BrowserPanes.ActivePane
Dim node As BrowserNode

For Each node In bp.TopNode.BrowserNodes
    If InStr(1, UCase(node.BrowserNodeDefinition.Label), "BOLTED") > 0 Then 
        oAss.SelectSet.Select(node.NativeObject)
       Call ThisApplication.CommandManager.ControlDefinitions.Item("FDSolveAuto").Execute
	   ThisApplication.StatusBarText = "Success: @ClintBrown3D"
    End If
Next
ThisApplication.StatusBarText = "Bolts updated, system will now set them back to Manual Solve: @ClintBrown3D"

For Each node In bp.TopNode.BrowserNodes
    If InStr(1, UCase(node.BrowserNodeDefinition.Label), "BOLTED") > 0 Then 
        oAss.SelectSet.Select(node.NativeObject)
Call ThisApplication.CommandManager.ControlDefinitions.Item("FDSolveManual").Execute
ThisApplication.StatusBarText = "Success: @ClintBrown3D"
End If
Next

ThisApplication.StatusBarText = "Your Bolted Connections have all been Updated: @ClintBrown3D"