# FileBomRow A file BomRow is of type *PsObject* and represents a single row entry in the [CAD BOM](https://knowledge.autodesk.com/support/inventor-lt/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/InventorLT-Help/files/GUID-92B06567-5D26-4279-BBEE-51B09E673D7E-htm.html) from a file in Vault.\ The \$fileBomRow object is dynamically generated based on the *Properties* coming from the CAD BOM, and provides additionally all the members from its corresponding [File](/code_reference/objects/file).\ The *BOM specific properties* are named the same as in the CAD BOM, including whitespaces and starting with the *'Bom\_'* prefix. If you want to access such a property you have to enclose it in single quotes. ## Syntax ```{code-block} powershell :linenos: $bomRow.'Bom_Part Number' ``` The following properties are always added in addition to the [File](/code_reference/objects/file) members: ```{eval-rst} .. csv-table:: :header: "Type","Name","Description" "string","Bom_Number","The Part Number of the component. When the component has no Part Number, it is the component name." "int","Bom_RowOrder","The Order of the component in the BOM." "string","Bom_PositionNumber","The Position Number of the component in the BOM." "string","Bom_Unit","The Unit of Measure of the component (e.g. Each, inch, liter, kg,...)." "string","Bom_XRefTyp","The XRefTyp which specifies whether the component is internal or external in relation to the design file." "string","Bom_Structure","The BomStructure of the component can be Normal, Phantom, Purchased, Reference, DynamicPhantom or Inseperable." "double","Bom_Quantity","The `Quantity (QTY) `__ is the Total Quantity which is the Unit Quantity multiplied by the Item Quantity." "int","Bom_ItemQuantity","The `Item Quantity (Item QTY) `__ is the number of instances of a component in the BOM." "double","Bom_UnitQuantity","The `Unit Quantity (Unit QTY) `__ is the amount which each discrete instance of a component adds to the total quantity." ``` ## Localization \$fileBomRow is supporting this [feature](/multilingual_vault_support) > - all active properties can be accessed via the displayName > - all active properties can be accessed via \_SystemName **except:** the ones with guids (=user defined) ## Examples **Example of a 'Normal' bomRow** on an english environment: ```{code-block} powershell :linenos: Bom_RowOrder : 3 Bom_PositionNumber : 7 Bom_Number : ERP-41880947 Bom_Unit : Each Bom_ItemQuantity : 2 Bom_UnitQuantity : 1.2 Bom_Quantity : 2.4 Bom_XRefTyp : External Bom_Structure : Normal Bom_Author : B. ROEPKE Bom_KeyWords : Vault, Tutorial, Padlock Bom_Revision : A Bom_Category : Vault Sample Models Bom_Company : Autodesk, Inc. Bom_Cost Center : PRODUCT DESIGN Bom_Creation Time : 11.04.1976 22:30:33 Bom_Description : 164987124 Bom_Designer : B. ROEPKE Bom_Engineer : B. ROEPKE Bom_Cost : 17 Bom_Part Number : ERP-41880947 Bom_Project : PADLOCK Bom_Vendor : Autodesk, Inc. Bom_Checked By : B. ROEPKE Bom_Date Checked : 19.12.2002 08:09:56 Bom_Design Status : 3 Bom_Engr Approved By : D. BRISSON Bom_Engr Date Approved : 24.12.2002 08:09:56 Bom_Mfg Date Approved : 01.01.1601 00:00:00 Bom_User Status : RELEASED Bom_Catalog Web Link : http://www.autodesk.com/inventor/ Bom_Document SubType : {E60F81E1-49B3-11D0-93C3-7E0706000000} Bom_Document SubType Name : Assembly Bom_EquivalenceValue : 100002 Bom_Subject : Bach Bom_Manager : Georg Bom_Title : 2077753685 Classification : None _Classification : None Version : 3 _VersionNumber : 3 Comment : Property Edit _Comment : Property Edit Number of Attachments : Autodesk.DataManagement.Client.Framework.Vault.Currency.Properties.ImageInfo _NumManualAttachments : Autodesk.DataManagement.Client.Framework.Vault.Currency.Properties.ImageInfo Date Version Created : 19.04.2018 17:35:27 _DateVersionCreated : 19.04.2018 17:35:27 Created By : coolOrange _CreateUserName : coolOrange Checked In : 19.04.2018 17:35:27 _CheckInDate : 19.04.2018 17:35:27 File Name : Combo Assembly.iam _ClientFileName : Combo Assembly.iam IsCheckedOut : False ... Id : 138383 MasterId : 28630 PersistentId : PersistentMasterId : ``` **Example of a 'Purchased' virtual component** ```{code-block} powershell :linenos: Bom_RowOrder : 8 Bom_PositionNumber : 8 Bom_Number : SomeVirtualComponent Bom_Unit : Each Bom_ItemQuantity : 1 Bom_UnitQuantity : 1 Bom_Quantity : 100 Bom_XRefTyp : Internal Bom_Structure : Purchased Bom_Creation Time : 12/31/1600 23:00:00 Bom_Description : This is a virtual component Bom_Cost : 0 Bom_Part Number : SomeVirtualComponent Bom_Date Checked : 12/31/1600 23:00:00 Bom_Design Status : 0 Bom_Engr Date Approved : 12/31/1600 23:00:00 Bom_Mfg Date Approved : 12/31/1600 23:00:00 Bom_Material : Generic Bom_Stock Number : SOME_VIRTUAL Bom_EquivalenceValue : SomeVirtualComponent Bom_Content Center File : False IsCheckedOut : False ``` **Example of corrupt BOM where file of according row is not available any more in Vault** (got removed or purged) FileBomRows that are not resolvable to any existing Vault file only provide the *Bom_RowOrder* and *Bom_PositionNumber* properties. Trying to access other properties on those rows can throw a *MissingCadBomException* or a *CorruptCadBomException*, even if those are suppressed from powerShell by default. ```{code-block} powershell :linenos: # foreach($prop in $bomRow.psobject.properties) { # try { # # this forces the exception to be thrown # $value = $prop.get_Value() # } catch [Exception] { # $bomRow | Add-Member -MemberType NoteProperty -Name $prop.Name -Value $prop.Value-Force # } # } Bom_RowOrder : 1 Bom_PositionNumber : 1 Bom_ItemQuantity : 2 Bom_XRefTyp : External Bom_Number : # throws: coolOrange.VaultServices.Vault.FileBom.InvalidFileBom+CorruptCadBomException: : Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_Unit : # throws: coolOrange.VaultServices.Vault.FileBom.InvalidFileBom+CorruptCadBomException: : Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_UnitQuantity : # throws: coolOrange.VaultServices.Vault.FileBom.InvalidFileBom+CorruptCadBomException: : Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_Quantity : # throws: coolOrange.VaultServices.Vault.FileBom.InvalidFileBom+CorruptCadBomException: : Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_Structure : # throws: coolOrange.VaultServices.Vault.FileBom.InvalidFileBom+CorruptCadBomException: : Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... IsCheckedOut : False ```