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.

An Autodesk Inventor parts List generated from a Bill of materials

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

The Autodesk Inventor BOM ButtonBegin 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.

Add A Custom iProperty Column

In this example I will call our custom iProperty field #ITEM To distinguish it from the standard ‘Item Number column.

Adding a Custom iProperty 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.

Autodesk Inventor Run time choose BIM columns

Simply drag and drop your custom column into place in the BOM manager.

Drag and drop a custom column into 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…

Copy the item Nos

..and the paste the Item Numbers into the #ITEM Numbers column.

Paste the items numbers into the ITEM numbers field

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 Autodesk Inventor Style Editor

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’.

Creating a new Balloon 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.

Naming the new Balloon style

 In the Balloon style Dialogue – click on the ‘Property Chooser’ Button.

Editing the property Display Value

In the Property Chooser Dialogue, click on ‘New Property’.Adding a new property in the Inventor property chooser

In the ‘Define New Property’ Dialogue add the name of custom Field – ‘#ITEM’

(I told you that we would need to remember it later!)

Adding a custom iProperty to the Balloon style

 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.

Adding the Custom Feild

The Balloon Formatting is out new FeildWhen 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

Using the #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!

The Autodesk Inventor Model Browser TreeYou 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!

An Autodesk Inventor Drawing with a Coordinated BOM

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.

26 Responses to “Autodesk Inventor, Creating a coordinated BOM for Large Assemblies

  • Damien
    8 years ago

    Just wanted to say Thank you, Very helpful.

  • Cliff
    9 years ago

    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

  • Paulo Chaves
    9 years ago

    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.

  • Johannes
    10 years ago

    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 :)

    • James Smith
      8 years ago

      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

      • Jeremy
        8 years ago

        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

  • Peterson Magro
    12 years ago

    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.

      • James Smith
        8 years ago

        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

  • 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

        • Elroy Beauzec
          7 years ago

          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

  • Johan M
    13 years ago

    2 tips in 1 day
    first you  and then
    http://beinginventive.typepad.com
    this gone be my lucky day…..

    Johan

  • Johan M
    13 years ago

    Like this tip…