I have created an iAssembly factory with 1000 members, when I try to generate all of the files for this iFactory I get a prompt for each member on save. Is there a setting to disable this prompt & automatically generate all members without my intervention? Using Inventor Professional 2019.
I saw the thread below, but cant find this option in 2019.
https://forums.autodesk.com/t5/inventor-forum/inventor-assembly-saving-dependents/td-p/5097790
Solved! Go to Solution.
Solved by philip1009. Go to Solution.
Solved by johnsonshiue. Go to Solution.
Hi! The prompt comes up when the iAssembly member is not the only file to be saved. If I were you, I would open the iPart factory -> select all members in the browser -> right-click -> Generate Files. Next go back to the iAssembly factory and save the assembly. Then, select all members in the browser -> Generate Files. You should not see the prompts.
Many thanks!
Thanks for your reply. I have defined quite a few iMates at assembly level which are required to be written back to the part members. Redefining the iMates at the part factory level looks like a better option to the current approach.
For future reference, there is no way to do this using the iMates defined at assembly factory level without a save prompt for each part member?
Another solution is to use iLogic to disable pop-ups while generating members. If you're not familiar with iLogic, let us know and we can help you set it up. Otherwise, here's the rule I use to generate all, a group, or single members of an iAssembly without getting bothered by that pop-up:
'Shortcut for Inventor Application. oApp = ThisApplication 'Shortcut for Document containing this rule. oDoc = ThisDoc.Document 'Turn on Silent Operation to deactivate all pop-ups. oApp.SilentOperation = True
'Turn on Error checking to skip to the end of the rule.
On Error Goto jmpEndRule 'Start a transaction in the change manager to save on memory operations. oTxn = oApp.TransactionManager.StartTransaction(oDoc, "iAssembly Generation") 'Shortcut for iAssembly Factory. 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 10 'Put the same number in both places to generate that single member. ' iAF.CreateMember(i) 'Next 'End Transaction in the change manager. jmpEndRule : oTxn.End 'Turn Silent Operation off to return user interface back to normal. oApp.SilentOperation = False
Make sure to save all your work in Inventor before running this rule, the only way to stop the rule while it's running is to close Inventor in Task Manager.
Thank you @philip1009 & @johnsonshiue .
I saved all the members of the iPart factory this morning & when I tried to generate members for the iAssembly factory the same prompt came up for some reason, but that iLogic has saved me a lot of time & heartbreak, much appreciated @philip1009 .
I didn't want to necro the old post b/c it's technically correct. But I do want to share a problem I just had and it's solution just in case others have it too. I don't know iLogic so maybe someone can shed some light on what's going on or maybe add code to fix it from happening.
Anyways, using the code above is specifically for iAssemblies btw.... The following code is for iParts and does the same thing, but for iParts ONLY. I save the rule as: "Disable popups and generate family (iPart only)"
'Shortcut for Inventor Application.
oApp = ThisApplication
'Shortcut for Document containing this rule.
oDoc = ThisDoc.Document
'Turn on Silent Operation to deactivate all pop-ups.
oApp.SilentOperation = True
'Turn on Error checking to skip to the end of the rule.
On Error GoTo jmpEndRule
'Start a transaction in the change manager to save on memory operations.
oTxn = oApp.TransactionManager.StartTransaction(oDoc, "iPart Generation")
'Shortcut for iAssembly Factory.
iAF = oDoc.ComponentDefinition.iPartFactory
'Activate this code to generate all members in the Factory.
For Each oRow As iPartTableRow 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 10 'Put the same number in both places to generate that single member.
' iAF.CreateMember(i)
'Next
'End Transaction in the change manager.
jmpEndRule : oTxn.End
'Turn Silent Operation off to return user interface back to normal.
oApp.SilentOperation = False
This works well. (I only replaced references to iAssembly to iPart so it's not magic.)
Now for the bug. With the iAssembly iLogic from @philip1009.
I had a problem where after I generated everything with the iLogic rule, I opened the .idw drawing and everything was perfectly fine. The Models were all correct and showed in their views. But the Parts List (BOM) Showed the same value for quantities for every variation. i.e. Assembly A had 10 of part #1 and Assembly B should have 8 of part #1. But the bug caused each assembly to keep the same qty.
So we did some digging and checked everything and every BOM in the assembly and the iFactory tables were still correct. But the options from the pull down for which assembly to pull from also gave us the bug.
Solution: I generated the files manually... (which in my case took 30 minutes due to the size and nature of my product & having to press enter for each dialog box) After which, the Parts Lists updated and everything was fixed.
Reason: My only conclusion was that maybe a error propagating and the iLogic rule was failing and according to the rule, "On Error GoTo jmpEndRule" which just closes the operation. Granted the rule running still took awhile to run, so I have no idea what and when it happened. But during my manual generation of the files, I didn't notice any errors either.
So if you have the same problem pop-up, now you know... And if you use these iLogic rules, now you know to check your Parts Lists to ensure they updated properly too. I rebooted after all this and the issues hasn't returned yet.
PS: If you know a way to modify the rule to open the error pop-up or something during the operation, please share. It could be helpful. 🙂
Model States is not a replacement for iParts / iAssemblies. It does not have all the same features yet and does not communicate well with our large currently in use libraries. 😞 https://forums.autodesk.com/t5/inventor-ideas/model-state-support-tabulated-parts-list/idc-p/11360616
This goes against the point of the question. How does one reduce the number of repetitive mouse clicks. Save should Save. not ask if you want to save.
This seems to be a pervasive issue with Inventor. How does one reduce the number of mouse clicks in general? I am new to Inventor but CAD user of 25+ years. Inventor seems to be geared toward novice users, persistently asking :"are REALLY sure you want to do that..."
How DOES one remove the constant need to confirm what one just did is what one wants to do. Inventor requires at least double the number of mouse clicks to accomplish the same thing as Solid Edge.
Please help! My hand and wrist aren't happy with all this redundant and entirely unnecessary clicking.
Hi Eric,
Many thanks for your feedback! I guess you are still trying to get used to Inventor. Indeed, in certain workflows, quite a few mouse clicks are required. However, I don't think it is a pervasive behavior. Your frustration is probably due to the fact that Inventor works differently than Solid Edge. I am not a SE expert but I am sure there are workflows requiring more mouse clicks than Inventor.
If you find Inventor hard to use, I suggest you try Fusion 360. Its modeling environment has many nice workflows requiring fewer clicks.
Many thanks!
Hi Eric,
I am sorry to disappoint you. I am not aware of a way to reduce mouse clicking on all workflows in Inventor. However, there are usually multiple ways to do things. Sometimes there are quicker ways to do things.
It seems that the your discussion deviates a bit from the original thread. Please start a new thread. Otherwise, it can get confusing.
Many thanks!