Try this one working goood
'Attribute VB_Name = "Hide_Sketches_And_planes"
Sub Hide_Sketches_And_planes()
'catch and skip errors
On Error Resume Next
' Get the active document.
Dim oDoc As Document
Set oDoc = ThisApplication.ActiveDocument
If oDoc.DocumentType = kAssemblyDocumentObject Then
Call HideAssemblyComponents
ElseIf oDoc.DocumentType = kPartDocumentObject Then
Call HidePartComponents
Else
MsgBox ("The active file is no assembly or part. Script can't be used here.")
Exit Sub
End If
End Sub
Private Sub HideAssemblyComponents()
Dim oAsmDoc As AssemblyDocument
Set oAsmDoc = ThisApplication.ActiveDocument
'get user input as True or False
Dim Vis As Boolean
Dim result
result = MsgBox("Hide all sketches and workplanes?" & vbCrLf & vbCrLf & "Click Yes to hide all sketches and workplanes." & vbCrLf & "Click No to Show all sketches and worplanes.", vbYesNoCancel)
Select Case result
Case vbYes
Vis = False
Case vbNo
Vis = True
Case vbCancel
Exit Sub
End Select
'catch and skip errors
On Error Resume Next
Dim oSetch As PlanarSketch
Dim oWorkPlane As WorkPlane
Dim oDoc As Inventor.Document
'Iterate tru all referenced documents and change visibility
For Each oDoc In oAsmDoc.AllReferencedDocuments
For Each oWorkPlane In oDoc.ComponentDefinition.WorkPlanes
oWorkPlane.Visible = Vis
Next
'set work axis visibility
For Each oWorkAxis In oDoc.ComponentDefinition.WorkAxes
oWorkAxis.Visible = Vis
Next
'set work point visibility
For Each oWorkPoint In oDoc.ComponentDefinition.WorkPoints
oWorkPoint.Visible = Vis
Next
For Each oSketch In oDoc.ComponentDefinition.Sketches
oSketch.Visible = Vis
Next
Next
'change visibility from active assembly document
For Each oWorkPlane In oAsmDoc.ComponentDefinition.WorkPlanes
oWorkPlane.Visible = Vis
Next
'set work axis visibility
For Each oWorkAxis In oAsmDoc.ComponentDefinition.WorkAxes
oWorkAxis.Visible = Vis
Next
'set work point visibility
For Each oWorkPoint In oAsmDoc.ComponentDefinition.WorkPoints
oWorkPoint.Visible = Vis
Next
For Each oSketch In oAsmDoc.ComponentDefinition.Sketches
oSketch.Visible = Vis
Next
ThisApplication.ActiveDocument.Update
End Sub
Private Sub HidePartComponents()
Dim oPartDoc As PartDocument
Set oPartDoc = ThisApplication.ActiveDocument
'get user input as True or False
Dim Vis As Boolean
Dim result
result = MsgBox("Hide all sketches and workplanes?" & vbCrLf & vbCrLf & "Click Yes to hide all sketches and workplanes." & vbCrLf & "Click No to Show all sketches and worplanes.", vbYesNoCancel)
Select Case result
Case vbYes
Vis = False
Case vbNo
Vis = True
Case vbCancel
Exit Sub
End Select
Dim oSetch As PlanarSketch
Dim oWorkPlane As WorkPlane
Dim oDoc As Inventor.Document
'change visibility from active part document
For Each oWorkPlane In oPartDoc.ComponentDefinition.WorkPlanes
oWorkPlane.Visible = Vis
Next
'set work axis visibility
For Each oWorkAxis In oPartDoc.ComponentDefinition.WorkAxes
oWorkAxis.Visible = Vis
Next
'set work point visibility
For Each oWorkPoint In oPartDoc.ComponentDefinition.WorkPoints
oWorkPoint.Visible = Vis
Next
For Each oSketch In oPartDoc.ComponentDefinition.Sketches
oSketch.Visible = Vis
Next
ThisApplication.ActiveDocument.Update
End Sub