see this link for a version that handles traversing subassemblies:
You have other members of your design team that do not remember to turn off work features at the part level or sub-assembly level when they are done working with those files. As a result file previews and view representations get messed up. You'd like to have a quick way to toggle all of the work features off. Can this be done with iLogic?
Solution:
You can use this example iLogic rule to toggle all work features on or off.
'catch and skip errors
On Error Resume Next
'define the active assembly
Dim oAssyDoc As AssemblyDocument
oAssyDoc = ThisApplication.ActiveDocument
'get user input as True or
False
wfBoolean = InputRadioBox("Turn all Work Features
On/Off", "On", "Off", False, "iLogic")
'Check all referenced docs
Dim oDoc As Inventor.Document
For Each oDoc In oAssyDoc.AllReferencedDocuments
'set work plane visibility
For Each oWorkPlane In oDoc.ComponentDefinition.WorkPlanes
oWorkPlane.Visible = wfBoolean
Next
'set work axis visibility
For Each oWorkAxis In oDoc.ComponentDefinition.WorkAxes
oWorkAxis.Visible = wfBoolean
Next
'set work point visibility
For Each oWorkPoint In oDoc.ComponentDefinition.WorkPoints
oWorkPoint.Visible = wfBoolean
Next
Next
'update the files
InventorVb.DocumentUpdate()
Update 2/16/17:
Here is a version that handles sketches as well:
'catch and skip errors On Error Resume Next 'define the active assembly Dim oAssyDoc As AssemblyDocument oAssyDoc = ThisApplication.ActiveDocument 'get user input as True or False wfBoolean = InputRadioBox("Turn all Work Features On/Off", "On", "Off", False, "iLogic") 'Check all referenced docs Dim oDoc As Inventor.Document For Each oDoc In oAssyDoc.AllReferencedDocuments 'set work plane visibility For Each oWorkPlane In oDoc.ComponentDefinition.WorkPlanes oWorkPlane.Visible = wfBoolean Next 'set work axis visibility For Each oWorkAxis In oDoc.ComponentDefinition.WorkAxes oWorkAxis.Visible = wfBoolean Next 'set work point visibility For Each oWorkPoint In oDoc.ComponentDefinition.WorkPoints oWorkPoint.Visible = wfBoolean Next 'set sketch visibility For Each oSketch In oDoc.ComponentDefinition.Sketches oSketch.Visible = wfBoolean Next Next 'update the files InventorVb.DocumentUpdate()