Autodesk Inventor, Creating a coordinated BOM for Large Assemblies
I’ve been creating some pretty huge assemblies with Autodesk Inventor lately, and It’s really been bogging my machine down.
This handy workaround has saved me time and frustration when adding Part number Balloons and Parts lists to my large assembly drawings.
This tip was inspired by this post by Eric Small on MCADForums:
In the Joinery Industry we don’t do many ‘Piece Part’ drawings – one stick of wood is pretty much the same as another right! Almost every drawing we create is an assembly drawing, and no drawing is complete without item numbers and a cutting ticket.
Creating a coordinated BOM
Creating a coordinated ‘Bill of Materials’ (or BOM) with Inventor is pretty straight forward. The usual way is to put all your Parts and Sub-assemblies into one ‘Master’ Assembly. The BOM is created from this ‘Top level’ or ‘Parent’ Assembly, which in turn is used to create the parts list (or in our case – the Cutting Ticket).
Large Assembly management
However this can create some pretty large assemblies which in turn can place a massive load on your computer, increasing file load times and making drawings pretty unwieldy.
Autodesk Inventor’s ‘LOD’s’ (Level of details) are a great tool for managing large Assemblies. The trouble is that, even if you have created your drawings from your carefully constructed LOD’s, as soon as you place an Item Balloon on your drawings Inventor will immediately load in all the parts that you had filtered out with your LOD!
A Large Assembly BOM Workaround
The trick here is to ‘Push’ the item numbers from the Coordinated BOM down to the part level, and it’s pretty simple when you know how!
We will work through the following steps:
- Create Parts and Assemblies as usual
- Name, sort and arrange Master BOM
- Number Parts
- Create a Custom Parts Field
- Copy the Item numbers into your Custom Field
Creating The Master BOM
Begin by creating your parts and assemblies as usual. Place all your components into your Master assembly and fire up the BOM manager.
Assemble Tab > Manage Panel > Bill of Materials
In this example I am using the ‘Parts Only’ representation in the BOM. Follow your usual steps of naming, arranging and sorting the BOM to your satisfaction. Now comes the trick – create a custom iProperty Field and copy and paste your item numbers into it.
Creating A Custom iProperty Field
To create a custom iProperty Field in your Bill of Materials, click on the ‘Add Custom iProperty Columns’ Button in the BOM manager.
In this example I will call our custom iProperty field #ITEM To distinguish it from the standard ‘Item’ Number column.
Tip: Make your custom name something you will remember – we will need it later.
You may need to use the ‘Choose Columns’ button to add your new iProperty column to the BOM manager.
Simply drag and drop your custom column into place in the BOM manager.
Copying the BOM item numbers into the Individual Parts
Now Highlight the Item numbers from your perfectly organised BOM, right click and chose copy…
..and the paste the Item Numbers into the #ITEM Numbers column.
When you save your master assembly the custom field will be written into every part file in your assembly.
You can now create drawing views of single part files and sub assemblies, confident that you can reference this coordinated part number directly from the component.
Creating a custom Item Number Balloon
The final step is to create a copy of your Balloon style that uses your new Custom Item Number field. Create a new drawing and fire up the Styles and Standards manager.
Manage Tab > Styles and Standards Panel > Styles Editor
Right Click on the Balloon style you want to copy and chose ‘New Style’.
The new style will be a copy of the style you picked. In the Pop up box that follows name your new style. I’ve called this one ‘Balloon (ISO) #ITEM’ to remind us of our Custom Field.
In the Balloon style Dialogue – click on the ‘Property Chooser’ Button.
In the Property Chooser Dialogue, click on ‘New Property’.
In the ‘Define New Property’ Dialogue add the name of custom Field – ‘#ITEM’
(I told you that we would need to remember it later!)
Back in the Property Chooser Dialogue, our new Field will have been added to the selected properties list box.
Use the ‘Move Down’ and ‘Move Up’ buttons to re order the list, and the ‘<-Remove’ button to remove the old ‘ITEM’ value that we don’t need any more.
When you return to the Balloon style Dialogue the ‘#ITEM’ value should be shown in the ‘Balloon Formatting Box’.
Close and save the new addition to your Style.
Tip: We have created this new style Locally, don’t forget to save it back to your company standard if you want to share it with others.
Using your new #ITEM Number Balloon Style
To use your new Balloon style click:
Annotate Tab > Table Panel > ‘Balloon’
Tip: Don’t forget to chose the correct Balloon style from the ‘Format’ Tab before you place your Balloons!
A Coordinated BOM from Part, Subassembly and Assembly Files!
You can see from this screen shot of the drawing browser tree that I have created this drawing from a Part, a Subassembly and the main Assembly.
And the parts list is coordinated across them all!
In Conclusion
Obviously, this is not a good technique if you are using some of your parts in multiple assemblies, and if your PC is powerful enough to manage your assemblies without resorting to this work around then that’s great!
However, if like me, you have ideas above your station – then this is a good workaround to know about :)
Thanks very much to Eric Small and the crew on MCADforums and the Autodesk Discussion groups. Click on the links to join in the discussion.
Read ‘Assembly techniques for Woodworkers’ for more on dealing with Large Assemblies.
Just wanted to say Thank you, Very helpful.
You’re welcome Damien :)
Hi,
Just wanted to say thanks for posting this tip. I have been looking for this workaround for some of my larger assemblies to speed things up and reduce human errors from mislabeling
Thanks, Cliff
You are welcome Cliff :)
Paul greetings!
I wonder if there is a possibility after having made a change in the format of the column I can change one line only this coliuna because when you make a change to any column is in cyan color.
Please help me.
Thank you for your attention.
Hi Paulo,
Can I check? Are you talking about the BOM or the Parts list?
Paul
If you need some iLogic to automate the whole copy/paste thing I found this very usefull: http://forums.autodesk.com/t5/inventor-customization/qty-in-bom/m-p/4601723#M47076
That’s great stuff! Thanks Johannes :)
Doesn’t push to iparts.
This code does but I can’t get it to work with ItemNumber
Dim openDoc As Document
openDoc = ThisDoc.Document
Dim docFile As Document
If openDoc.DocumentType = kAssemblyDocumentObject Then
For Each docFile In openDoc.AllReferencedDocuments
If docFile.IsModifiable = True Then
Dim assemblyDoc As AssemblyDocument
assemblyDoc = openDoc
Dim assemblyDef As AssemblyComponentDefinition
assemblyDef = assemblyDoc.ComponentDefinition
Dim partQty As ComponentOccurrencesEnumerator
partQty = assemblyDef.Occurrences.AllReferencedOccurrences(docFile)
Dim customPropSet As PropertySet
Dim customProp As Inventor.Property
Dim propertyName As String
Dim propertyValue As Integer
customPropSet = docFile.PropertySets.Item(“Inventor User Defined Properties”)
propertyName = “TotalQty”
Try
propertyValue = customPropSet.Item(propertyName).Value
If PartQty.Count propertyValue Then
customPropSet.Item(propertyName).Value = PartQty.Count
End If
Catch ex As Exception
customProp = customPropSet.Add(PartQty.Count, propertyName)
End Try
End If
Next
Else
MessageBox.Show(“You must have a valid Assembly document open before using this code!”, “File Type Mismatch!”,MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
End If
Did you ever figure out how to get this to work with the Item Number property? I am in need of the same macro…
Hi Tim,
That’s a really good question!
In general, all points as they are seen on the AutoCAD screen will export to CNC. Lines and arcs also export as seen – but splines don’t, because there is more than one way to calculate a spline through a series of points mathematically.
Would you post your question here?
https://forums.autodesk.com/t5/autocad/ct-p/8
It would be great to get some more experience on it!
Paul
Nice tip Paul, thanks!
Follow your technique, what do you do with Content Center and library files?
I’ve tried to add #item custom parameter to them but it’s read only for this.
I’ve thinking about reused parts/assemblies problems. For it, we can create a custom parameter like ITEM_CV17218 (ITEM_) and populate in each assembly. Them we have a single custom parameter for each large assembly, easy to identify and to be used in a specific drawing assembly.
What do you think?
Regards!
peterson
Hi Peterson,
You are right – this technique doesn’t work well for Content centre and library files.
Recently I’ve been beginning to think along the same lines as you. The item No. should refer to the item on that drawing sheet or set of drawings only. For a unique project wide ID No. a unique part number should be used.
This makes more sense from a file/data management point of view and can be automated if you are using Vault.
Let me know how you get on!
Paul.
Paul!
I know this an old post now but I found some code that does push to every part file including iparts…. But… I can’t get it to work with Item Number.
Do you think you could edit this to work with your above tutorial?
Dim openDoc As Document
openDoc = ThisDoc.Document
Dim docFile As Document
If openDoc.DocumentType = kAssemblyDocumentObject Then
For Each docFile In openDoc.AllReferencedDocuments
If docFile.IsModifiable = True Then
Dim assemblyDoc As AssemblyDocument
assemblyDoc = openDoc
Dim assemblyDef As AssemblyComponentDefinition
assemblyDef = assemblyDoc.ComponentDefinition
Dim partQty As ComponentOccurrencesEnumerator
partQty = assemblyDef.Occurrences.AllReferencedOccurrences(docFile)
Dim customPropSet As PropertySet
Dim customProp As Inventor.Property
Dim propertyName As String
Dim propertyValue As Integer
customPropSet = docFile.PropertySets.Item(“Inventor User Defined Properties”)
propertyName = “TotalQty”
Try
propertyValue = customPropSet.Item(propertyName).Value
If PartQty.Count propertyValue Then
customPropSet.Item(propertyName).Value = PartQty.Count
End If
Catch ex As Exception
customProp = customPropSet.Add(PartQty.Count, propertyName)
End Try
End If
Next
Else
MessageBox.Show(“You must have a valid Assembly document open before using this code!”, “File Type Mismatch!”,MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
End If
Hi James,
I recommend that you post this on the Autodesk Forums. If you do – post a link here so that I can follow your progress!
https://forums.autodesk.com/t5/inventor-customization/bd-p/120
Paul
Thanks.
Another way I use, is to eliminate item numbers and part numbers from BOM columns altogether and just use filenames in part lists and BOM balloons.
Just rely on the description and other iproperties for the remaining details.
That way the file name is always current regardless of changes or addition of parts or assemblies.
Does anyone know how to create an ‘assemblies only’ BOM list which ignores ‘first level’ or ‘structure’ and tallies up all the assemblies within assemblies to output total quantities of assemblies? similar to ‘parts only’..
That’s a great suggestion Max.
A lot of engineering companies use the part number to track the part in their manufacturing and stock control process. The item number is simply the item number in that particular assembly. The same part can be used in many different assemblies.
I can see swapping out the file name with the item number would work if every part in the project is unique and won’t be used elsewhere.
I think that the only way to call out assemblies only would be to declare the assembly ‘Purchased’ or ‘Inseparable’. This would stop Inventor promoting the parts up the tree.
If you only wanted the assembly to be Inseparable in some instances, you could place it inside a container assembly, and apply the BOM change to the container instead.
Is that any help?
Paul.
I
see what you’re saying thanks Paul, I have tried those options is the past but unfortunately
they don’t suit my workflow.
For
example, I do one off large scale structural steel buildings consisting of
40,000 components. I have multiple clients and the parts / assemblies aren’t
shared between projects or I end up with cataclysmic reference issues.
Once
the drawings are complete, I then have to place bulk orders for components from
respective suppliers and need to separate and filter these lists quickly and
accurately ie: plates + beams + columns + purlins + miscellaneous fabricated
ie; machined + miscellaneous ‘purchased’ + fastener ‘purchased’ (I always set fasteners
as ‘purchased’ to easily filter, hence why that option for me is already exhausted)
etc.
I
currently haphazardly sort massive total quantity part or sub-assembly lists by
description of material so that they then group per a relevant supplier.
I
then export to an excel spread sheet and further refine.
My
wish is if I could have multiple BOM lists on the drawings that could be
parametrically referenced for purchasing without any edit or process.
The
problem I find with Inventor, is it doesn’t have many options to segregate /
filter items via description or entity etc when it comes to the complete job –
it mixes the lot.
It
really needs unlimited custom filters and the ability to tally up total assembly
instances regardless of structure for the task of purchasing in bulk.
For
example, if you had a large building assembly and located in this assembly you
had 50 large structural steel room assemblies of various sizes. Some rooms
might have 1 door and other rooms may have two or more doors, and each door has
a door handle assembly.
Let’s
say you need to quickly order all the door handle assemblies in the next 10
minutes! How would you tally up all the door handle assembly quantities quickly?
If
there are 400 drawings for the job, Inventors current work flow forces the user
to analyse each drawing and manually tally up all the door handle assembly quantities.
PS
I would consider the door handle a ‘miscellaneous purchased item’ and would not
want it mixed with the ‘fastener purchased items’ group mentioned above because
they are purchased from separate suppliers.
The
reason I want the door handle to be an assembly is because it may need a
spindle or handle to be replaced under warranty etc.
I
currently compete with specialized structural steel programs such as X-Steel
and Pro-Steel or even AutoCAD Structural Detailing which effortlessly produce categorized
assembly and part order list groups with final quantities.
I
also still need to rely on the default Inventor assembly / BOM list structure etc. and find it
unpractical to go down the path of manually creating ‘Inseparable’ items and
maintaining the default assembly / BOM
list structure.
I
guess, why would anyone say just purchase Pro-Steel etc? reason being is I’ve
invested 4 years in Inventor Ultimate subscription + still do sheet metal + mechanical
type jobs.
Really
appreciate you help, I have exhausted many avenues trying to find myself a
solution. Would you know of any third party BOM list software that might give
this flexibility? Vault maybe? – don’t use Vault because I’m a single user and
checking files in and out is extra work for nothing for me.
Or
a way to re-write the API to copy and replicate the ‘parts only’ BOM option and
modify it to ‘assembly only’ option? + given the ability to create unlimited BOM
custom filters?
Max,
I think that exporting your BOM to Excel is probably the easiest way to achieve what your after. Don’t forget that you can round trip this information back into Inventor by using a general table that references the spreadsheet.
This means that keeping the spreadsheet up to date is an issue, so you could use a little iLogic code to keep this up to date.
Another option would be to consider using view reps with a parts list filter. Once you’ve created a view rep in your assembly file you can then reference this as a filter in your parts list.
Finally, have you explored parts list grouping? This allows you to group parts together by a value from the column.
The ability to create your own custom filters would be very handy…
Paul
Thanks Paul,
Just to mention if there is anybody out there who wants to combine and calculate their total assemblies in excel – use the ‘consolidate’ command.
Hmm, iLogic, did a few of the tutorials in the past, but that one is in the ‘not enough time and too hard basket’ for me and the risks are too high if I supply my clients with incorrect part calculations given the size of my lists.
View reps requires too much maintenance and opening and closing of large assemblies.
Parts list grouping – I don’t use parts numbers, I only have the need for one entity, which is filename – easy to track from physical to drawing reference.
I am going to trial creating a custom iproperty called ‘category’, then sort the various BOM part lists alphabetically. Then I can easily select the items I don’t want and turn off their visibility. Then sort the residual filenames numerically – which will give me what I want.
However, all these methods are manual and require maintenance.
Sorry for being an ungrateful sod!
If only Autodesk were listening, it could be so easy..
Max
Interesting stuff Max, Let us know how you get on.
If you find the time to look into iLogic, check out Curtis Waguespack’s Blog for some great examples:
http://inventortrenches.blogspot.com/2011/04/using-excel-and-ilogic-to-retrieve-part.html
I think that the way to approach it would be to use iLogic to export your BOM to a target spreadsheet, which you then couple to a second tab in the same spreadsheet – which is what you use to perform your sorting on.
The iLogic code would overwrite the first Tab each time, and would just be used to Automate the updating of the information so that it doesn’t go out of sync.
Sounds like fun!
Paul
Max,
I find it very interested to see you are using Inventor for large scale construction projects. I am SMP design drafter working on capital projects in process plants. The company I work for would like us to use Inventor for everything across the disciplines. However, I cant see that working. I just don’t see Inventor as multi disciplined tool how AutoCAD was used. My opinion is that it is a mechanical desktop replacement. I am a big believer in using disciplined purposed software e.g. Inventor for mechanical components, Plant 3D for piping systems and Advance Steel for structural constructions in a integrated workflow. I just cant see how Inventor can compete for these software.
I would be interested to know your workflow to create stairs, handrails, connections, etc. and if you have any success with it. Do you use a combination of i-logic, i-copy, i-parts and i-assemblies? I cant find too much information on workflow for structural construction projects. Any information or help would be appreciated.
Regards
Elroy
Hi Elroy,
Inventor can be used for designing all of those things, but it’s not optimised for the purpose!
We have tube and pipe for designing piping, we have frame generator for designing frames, we have the link with AutoCAD electrical for designing wiring looms etc
However, the intention is that Inventor is used to design industrial, mechanical and transportation items – not necessarily structures.
You are right, that Plant 3D is much better for designing large scale process plants, Advanced Steel is much better for designing structures and so on, these products are optimised for the purpose.
The advantage of doing all of this in Inventor is that it is only one package for all disciplines to learn, and only one package for the company to pay for and maintain. The disadvantage is having to do a lot of stuff (Stairs and Railings for example) manually, or build up your own library of parametric components.
I have the most success by turning the question around.
‘What do we do?’
‘What process do we know well enough to automate?’
‘What CAD package will help us to automate these processes?’
People > Process > tools – in that order, rather than starting with the tool and trying to shoe horn it into the process, and expecting people to cope!
Does that help?
Paul
2 tips in 1 day
first you and then
http://beinginventive.typepad.com
this gone be my lucky day…..
Johan
Like this tip…
Thanks Johan!