Community
Help needed with multi-body visibility.
check the link.
https://www.youtube.com/watch?v=XizjzCszDNg&ab_channel=KLONG
THE CODE I USED FOR CONTROL VISIBILITY:
Public Sub Main() Select Case DIN 'DIN Case "DIN 32676 SERIES 1" setVisibility("DIN32676SERIES1",True) setVisibility("DIN32676SERIES2STANDARD",False) setVisibility("DIN32676SERIES2NONSTANDARD", False) setVisibility("DIN32676SERIES3", False) setVisibility("DIN11850", False) setVisibility("ISO2037SERIES1", False) setVisibility("ISO2037SERIES2", False) setVisibility("ISO1127SERIES1", False) Case "DIN 32676 SERIES 2 STANDARD" setVisibility("DIN32676SERIES1",False) setVisibility("DIN32676SERIES2STANDARD",True) setVisibility("DIN32676SERIES2NONSTANDARD", False) setVisibility("DIN32676SERIES3", False) setVisibility("DIN11850", False) setVisibility("ISO2037SERIES1", False) setVisibility("ISO2037SERIES2", False) setVisibility("ISO1127SERIES1", False) Case "DIN 32676 SERIES 2 NON STANDARD" setVisibility("DIN32676SERIES1",False) setVisibility("DIN32676SERIES2STANDARD",False) setVisibility("DIN32676SERIES2NONSTANDARD", True) setVisibility("DIN32676SERIES3", False) setVisibility("DIN11850", False) setVisibility("ISO2037SERIES1", False) setVisibility("ISO2037SERIES2", False) setVisibility("ISO1127SERIES1", False) Case "DIN 32676 SERIES 3" setVisibility("DIN32676SERIES1",False) setVisibility("DIN32676SERIES2STANDARD",False) setVisibility("DIN32676SERIES2NONSTANDARD",False) setVisibility("DIN32676SERIES3", True) setVisibility("DIN11850", False) setVisibility("ISO2037SERIES1", False) setVisibility("ISO2037SERIES2", False) setVisibility("ISO1127SERIES1", False) Case "DIN 11850" setVisibility("DIN32676SERIES1",False) setVisibility("DIN32676SERIES2STANDARD",False) setVisibility("DIN32676SERIES2NONSTANDARD",False) setVisibility("DIN32676SERIES3",False) setVisibility("DIN11850", True) setVisibility("ISO2037SERIES1", False) setVisibility("ISO2037SERIES2", False) setVisibility("ISO1127SERIES1", False) 'ISO Case "ISO 2037 SERIES 1" setVisibility("ISO2037SERIES1", True) setVisibility("ISO2037SERIES2", False) setVisibility("ISO1127SERIES1", False) setVisibility("DIN32676SERIES1",False) setVisibility("DIN32676SERIES2STANDARD",False) setVisibility("DIN32676SERIES2NONSTANDARD", False) setVisibility("DIN32676SERIES3", False) setVisibility("DIN11850", False) Case "ISO 2037 SERIES 2" setVisibility("ISO2037SERIES1", False) setVisibility("ISO2037SERIES2", True) setVisibility("ISO1127SERIES1", False) setVisibility("DIN32676SERIES1",False) setVisibility("DIN32676SERIES2STANDARD",False) setVisibility("DIN32676SERIES2NONSTANDARD", False) setVisibility("DIN32676SERIES3", False) setVisibility("DIN11850", False) Case "ISO 1127 SERIES 1" setVisibility("ISO1127SERIES1", True) setVisibility("ISO2037SERIES2", False) setVisibility("ISO2037SERIES1", False) setVisibility("DIN32676SERIES1",False) setVisibility("DIN32676SERIES2STANDARD",False) setVisibility("DIN32676SERIES2NONSTANDARD", False) setVisibility("DIN32676SERIES3", False) setVisibility("DIN11850", False) End Select End Sub Public Sub setVisibility(bodyName As String, visible As Boolean) Dim doc As PartDocument = ThisDoc.Document Dim def As PartComponentDefinition = doc.ComponentDefinition Dim bodies As IEnumerable(Of SurfaceBody) = def.SurfaceBodies.Cast(Of SurfaceBody) Dim body As SurfaceBody = bodies. Where(Function(b) b.Name.Equals(bodyName)).First() body.Visible = visible End Sub
It either needs an update or needs a physical geometry change to update the graphics. When switching category and just below where the visibility of the forms is triggered type in the model variables you want to see as your default when you switch, say smallest in the category.
Check this blogspot
MultiValue.SetValueOptions(True, DefaultIndex := 0)
http://inventbetter.blogspot.com/2016/05/multi-value-list-controls.html
Can't find what you're looking for? Ask the community or share your knowledge.