Hello. I'm trying to create a macro that will supplement the custom properties builder so novice users have a nice UI to customize one of our common parts. I'm wondering if there's a way to change the appearance of a model face in the API. Basically, I'm using custom properties to drive the part's base appearance, and also to give the option to add a colored stripe to the part. I already have functioning code to change the base appearance, but now I want the macro to take a saved selection set of faces, and apply the stripe appearance to them (without changing the base appearance or the appearance assignments of any other faces). Can this be done?
Note that I'm trying to avoid just changing the RGB value of an appearance. I would rather attach a different default appearance to the faces, if possible.
*Bonus points if you can tell me what's wrong with my code for selecting the faces.
'Declare Variables Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swFeatureManager As SldWorks.FeatureManager Dim swModelDocExt As SldWorks.ModelDocExtension Dim swCustProp As SldWorks.CustomPropertyManager Dim WireSize As String Dim WireSelectState As String Dim UserSizeSelection As String Dim swEquationMgr As SldWorks.EquationMgr Dim ValOut As String Dim PropName As Variant Dim IDNewValue As Double Dim ODNewValue As Double Dim BaseColor As String Dim StripeColor As String Dim ConfigurationSelect As String 'Function that selects model faces from a selection set based on the configuration the user has selected Function GetSelectionSet(ConfigurationSelect As String) 'Declare Variables Dim swSelectionSetFolder As SldWorks.SelectionSetFolder Dim StripeSelectionSet As SldWorks.SelectionSet Dim StripeFace As SldWorks.Face2 'Set Variables Set swSelectionSetFolder = swFeatureManager.GetSelectionSetFolder Set StripeSelectionSet = swSelectionSetFolder.GetSelectionSetByName("Stripe Faces " & ConfigurationSelect) 'Select Faces Set StripeFace = StripeSelectionSet.Select() End Function