Inventor 2022 Parts List Balloon Indicating Icons

Inventor 2022 Parts List Balloon Indicating Icons

dg8MW9N
Contributor Contributor
4,401 Views
17 Replies
Message 1 of 18

Inventor 2022 Parts List Balloon Indicating Icons

dg8MW9N
Contributor
Contributor

Inventor Pro 2022.0.1

Before the implementation of ‘Model States’, I used the Parts List Ballooning indicating icons to ensure all components on a drawing are ballooned.

 

Using model states, I can have the same item ballooned in multiple views, but the Parts List still does not show me the balloon icon.

 

I am trying to avoid having to "chase" balloons around several sheets in a drawing to ensure all the components are ballooned.

What is the alternative?

dg8MW9N_0-1623266510494.png

 

Thanks for any help.

@johnsonshiue 

 

Accepted solutions (2)
4,402 Views
17 Replies
Replies (17)
Message 2 of 18

Curtis_Waguespack
Consultant
Consultant

Hi @dg8MW9N 

 

There does indeed appear to be a bug here.

 

until it is fixed you can use something like this ilogic rule to check the ballooned status.

 

edit: see version2,  that checks all sheets, I left that out of the previous version I posted

 

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

 

version 2

 

Dim oDrawDoc As DrawingDocument = ThisDoc.Document
Dim oSheet As Sheet = oDrawDoc.ActiveSheet
Dim oPartsList As PartsList

For Each oSheet In oDrawDoc.Sheets
	Try 
		oPartsList = oSheet.PartsLists.Item(1)
		Exit For
	Catch
	End Try
Next

If oPartsList Is Nothing Then
	MsgBox("no Parts list found",,"iLogic")
	Return
End If

Dim oBalloon As Balloon
Dim msg As String = ""
Dim oList As New ArrayList

For Each oRow As PartsListRow In oPartsList.PartsListRows
	oFlag = False
	oItem = oRow.Item("ITEM").Value
	For Each oSheet In oDrawDoc.Sheets
	    For Each oBalloon In oSheet.Balloons
			oItemNumber = oBalloon.BalloonValueSets.Item(1).ItemNumber
			
			s = "Item " & oItemNumber & " is ballooned"
			If oItem = oItemNumber Then
				If oList.Contains(s) = False Then
					oList.Add(s)
				End If
				oFlag = True
				Continue For
				
			End If
		Next
	Next
	If oFlag = False Then 
		s = "Item " & oItem & " is NOT ballooned"
		If oList.Contains(s) = False Then
			oList.Add(s)
		End If
	End If
Next

i = 0
For Each oItem In oList
	msg = msg & oList(i) & vbNewLine
	i=i+1
Next

MsgBox(msg,,"iLogic")

 

 

 

 

 

 

 

Message 3 of 18

johnsonshiue
Community Manager
Community Manager

Hi! I need to understand the behavior better. Each PartsList (items) corresponds to a Model State. For Master PartsList, item 1, 4, 6 are indeed ballooned. But, other components are not ballooned in Master.

Are you hoping to see all items marked as ballooned even in different Model States?

Many thanks!



Johnson Shiue ([email protected])
Software Test Engineer
0 Likes
Message 4 of 18

Curtis_Waguespack
Consultant
Consultant

Hi @johnsonshiue 

 

I can't reproduce it today, but yesterday I was able to see the issue.

 

Here are the general steps, but I'm sure it's not real helpful without having files that reproduce the issue,

 

  • I created a simple cube with 2 Model States (MS)
    • where the master model state was still a cube
    • and MS1 was had a change to the extrude length making it a long bar
    • and MS2 had a change to the extrude length making it a short bar
  • The assembly had an instance of the master, MS1 and MS2...
  • all model states had the same part number, so when I placed the drawing view and parts list they ballooned as the same item number.
  • I updated the part file to give each MS a unique part number and then the IsBallooned property was not accurate.

 

Today I can not recreate the issue, so likely I'm doing something in a different order, etc.

 

@dg8MW9N do you have example files that demonstrate this issue that you can share?

0 Likes
Message 5 of 18

johnsonshiue
Community Manager
Community Manager

Hi Curtis,

 

Many thanks for sharing the findings! I will work with the project team to understand the behavior better.

Thanks again!

 



Johnson Shiue ([email protected])
Software Test Engineer
Message 6 of 18

dg8MW9N
Contributor
Contributor

Hi,

Thanks for the help. I have attached the files I used for the example.

 

I’m not saying I think it’s a bug. Perhaps I need more education on how Model States function. There is not a lot of help on the forums regarding M.S.s, yet.

 

I understand that, in INV 2021 and earlier, there was only one BOM per assembly. Using INV 2022 and M.S.s; that has changed.

 

