<?xml encoding=”UTF-8″>By Balaji Ramamoorthy
The Positional Representations in an assembly document can change as you add or remove any of the representations. If you need to list the names of the representations in a combo-box inside your iLogic form, here is a way to do that.
Step-1 : Create a Multi-value user parameter of Text type. In the below example, we name this parameter as “PosReps”
Step-2 : In your iLogic form, drag the user-parameter created in Step-1. As it is a multi-value parameter, a combo-box will display its values
Step-3 : In your iLogic Rule, before you display the iLogic form, update the user parameter by iterating through the positional representation in the assembly document. Here is a sample iLogic rule that updates the user parameter named “PosReps” :
<span>Dim</span><span> oAsmDoc <span>As</span><span> <span>AssemblyDocument</span><span> </span></span></span>
oAsmDoc = ThisApplication.ActiveDocument
<span>Dim</span><span> oAsmCompDef <span>As</span><span> <span>AssemblyComponentDefinition</span><span> </span></span></span>
oAsmCompDef = oAsmDoc.ComponentDefinition
<span>Dim</span><span> oPosReps <span>As</span><span> <span>PositionalRepresentations</span><span> </span></span></span>
oPosReps = oAsmCompDef.RepresentationsManager _
.PositionalRepresentations
<span>Dim</span><span> List() <span>As</span><span> <span>String</span><span> </span></span></span>
<span>ReDim</span><span> List(0 <span>To</span><span> oPosReps.Count-1)</span></span>
<span>Dim</span><span> cnt <span>As</span><span> <span>Integer</span><span> </span></span></span>
cnt = 0
<span>Dim</span><span> oPosRep <span>As</span><span> <span>PositionalRepresentation</span><span> </span></span></span>
<span>For</span><span> <span>Each</span><span> oPosRep <span>In</span><span> oPosReps</span></span></span>
List(cnt) = oPosRep.Name
cnt = cnt + 1
<span>Next</span><span> </span>
<span>Dim</span><span> oPars <span>As</span><span> <span>UserParameters</span><span> </span></span></span>
oPars = _
oAsmDoc.ComponentDefinition.Parameters.UserParameters
<span>Dim</span><span> oPar <span>As</span><span> <span>UserParameter</span><span> </span></span></span>
oPar = oPars.Item("PosReps")
<span>Dim</span><span> oExprList <span>As</span><span> <span>ExpressionList</span><span> </span></span></span>
oExprList = oPar.ExpressionList
<span>Call</span><span> oExprList.SetExpressionList(List, <span>False</span><span> )</span></span>
oAsmDoc.Update
iLogicForm.Show("Positional Reps")
Here is a screenshot of the iLogic form displaying the positional representations:


Leave a Reply