# FileBomRow A file BomRow is of type *PsObject* and represents a single row entry in the [CAD BOM]() 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]() (except for *Virtual Components*).\ 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 ```powershell $bomRow.'Bom_Part Number' ``` The following properties are always added in addition to the [File]() members: | 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. It doesn't really affect the BOM structure, but it helps with sorting rows.
`0` for components for which no information is available in the Structured BOM View (e.g. [Structured View disabled]())| | string | Bom_PositionNumber | The Position Number of the component in the BOM.
Empty for components for which no information is available in the Structured BOM View (e.g. [Structured View disabled]())| | 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 of the occurrence calculated based on the components Item Quantity, its Unit Quantity and overridden component Quantities. | | 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. | | string | Bom_ModelState | The [model state]() name of the used component in the BOM.
"Master" specifies the primary model state and is also returned for files without associated model states.| ## Localization \$fileBomRow is supporting this [feature]() > - 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 bomRow** (on an english environment): ```powershell 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_ModelState : Master 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 : ThinClientHyperLink : http://localhost/AutodeskTC/Vault/explore/file/28630 ThickClientHyperLink : http://localhost/AutodeskDM/Services/EntityDataCommandRequest.aspx?Vault=Vault&ObjectI d=%24%2FDesigns%2FCombo+Assembly.iam&ObjectType=File&Command=Select ``` **Example of a bomRow for a Virtual component** (provides only CAD BOM properties): ```powershell 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_ModelState : 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 ``` **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 can only provide part of the Bill of Materials data, such as the *Bom_RowOrder* and the *Bom_PositionNumber*.\ Accessing other properties on those rows can throw a *MissingCadBomException* or a *CorruptCadBomException*, even if those are suppressed from PowerShell by default. ```powershell # 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.CorruptCadBomException: Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_Unit : # throws: coolOrange.VaultServices.Vault.FileBom.CorruptCadBomException: Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_UnitQuantity : # throws: coolOrange.VaultServices.Vault.FileBom.CorruptCadBomException: Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_Quantity : # throws: coolOrange.VaultServices.Vault.FileBom.CorruptCadBomException: Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_Structure : # throws: coolOrange.VaultServices.Vault.FileBom.CorruptCadBomException: Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... Bom_ModelState : # throws: coolOrange.VaultServices.Vault.FileBom.CorruptCadBomException: Please checkout and re-checkin the file 'CorruptFileBom.iam' (Id: 138296) ... ```