Delete Appearance Example (VBA)
This example shows how to delete an appearance and not reassign remaining
appearance IDs.
'------------------------------------------
'
' Preconditions: Part document is open that
' contains
a model. Model has
' at
least three appearances applied to it.
'
' Postconditions: Appearance with an ID of 2 is deleted.
' The
appearance IDs are not reassigned.
'
'-----------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim swRenderMaterial As SldWorks.RenderMaterial
Dim varRenderMaterial As Variant
Dim vRenderMaterial As Variant
Dim fn As String
Dim nCount As Long, nId As Long
Dim boolstatus As Boolean
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swModelDocExt = swModel.Extension
' Turn on RealView Graphics
swModelDocExt.ViewDisplayRealView
= True
' Get the render materials
nCount = swModelDocExt.GetRenderMaterialsCount
Debug.Print "Number of appearances: " &
nCount
varRenderMaterial = swModelDocExt.GetRenderMaterials
For Each vRenderMaterial In varRenderMaterial
Set
swRenderMaterial = vRenderMaterial
nId
= swRenderMaterial.MaterialID
Debug.Print
"Appearance ID: " & nId
fn
= swRenderMaterial.FileName
Debug.Print
"Appearance filename: " & fn
If
nId = 2 Then
'
If appearance ID is 2, then delete it
'
Do not reassign appearance IDs
boolstatus
= swModelDocExt.DeleteRenderMaterial(nId,
False)
'
If appearance ID is 2, then delete it
'
Reassign appearance IDs
'
boolstatus = swModelDocExt.DeleteRenderMaterial(nId,
True)
End
If
swModelDocExt.UpdateRenderMaterialsInSceneGraph True
Next
' Make sure appearance with ID 2 was deleted
' and that the appearance IDs were not reassigned
nCount = swModelDocExt.GetRenderMaterialsCount
Debug.Print "Number of appearances: " &
nCount
varRenderMaterial = swModelDocExt.GetRenderMaterials
For Each vRenderMaterial In varRenderMaterial
Set
swRenderMaterial = vRenderMaterial
nId
= swRenderMaterial.MaterialID
Debug.Print
"Appearance ID: " & nId
fn
= swRenderMaterial.FileName
Debug.Print
"Appearance filename: " & fn
swModelDocExt.UpdateRenderMaterialsInSceneGraph True
Next
End Sub