<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Creating a multi-valued parameter using ilogic. in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/creating-a-multi-valued-parameter-using-ilogic/m-p/12669329#M165486</link>
    <description>&lt;P&gt;Hey there.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Looking at your code it looks likes in your try you are verifying "Diameter_of_the_intake_pipe" user parameter exists. If it doesn't (catch) then you want to create a new multivalue list user parameter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the AddByExpression method I believe you are just passing a single item in the list "List.Item(3)"&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is the pattern I took:&lt;/P&gt;&lt;LI-CODE lang="visual-basic"&gt;    Try
        Dim userParameter As UserParameter
        userParameter = userParameters.Item("STD_YES")
    Catch
        Dim UserParameter As UserParameter = userParameters.AddByValue("STD_YES", "No", "String")
        MultiValue.SetList("STD_YES", "Yes")
        UserParameter.IsKey = True
    End Try&lt;/LI-CODE&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;</description>
    <pubDate>Wed, 27 Mar 2024 13:56:42 GMT</pubDate>
    <dc:creator>Walliguy</dc:creator>
    <dc:date>2024-03-27T13:56:42Z</dc:date>
    <item>
      <title>Creating a multi-valued parameter using ilogic.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/creating-a-multi-valued-parameter-using-ilogic/m-p/12664811#M165390</link>
      <description>&lt;P&gt;Hello.&lt;BR /&gt;I have a code that allows you to create and delete a parameter.&lt;BR /&gt;But the problem is that when creating a parameter using code, it is created not as a multi-valued parameter, but as a single parameter. At the same time, the program does not issue any errors.&lt;BR /&gt;If I understand correctly, the logic of the ArrayList code is broken.&lt;BR /&gt;Please help me solve this problem.&lt;BR /&gt;Thank you.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;'MultiValue.SetList("Capacity_Type", "Container CIP solutions", "Pressure_damping_capacity")&lt;/SPAN&gt;
&lt;SPAN&gt;'Capacity_Type = "Container CIP solutions"&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oParams&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Parameters&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAssemblyDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAssemblyCompDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;oAssemblyDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oComp&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;oAssemblyDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
&lt;SPAN&gt;oParams&lt;/SPAN&gt; = &lt;SPAN&gt;oAssemblyCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oUPs&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameters&lt;/SPAN&gt; = &lt;SPAN&gt;oComp&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;.&lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oUP&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameter&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;ParamName&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"Diameter_of_the_intake_pipe"&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;List&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;ArrayList&lt;/SPAN&gt;
	&lt;SPAN&gt;List&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"80"&lt;/SPAN&gt;)
	&lt;SPAN&gt;List&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"100"&lt;/SPAN&gt;)
	&lt;SPAN&gt;List&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"125"&lt;/SPAN&gt;)
	&lt;SPAN&gt;List&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"150"&lt;/SPAN&gt;)
	
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Capacity_Type&lt;/SPAN&gt; = &lt;SPAN&gt;"Container CIP solutions"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	&lt;SPAN&gt;Try&lt;/SPAN&gt;
		&lt;SPAN&gt;Test&lt;/SPAN&gt; = &lt;SPAN&gt;oUPs&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;ParamName&lt;/SPAN&gt;).&lt;SPAN&gt;Value&lt;/SPAN&gt;
	&lt;SPAN&gt;Catch&lt;/SPAN&gt;
		&lt;SPAN&gt;oUP&lt;/SPAN&gt; = &lt;SPAN&gt;oUPs&lt;/SPAN&gt;.&lt;SPAN&gt;AddByExpression&lt;/SPAN&gt;(&lt;SPAN&gt;ParamName&lt;/SPAN&gt;, &lt;SPAN&gt;List&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(3), &lt;SPAN&gt;UnitsTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kMillimeterLengthUnits&lt;/SPAN&gt;)
		&lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;"Container CIP:1"&lt;/SPAN&gt;, &lt;SPAN&gt;"Diameter_of_the_intake_pipe"&lt;/SPAN&gt;) = &lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;ParamName&lt;/SPAN&gt;)
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
&lt;SPAN&gt;ElseIf&lt;/SPAN&gt; &lt;SPAN&gt;Capacity_Type&lt;/SPAN&gt; = &lt;SPAN&gt;"Pressure_damping_capacity"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	&lt;SPAN&gt;Try&lt;/SPAN&gt;
		&lt;SPAN&gt;oUP&lt;/SPAN&gt; = &lt;SPAN&gt;oUPs&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;ParamName&lt;/SPAN&gt;)
		&lt;SPAN&gt;oUP&lt;/SPAN&gt;.&lt;SPAN&gt;Delete&lt;/SPAN&gt;
	&lt;SPAN&gt;Catch&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
	&lt;SPAN&gt;Parameter&lt;/SPAN&gt;(&lt;SPAN&gt;"Container CIP:1"&lt;/SPAN&gt;, &lt;SPAN&gt;"Diameter_of_the_intake_pipe"&lt;/SPAN&gt;) = &lt;SPAN&gt;False&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 25 Mar 2024 21:13:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/creating-a-multi-valued-parameter-using-ilogic/m-p/12664811#M165390</guid>
      <dc:creator>k_ponomarenko</dc:creator>
      <dc:date>2024-03-25T21:13:53Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a multi-valued parameter using ilogic.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/creating-a-multi-valued-parameter-using-ilogic/m-p/12666113#M165407</link>
      <description>&lt;P&gt;This is short code snippet to create new UserParamter with multi values&lt;/P&gt;&lt;LI-CODE lang="visual-basic"&gt;Dim partDef As PartComponentDefinition = ThisDoc.Document.ComponentDefinition

'Add new parameter as multi-value
Dim paramName As String = "TestParam"
Dim expressions As String() = {"1 mm", "2 mm", "3 mm" }
Dim newParam = partDef.Parameters.UserParameters.AddByExpression(paramName, "0", UnitsTypeEnum.kMillimeterLengthUnits)
newParam.ExpressionList.SetExpressionList(expressions, True, -1)&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 26 Mar 2024 11:07:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/creating-a-multi-valued-parameter-using-ilogic/m-p/12666113#M165407</guid>
      <dc:creator>Michael.Navara</dc:creator>
      <dc:date>2024-03-26T11:07:44Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a multi-valued parameter using ilogic.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/creating-a-multi-valued-parameter-using-ilogic/m-p/12669329#M165486</link>
      <description>&lt;P&gt;Hey there.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Looking at your code it looks likes in your try you are verifying "Diameter_of_the_intake_pipe" user parameter exists. If it doesn't (catch) then you want to create a new multivalue list user parameter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the AddByExpression method I believe you are just passing a single item in the list "List.Item(3)"&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is the pattern I took:&lt;/P&gt;&lt;LI-CODE lang="visual-basic"&gt;    Try
        Dim userParameter As UserParameter
        userParameter = userParameters.Item("STD_YES")
    Catch
        Dim UserParameter As UserParameter = userParameters.AddByValue("STD_YES", "No", "String")
        MultiValue.SetList("STD_YES", "Yes")
        UserParameter.IsKey = True
    End Try&lt;/LI-CODE&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;</description>
      <pubDate>Wed, 27 Mar 2024 13:56:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/creating-a-multi-valued-parameter-using-ilogic/m-p/12669329#M165486</guid>
      <dc:creator>Walliguy</dc:creator>
      <dc:date>2024-03-27T13:56:42Z</dc:date>
    </item>
  </channel>
</rss>