In the past, no matter which view in a drawing had balloons, an unfiltered Partslist would display the icon showing that somewhere on the drawing this item is ballooned. In my example, all of my items are ballooned somewhere on the drawing, but my Master Parts List does not show me that feedback.

 

How can I be sure I have all my items ballooned on a drawing that has several sheets with several views using various view & positional reps and model states? Aside from manually tallying them up?

Message 7 of 18

Curtis_Waguespack
Consultant
Consultant

Hi @dg8MW9N ,

 

I think this is the exact thing I was seeing the other day, but couldn't recreate.

 

... but with the help of your files, I think I see what is going on...

 

When I looked at your Parts list, I noticed it was referencing the Master state

Curtis_W_0-1623766713356.png

 

When we create the Partslist we select a view and can set which state it is looking at...

 

I think the ballooned status is tied to the view, which is referencing the model state.... so this is what's going on.

 

In your case, the parts list is looking at the view called "Shell and Long Nozzle Only..." and showing only those three balloons as "ballooned"

 

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

 

Curtis_W_1-1623766770566.png

 

0 Likes
Message 8 of 18

dg8MW9N
Contributor
Contributor

@Curtis_W

Hi, Thanks again.

I see the pull down now when placing the Parts list. 

dg8MW9N_1-1623769575915.png

To keep all the Item numbers correct, changes should be made to the BOM only, not the Parts List?

And I can't rely on (1) Parts List to indicate all balloons on the drawing are actually ballooned? (See attached pic Items 8 & 9)

 

I am concerned that Model States leave a lot more room for human error.

 

 

 

 

0 Likes
Message 9 of 18

dg8MW9N
Contributor
Contributor

Also, my dwg had a couple iLogics attached. Rule0 being yours. I changed the parameter "Item" to "Item No." to correspond with my parameter. And I added some message boxes to see where my errors timed out. I am getting an error "Unable to cast COM object of type 'System.__ComObject' to interface type 'Inventor.Balloons'.....No such interface supported"

The other iLogics give me results, but all seem to omit some items still based on M.S.  Edit: I see that they do include all items. Hm. I'd like to get your iLogic to work and see the results if possible. Thanks so much!

@Curtis_Waguespack 

 

0 Likes
Message 10 of 18

Curtis_Waguespack
Consultant
Consultant

Hi @dg8MW9N 

 

I'm not entirely sure what the purpose of your drawing would be, as far as having it all on one sheet, but I would kinda think that you wouldn't show different configuration assembly model states on same sheet...

 

Instead we might have short nozzle as separate sheet or separate drawing, than long nozzle, etc. And then use the Parts List filter to show only ballooned items, much as we did with View Reps in the past:

 

Curtis_W_1-1623771986017.png

 

It would be nice if there was a model state filter, or if the parts list would automatically set zero qty items as hidden, but neither of those options are there.

 

Curtis_W_3-1623772392555.png

 

Here are some notes on what you were seeing in your markup

 

Curtis_W_0-1623771500935.png

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

 

0 Likes
Message 11 of 18

Curtis_Waguespack
Consultant
Consultant

Here is another question... maybe @johnsonshiue can provide some insight on

 

We can pull the model state name into the parts list using the Column Chooser... but it only shows master???

 

I'm not sure I see the purpose of this:

Curtis_W_1-1623772631820.png

 

Curtis_W_0-1623772491948.png

 

Message 12 of 18

Curtis_Waguespack
Consultant
Consultant
Accepted solution

@dg8MW9N 

 

I missed your message about the rule earlier, but here it is

 

Dim oDrawDoc As DrawingDocument = ThisDoc.Document
Dim oSheet As Sheet = oDrawDoc.ActiveSheet
Dim oPartsList As PartsList

For Each oSheet In oDrawDoc.Sheets
	Try 
		oPartsList = oSheet.PartsLists.Item(1)
		Exit For
	Catch
	End Try
Next

If oPartsList Is Nothing Then
	MsgBox("no Parts list found",,"iLogic")
	Return
End If

Dim oBalloon As Balloon
Dim msg As String = ""
Dim oList As New ArrayList

For Each oRow As PartsListRow In oPartsList.PartsListRows
	oFlag = False
	'oItem = oRow.Item("ITEM").Value
	oItem = oRow.Item("ITEM NO.").Value
	For Each oSheet In oDrawDoc.Sheets
	    For Each oBalloon In oSheet.Balloons
			oItemNumber = oBalloon.BalloonValueSets.Item(1).ItemNumber
			
			s = "Item " & oItemNumber & " is ballooned"
			If oItem = oItemNumber Then
				If oList.Contains(s) = False Then
					oList.Add(s)
				End If
				oFlag = True
				Continue For
				
			End If
		Next
	Next
	If oFlag = False Then 
		s = "Item " & oItem & " is NOT ballooned"
		If oList.Contains(s) = False Then
			oList.Add(s)
		End If
	End If
Next

i = 0
For Each oItem In oList
	msg = msg & oList(i) & vbNewLine
	i=i+1
Next

MsgBox(msg,,"iLogic")
Message 13 of 18

dg8MW9N
Contributor
Contributor

 


@Curtis_Waguespack wrote:

Hi @dg8MW9N 

 

I'm not entirely sure what the purpose of your drawing would be, as far as having it all on one sheet, but I would kinda think that you wouldn't show different configuration assembly model states on same sheet...

You are correct. I don't think the way I am showing these views on one sheet would apply to real life work flows. I am trying to create worst case scenarios in hopes of learning the new abilities/ limitations in 2022.

 

Instead we might have short nozzle as separate sheet or separate drawing, than long nozzle, etc. And then use the Parts List filter to show only ballooned items, much as we did with View Reps in the past: Agreed

 

Curtis_W_1-1623771986017.png

 

It would be nice if there was a model state filter, or if the parts list would automatically set zero qty items as hidden, but neither of those options are there. Agreed

 

Curtis_W_3-1623772392555.png

 

Here are some notes on what you were seeing in your markup

 

Curtis_W_0-1623771500935.png

This confirms my suspicions. Thanks for the clarification.

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

 




Message 14 of 18

dg8MW9N
Contributor
Contributor

@Curtis_Waguespack 

Beauty! Thank You!

Message 15 of 18

dg8MW9N
Contributor
Contributor

Hi @Curtis_Waguespack ,

I am testing your iLogic and noticed that balloons attached to other balloons are not being included in the list.

Is there a way to include the them?

Thank you for your effort.

dg8MW9N_0-1623843152338.png

 

 

0 Likes
Message 16 of 18

Curtis_Waguespack
Consultant
Consultant
Accepted solution

Hi @dg8MW9N 

 

I think this will catch that situation, post back if you see anything else.

 

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

 

Dim oDrawDoc As DrawingDocument = ThisDoc.Document
Dim oSheet As Sheet = oDrawDoc.ActiveSheet
Dim oPartsList As PartsList

For Each oSheet In oDrawDoc.Sheets
	Try 
		oPartsList = oSheet.PartsLists.Item(1)
		Exit For
	Catch
	End Try
Next

If oPartsList Is Nothing Then
	MsgBox("no Parts list found",,"iLogic")
	Return
End If

Dim oBalloon As Balloon
Dim msg As String = ""
Dim oList As New ArrayList

For Each oRow As PartsListRow In oPartsList.PartsListRows
	oFlag = False
	'oItem = oRow.Item("ITEM").Value
	oItem = oRow.Item("ITEM NO.").Value
	For Each oSheet In oDrawDoc.Sheets
	    For Each oBalloon In oSheet.Balloons
			i = 1
			For Each BalloonValueSet In oBalloon.BalloonValueSets
				oItemNumber = oBalloon.BalloonValueSets.Item(i).ItemNumber
				i = i + 1
				
				s = "Item " & oItemNumber & " is ballooned"
				If oItem = oItemNumber Then
					If oList.Contains(s) = False Then
						oList.Add(s)
					End If
					oFlag = True
					Continue For				
				End If
			Next
		Next
	Next
	If oFlag = False Then 
		s = "Item " & oItem & " is NOT ballooned"
		If oList.Contains(s) = False Then
			oList.Add(s)
		End If
	End If
Next

i = 0
For Each oItem In oList
	msg = msg & oList(i) & vbNewLine
	i=i+1
Next

MsgBox(msg,,"iLogic")

 

Message 17 of 18

dg8MW9N
Contributor
Contributor

@Curtis_Waguespack 

This works perfectly. Thanks again!

Message 18 of 18

carl_gaufinLQM2B
Observer
Observer

Your solution works, great! How would one extend this principle and apply this logic to capture information from a drawing with multiple parts lists on it? I added a "for" statement to try and capture each parts list at the beginning of your nested for loop and created a variable to see how many times it goes through loop.

j = 0
'Now go through each line of the list and look for balloons on all of the sheets.
For Each oPlist As PartsList In oSheet.PartsLists ' I am trying to go through each part list
	j = j+1 ' This is counting part lists
	For Each oRow As PartsListRow In oPartsList.PartsListRows
		oFlag = False
		oItem = oRow.Item("ITEM").Value
					
		For Each oSheet In oDrawDoc.Sheets
		    For Each oBalloon In oSheet.Balloons
				i = 1 ........

The loop appears to work as the message box that appears at the end of the loop shows the number of loops it ran. However, when I try to print out all of the balloons and their location, I am only capturing the first parts list. I'm not sure how to capture the others in the final message box. Would this be better as a new topic so as to not muddy up this one?

0 Likes