iLogic form feature activation and suppression code tidy up

iLogic form feature activation and suppression code tidy up

GKPByDesign
Advocate Advocate
290 Views
2 Replies
Message 1 of 3

iLogic form feature activation and suppression code tidy up

GKPByDesign
Advocate
Advocate

I have created code to activate different features using the logic form, it then populate a custom prop for export.

 

It works perfectly, but I am not a coder, would any recommend a tidy up at all? 

 

If Cut = "None" Then
Feature.IsActive("Box Section") = True
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = False
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = False
End If

If Cut = "Model A" Then
Feature.IsActive("Box Section") = True
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = False
Feature.IsActive("Model A") = True
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = False
End If

If Cut = "Model A - Small Side" Then
Feature.IsActive("Box Section") = True
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = False
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = True
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = False
End If

If Cut = "Model B" Then
Feature.IsActive("Box Section") = True
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = False
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = True
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = False

End If
If Cut = "Model B - Small Side" Then
Feature.IsActive("Box Section") = True
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = False
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = True
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = False

End If
If Cut = "Model C" Then
Feature.IsActive("Box Section") = False
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = True
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = True
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = False

End If
If Cut = "Model D" Then
Feature.IsActive("Box Section") = False
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = True
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = True
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = False

End If
If Cut = "Model E" Then
Feature.IsActive("Box Section") = False
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = True
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = True
Feature.IsActive("Model F") = False

End If
If Cut = "Model F" Then
Feature.IsActive("Box Section") = False
Feature.IsActive("U Channel") = False
Feature.IsActive("Angle Section") = True
Feature.IsActive("Model A") = False
Feature.IsActive("Model A - Small Side") = False
Feature.IsActive("Model B") = False
Feature.IsActive("Model B - Small Side") = False
Feature.IsActive("Model C") = False
Feature.IsActive("Model D") = False
Feature.IsActive("Model E") = False
Feature.IsActive("Model F") = True
End If

If Feature.IsActive("Model A") Then
Model_Type = "Model A"
End If
If Feature.IsActive("Model A - Small Side") Then
Model_Type = "Model A"
End If
If Feature.IsActive("Model B") Then
Model_Type = "Model B"
End If
If Feature.IsActive("Model B - Small Side") Then
Model_Type = "Model B"
End If
If Feature.IsActive("Model C") Then
Model_Type = "Model C"
End If
If Feature.IsActive("Model D") Then
Model_Type = "Model D"
End If
If Feature.IsActive("Model E") Then
Model_Type = "Model E"
End If
If Feature.IsActive("Model F") Then
Model_Type = "Model F"
End If


'change Custom iProperty Name to desired Custom iProperty Name
Dim propertyName1 As String = "MOD"

'define custom property collection
oCustomPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")

Try
'set property value
oProp = oCustomPropertySet.Item(propertyName1)
Catch
' Assume error means not found so create it
oCustomPropertySet.Add("", propertyName1)
End Try

'set custom property value; Change Custom iProperty Name to desired Custom iProperty Name;
'change UniqueFxName to the name of your User Defined Parameter
iProperties.Value("Custom", "MOD") = Model_Type
'processes update when rule is run so save doesn't have to occur to see change
iLogicVb.UpdateWhenDone = True
0 Likes
291 Views
2 Replies
Replies (2)
Message 2 of 3

chandra.shekar.g
Autodesk Support
Autodesk Support

@GKPByDesign ,

 

Try below iLogic code

 

If Cut = "None" Then
	Feature.IsActive("Box Section") = True
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = False
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = False 

ElseIf Cut = "Model A" Then
	Feature.IsActive("Box Section") = True
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = False
	Feature.IsActive("Model A") = True
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = False 

ElseIf Cut = "Model A - Small Side" Then
	Feature.IsActive("Box Section") = True
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = False
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = True
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = False
 

ElseIf Cut = "Model B" Then
	Feature.IsActive("Box Section") = True
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = False
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = True
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = False
 
ElseIf Cut = "Model B - Small Side" Then
	Feature.IsActive("Box Section") = True
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = False
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = True
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = False
 
ElseIf Cut = "Model C" Then
	Feature.IsActive("Box Section") = False
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = True
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = True
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = False
 
ElseIf Cut = "Model D" Then
	Feature.IsActive("Box Section") = False
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = True
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = True
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = False
 
ElseIf Cut = "Model E" Then
	Feature.IsActive("Box Section") = False
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = True
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = True
	Feature.IsActive("Model F") = False
 
ElseIf Cut = "Model F" Then
	Feature.IsActive("Box Section") = False
	Feature.IsActive("U Channel") = False
	Feature.IsActive("Angle Section") = True
	Feature.IsActive("Model A") = False
	Feature.IsActive("Model A - Small Side") = False
	Feature.IsActive("Model B") = False
	Feature.IsActive("Model B - Small Side") = False
	Feature.IsActive("Model C") = False
	Feature.IsActive("Model D") = False
	Feature.IsActive("Model E") = False
	Feature.IsActive("Model F") = True
End If

If Feature.IsActive("Model A") Or Feature.IsActive("Model A - Small Side") Then
	Model_Type = "Model A" 
ElseIf Feature.IsActive("Model B") Or Feature.IsActive("Model B - Small Side") Then
	Model_Type = "Model B" 
ElseIf Feature.IsActive("Model C") Then
	Model_Type = "Model C" 
ElseIf Feature.IsActive("Model D") Then
	Model_Type = "Model D" 
ElseIf Feature.IsActive("Model E") Then
	Model_Type = "Model E" 
ElseIf Feature.IsActive("Model F") Then
	Model_Type = "Model F"
End If


'change Custom iProperty Name to desired Custom iProperty Name
Dim propertyName1 As String = "MOD"

'define custom property collection
oCustomPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")

Try
'set property value
oProp = oCustomPropertySet.Item(propertyName1)
Catch
' Assume error means not found so create it
oCustomPropertySet.Add("", propertyName1)
End Try

'set custom property value; Change Custom iProperty Name to desired Custom iProperty Name;
'change UniqueFxName to the name of your User Defined Parameter
iProperties.Value("Custom", "MOD") = Model_Type
'processes update when rule is run so save doesn't have to occur to see change
iLogicVb.UpdateWhenDone = True

Thanks and regards,


CHANDRA SHEKAR G
Developer Advocate
Autodesk Developer Network



0 Likes
Message 3 of 3

GKPByDesign
Advocate
Advocate

Hey Chandra,

 

While I can see you have condensed the code a little, I am after if any code to safe guard my work, or prevent errors, If you think the code is ok, then I will leave as is 

0 Likes