Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

Excluding visible = false from occurances.AllReferencedOccurrences

floccipier
Advocate

Excluding visible = false from occurances.AllReferencedOccurrences

floccipier
Advocate
Advocate

Hi all, 

I am struggling to figure out how I can remove invisible (visible = false) items from component occurances count. 

 

best regards, 
Flo

0 Likes
Reply
Accepted solutions (2)
484 Views
2 Replies
Replies (2)

JhoelForshav
Mentor
Mentor
Accepted solution

Hi @floccipier 

If you dont want to use a for each loop and just loop through the occurrences, checking each one of them if it's visible or not and add +1 to an integer if so, you can do it like this :slightly_smiling_face: (oDoc = the document your'e checking all referenced occurrences of)

Dim oAsm As AssemblyDocument = ThisDoc.Document
MsgBox(oAsm.ComponentDefinition.Occurrences.AllReferencedOccurrences(oDoc).OfType(Of ComponentOccurrence).Where(Function(x) x.Visible = True).Count)

Otherwise something like this is probably the most simple way to do it:

Dim oAsm As AssemblyDocument = ThisDoc.Document
Dim count As Integer = 0
For Each oOcc As ComponentOccurrence In oAsm.ComponentDefinition.Occurrences.AllReferencedOccurrences(oDoc)
	If oOcc.Visible Then count += 1
Next
MsgBox(count)

bhavik4244
Collaborator
Collaborator
Accepted solution

@floccipier 

 

Try this!

 

Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition

'Iterate through all of the occurrences
Dim oOccurrence As ComponentOccurrence
Dim oList As New List(Of Integer)

For Each oOccurrence In oAsmCompDef.Occurrences

	If oOccurrence.Visible = True Then
	
	oList.Add(oAsmCompDef.Occurrences.Count)
End If
x1 = oList.Count

Next

MessageBox.Show(x1, "Number of VisibleComponents")

 


Bhavik Suthar