Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

@RoyWickrama_RWEI,

 

Try below iLogic code to get material library, selected material from material library, appearance library and selected appearance from appearance library.

 

Before running this iLogic code, read the difference between material library and appearance library from below link.

 

https://forums.autodesk.com/t5/inventor-customization/vba-detect-matrial-or-appearance-library/td-p/...

'Step 1

Dim oLibrary As AssetLibrary 
Dim oMaterialLibrary As String 
Dim oMaterialList As New ArrayList
For Each oLibrary In ThisApplication.AssetLibraries 
	If oLibrary.MaterialAssets.Count > 0 Then
		oMaterialList.Add(oLibrary.DisplayName)
	End If
Next

oMaterialLibrary = InputListBox("Select materilal library", oMaterialList, oMaterialList.Item(0), Title := "Material library", ListName := "Material library List")

'Step 2

Dim oSelected_Material_Library As AssetLibrary  
oSelected_Material_Library = ThisApplication.AssetLibraries.Item(oMaterialLibrary)

Dim oMaterialAsset As MaterialAsset 
Dim oMaterialAssetList As New ArrayList
Dim oSelected_Material As String 
For Each oMaterialAsset In oSelected_Material_Library.MaterialAssets 
	oMaterialAssetList.Add(oMaterialAsset.DisplayName)
Next

oSelected_Material = InputListBox("Select material from list", oMaterialAssetList, oMaterialAssetList.Item(0), Title := "Material", ListName := "Material List")

MessageBox.Show(oSelected_Material, "Material")

'Step 3
 
Dim oAppearanceLibrary As String 
Dim oAppearanceList As New ArrayList
For Each oLibrary In ThisApplication.AssetLibraries 
	If oLibrary.MaterialAssets.Count = 0 Then
		oAppearanceList.Add(oLibrary.DisplayName)
	End If
Next

oAppearanceLibrary = InputListBox("Select appearance library", oAppearanceList, oAppearanceList.Item(0), Title := "Appearance library", ListName := "Appearance library List")

'Step 4

Dim oSelected_Appearence_Library As AssetLibrary  
oSelected_Appearence_Library = ThisApplication.AssetLibraries.Item(oAppearanceLibrary)

Dim oAppearanceAsset As Asset 
Dim oAppearanceAssetList As New ArrayList
Dim oSelected_Appearance As String 
For Each oAppearanceAsset In oSelected_Appearence_Library.AppearanceAssets  
	oAppearanceAssetList.Add(oAppearanceAsset.DisplayName)
Next

oSelected_Appearance = InputListBox("Select appearance from list", oAppearanceAssetList, oAppearanceAssetList.Item(0), Title := "Appearance", ListName := "Appearance List")

MessageBox.Show(oSelected_Appearance, "Appearance")

Thanks and regards,


CHANDRA SHEKAR G
Developer Advocate
Autodesk Developer Network