Listing the Positional Representations in iLogic Form

<?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:

ILogic_PosReps


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading