Need to display table for long ipart table

Need to display table for long ipart table

karthur1
Mentor Mentor
2,916 Views
21 Replies
Message 1 of 22

Need to display table for long ipart table

karthur1
Mentor
Mentor

I have an ipart with more that 1000 member rows. I would like to see the table so that I can generate the members.  One limitation they have put in iparts is the table will only display if there are fewer than 1000 members.  In older versions of Inventor, I could add a DWORD (MaxRowInBrowser) to the proper folder in the system registry to temporarily overcome this limitation.  The registry location that I used in the past was:

HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion xx\System\Preferences\Catalog

 

I just tried to add this with Inventor 2018 and the "Catalog" folder is not there, so I am not sure now where to add this new DWORD.

 

Can someone tell me what the proper folder would be?

 

Thanks

 

0 Likes
Accepted solutions (1)
2,917 Views
21 Replies
Replies (21)
Message 2 of 22

philip1009
Advisor
Advisor

I think if it were possible to display larger tables Autodesk would have already activated that feature.  In case the solution can't be found in the registry, the next best solution is iLogic.  Here's the code I use to generate the members of an iAssembly Factory:

 

oDoc = ThisDoc.Document
oTxn = ThisApplication.TransactionManager.StartTransaction(oDoc, "iAssembly Generation")
iAF = oDoc.ComponentDefinition.iAssemblyFactory

'Activate this code to generate all members in the Factory.
For Each oRow As iAssemblyTableRow In iAF.TableRows
	iAF.CreateMember(oRow)
Next

'Activate this code to generate single members or a group of members based on row numbers.
'For i = 1 To 1500
'	oDoc.ComponentDefinition.iAssemblyFactory.CreateMember(i)
'Next

oTxn.End

 

And here's the same code for iPart Factory:

oDoc = ThisDoc.Document
oTxn = ThisApplication.TransactionManager.StartTransaction(oDoc, "iPart Generation")
iPF = oDoc.ComponentDefinition.iPartFactory

'Activate this code to generate all members in the Factory.
For Each oRow As iPartTableRow In iPF.TableRows
	iPF.CreateMember(oRow)
Next

'Activate this code to generate single members or a group of members based on row numbers.
'For i = 1 To 1500
'	oDoc.ComponentDefinition.iPartFactory.CreateMember(i)
'Next

oTxn.End

 

While using the code, keep an eye on your RAM usage via Task Manager etc.  I've found that when RAM usage for Inventor goes above 4GB the generation starts to slow down.  At that point, close Inventor via Task Manager, put the row number to start from, then let it keep going.

0 Likes
Message 3 of 22

karthur1
Mentor
Mentor

Thanks for that, but I already have a code to do that.  I already have all but a few new members generated.  It will take a while to generate all of them.  Just thought it would be faster to generate the ones I need.

0 Likes
Message 4 of 22

cbenner
Mentor
Mentor
0 Likes
Message 5 of 22

philip1009
Advisor
Advisor

I think this is about displaying the list of members in the model browser so each member can be right-clicked and generated without having to resort to iLogic or other methods.

0 Likes
Message 6 of 22

johnsonshiue
Community Manager
Community Manager

Hi Kirk,

 

The old trick should still work. You just need to manually add the registry folder and key. If I recalled correctly, the restriction has been removed on 2019 and 2020.

Many thanks!



Johnson Shiue ([email protected])
Software Test Engineer
Message 7 of 22

karthur1
Mentor
Mentor

Johnson,

I tried adding the missing folder and key, but no joy.  I got around it by just adding the new members to a temporary iam file.

 

Thanks,

Kirk

0 Likes
Message 8 of 22

johnsonshiue
Community Manager
Community Manager
Accepted solution

Hi Kirk,

 

It should work. You may need to edit the table after you add the registry key so that the member rows all appear in the browser. Also, it only works for List by Member, not List by Keys.

Many thanks!



Johnson Shiue ([email protected])
Software Test Engineer
Message 9 of 22

karthur1
Mentor
Mentor

After I added the registry hack....I had to add a row in my table before it would display.

 

Thanks

0 Likes
Message 10 of 22

philip1009
Advisor
Advisor

Are there plans to add this function to List by Keys in the future?  Is there a reason why this isn't enabled by default instead of having to do some registry hack?

0 Likes
Message 11 of 22

johnsonshiue
Community Manager
Community Manager

Hi! If I recalled correctly, iPart/iAssembly was built in 32-bit machine days with only up-to 3GB RAM allowed and limited graphics. The limit was added to avoid performance hit when the number of nodes is large. Now, any decent PC is like a super computer in the old days. The limitation is irrelevant now. I recall we remove the restriction in 2019. You don't need the registry key to see all rows. It should work for List as Key too.

Many thanks!

 



Johnson Shiue ([email protected])
Software Test Engineer
0 Likes
Message 12 of 22

philip1009
Advisor
Advisor

I'm on 2019.3 and once I go over roughly 1000 rows none of the members are selectable in the model browser.  I have to open the table and Set As Default Row in order to switch between members and resort to iLogic to generate members.

0 Likes
Message 13 of 22

johnsonshiue
Community Manager
Community Manager

Hi! I am sorry for my bad memory. I just checked the internal defect. The issue was resolved on 2020, not 2019. For 2019 and earlier, you still need to use the registry setting.

Many thanks!

 



Johnson Shiue ([email protected])
Software Test Engineer
Message 14 of 22

karthur1
Mentor
Mentor

@johnsonshiue wrote:

Hi! I am sorry for my bad memory. I just checked the internal defect. The issue was resolved on 2020, not 2019. For 2019 and earlier, you still need to use the registry setting.

Many thanks!

 


Johnson,

I am using 2020.2 now and just opened a large ipart with 1008 rows.  The table is not shown.  Just to see, I added a row to the table, but that did not help.

 

2020-02-05_1022.png

 

0 Likes
Message 15 of 22

johnsonshiue
Community Manager
Community Manager

Hi Kirk,

 

It seems to work for me. I am able to show all 1000+ members in the browser. Did you set it to List by Member? I don't think it will work if it is List by Key (even with the registry hack before).

If it still does not work, please send the file to me directly ([email protected]). I would like to understand the behavior better.

Many thanks!



Johnson Shiue ([email protected])
Software Test Engineer
Message 16 of 22

karthur1
Mentor
Mentor

Just sent you the ipart.

 

Thanks

0 Likes
Message 17 of 22

johnsonshiue
Community Manager
Community Manager

Hi Kirk,

 

Many thanks for sending me the file! Like we discussed in the email, the reason why the 1000+ members are not shown is because of the Key columns. When there are Key columns, the number of rows shown is always limited to 1000 or less regardless of 2020 or 2019 with registry key.

To show all the 1000+ member rows, you need to remove the keys from the table.

Thanks again!

 



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

Anonymous
Not applicable

Just out of curiosity : why and how can an iPart need this number of entries ?

0 Likes
Message 19 of 22

karthur1
Mentor
Mentor

We use it for bolt families of structural fasteners (ASTM A325, A490... etc) .  Different diameter, length, material grade, finish can run up the number of occurances pretty quickly.

0 Likes
Message 20 of 22

johnsonshiue
Community Manager
Community Manager

Hi Alex,

 

We do have enterprise customers having a large collection of similar parts or assemblies. These parts may have subtle differences but they carry different part numbers.

Another way to look at it is the fact that you do need to elaborate all the permutations. For example, if you have a part family with 30 different lengths  and 30 different widths. Assuming each length can pair with any width, you will have 900 members. The more variations, the bigger the table becomes. Plus, there could be non-geometric differences. It is quite easy to get a large table.

Many thanks!



Johnson Shiue ([email protected])
Software Test Engineer
0 Likes