Autodesk
Options d'achat
Confidentialité | Préférences de cookies | Signaler une infraction | Conditions générales d’utilisation | Mentions légales (anglais) | © 2025 Autodesk, Inc. Tous droits réservés. | Impressum
Bonjour,
je souhaiterais extraire les données de la nomenclature à partir d'une règle Ilogic pour les attribués à des propriété personnalisées ou les récupérer en tant que tel. Pourriez vous me mettre sur la piste des fonctions utiles a cela ?
par exemple obtenir l'inventaire des propriétés de la nomenclature et cela à partir de la rubrique pièce uniquement ou bien structure...
Un exemple je voudrais attribué à une propriété de la pièce la quantité total d'article relevée dans la nomenclature de l'assemblage...
D'avance je vous remercie
Résolu ! Accéder à la solution.
Salut @BenjaCmoi
Ci-dessous un extrait de l'aide de l'API à disposition ici :
Public Sub BOMQuery()
' Set a reference to the assembly document.
' This assumes an assembly document is active.
Dim oDoc As AssemblyDocument
Set oDoc = ThisApplication.ActiveDocument
Dim FirstLevelOnly As Boolean
If MsgBox("First level only?", vbYesNo) = vbYes Then
FirstLevelOnly = True
Else
FirstLevelOnly = False
End If
' Set a reference to the BOM
Dim oBOM As BOM
Set oBOM = oDoc.ComponentDefinition.BOM
' Set whether first level only or all levels.
If FirstLevelOnly Then
oBOM.StructuredViewFirstLevelOnly = True
Else
oBOM.StructuredViewFirstLevelOnly = False
End If
' Make sure that the structured view is enabled.
oBOM.StructuredViewEnabled = True
'Set a reference to the "Structured" BOMView
Dim oBOMView As BOMView
Set oBOMView = oBOM.BOMViews.Item("Structured")
Debug.Print "Item"; Tab(15); "Quantity"; Tab(30); "Part Number"; Tab(70); "Description"
Debug.Print "----------------------------------------------------------------------------------"
'Initialize the tab for ItemNumber
Dim ItemTab As Long
ItemTab = -3
Call QueryBOMRowProperties(oBOMView.BOMRows, ItemTab)
End Sub
Private Sub QueryBOMRowProperties(oBOMRows As BOMRowsEnumerator, ItemTab As Long)
ItemTab = ItemTab + 3
' Iterate through the contents of the BOM Rows.
Dim i As Long
For i = 1 To oBOMRows.Count
' Get the current row.
Dim oRow As BOMRow
Set oRow = oBOMRows.Item(i)
'Set a reference to the primary ComponentDefinition of the row
Dim oCompDef As ComponentDefinition
Set oCompDef = oRow.ComponentDefinitions.Item(1)
Dim oPartNumProperty As Property
Dim oDescripProperty As Property
If Typeof oCompDef Is VirtualComponentDefinition Then
'Get the file property that contains the "Part Number"
'The file property is obtained from the virtual component definition
Set oPartNumProperty = oCompDef.PropertySets _
.Item("Design Tracking Properties").Item("Part Number")
'Get the file property that contains the "Description"
Set oDescripProperty = oCompDef.PropertySets _
.Item("Design Tracking Properties").Item("Description")
Debug.Print Tab(ItemTab); oRow.ItemNumber; Tab(17); oRow.ItemQuantity; Tab(30); _
oPartNumProperty.Value; Tab(70); oDescripProperty.Value
Else
'Get the file property that contains the "Part Number"
'The file property is obtained from the parent
'document of the associated ComponentDefinition.
Set oPartNumProperty = oCompDef.Document.PropertySets _
.Item("Design Tracking Properties").Item("Part Number")
'Get the file property that contains the "Description"
Set oDescripProperty = oCompDef.Document.PropertySets _
.Item("Design Tracking Properties").Item("Description")
Debug.Print Tab(ItemTab); oRow.ItemNumber; Tab(17); oRow.ItemQuantity; Tab(30); _
oPartNumProperty.Value; Tab(70); oDescripProperty.Value
'Recursively iterate child rows if present.
If Not oRow.ChildRows Is Nothing Then
Call QueryBOMRowProperties(oRow.ChildRows, ItemTab)
End If
End If
Next
ItemTab = ItemTab - 3
End Sub
Thomas
Mechanical Designer / Inventor Professionnal 2025
Magniiiiifique @ThomasB44 ! 🙏Je connaissais pas cette rubrique d'aide 🙂 CA! ca va m'aider. MERCI 🙂
Bon weekend
Bonjour @BenjaCmoi
Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton APPROUVER LA SOLUTION en bas de la réponse qui apporte une solution?
Cela facilitera la navigation de nos utilisateurs qui pourront directement atteindre la solution
Sachez qui si vous avez marqué une réponse comme solution par erreur, vous pouvez annuler ce marquage en cliquant sur le menu du fil (les trois points verticaux) et choisir "pas la solution"
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.
Bonjour @BenjaCmoi
Je viens d'accepter certaines réponses de @ThomasB44 comme une solution, étant entendu que le problème est résolu. N'hésitez pas à me faire savoir si vous rencontrez d'autres problèmes.
La communauté Autodesk essaie d'offrir à ses membres autant d'informations que possible qui peuvent aider les membres ayant un problème similaire, nous construisons cette connaissance à travers les contributions de la communauté et de nos experts Autodesk.
Je voulais souligner que si l'occasion se présente à nouveau, vous pouvez également cliquer sur le bouton « Accepter comme solution » si/quand c'est pertinent afin que d'autres puissent plus facilement bénéficier de l'information.
N'hésitez pas à me faire part de vos questions ou de vos préoccupations ! Merci pour votre contribution.
Autodesk
Options d'achat
Confidentialité | Préférences de cookies | Signaler une infraction | Conditions générales d’utilisation | Mentions légales (anglais) | © 2025 Autodesk, Inc. Tous droits réservés. | Impressum
Saisir un nom de produit