<?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 Betreff: iLogic detect if parameter exist - if not, create it in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10605670#M114769</link>
    <description>&lt;P&gt;Thank you, it works perfectly!&lt;/P&gt;&lt;P&gt;How would I change it for an iProperty, instead of a Parameter. I have here the "Shape" Parameter but I'm interested in defining it as an iProperty (so that I can view / modify it from a BOM).&lt;/P&gt;&lt;P&gt;I tried some things on my own, but I'm probably not defining things properly and I can't get it to work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(And I don't know, maybe I should have started a new thread...)&lt;/P&gt;&lt;P&gt;Thanks again!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
	
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;
&lt;SPAN&gt;invdoc&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;

&lt;SPAN&gt;'Function returns UserParameters Collection&lt;/SPAN&gt;
 &lt;SPAN&gt;oUserParams&lt;/SPAN&gt; = &lt;SPAN&gt;GetUserParams&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt;)
 
&lt;SPAN&gt;'Parameter Shape&lt;/SPAN&gt;
&lt;SPAN&gt;'Function returns object parameter&lt;/SPAN&gt;
 &lt;SPAN&gt;paraShape&lt;/SPAN&gt; = &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt;, &lt;SPAN&gt;"Shape"&lt;/SPAN&gt;)
 
 
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;paraShape&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; 
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter 'Shape' already exists"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
	&lt;SPAN&gt;'Do something if found&lt;/SPAN&gt;
&lt;SPAN&gt;Else&lt;/SPAN&gt;
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter 'Shape' does not exist. It will be created with an 'xx' value, by default"&lt;/SPAN&gt;, &lt;SPAN&gt;"Shape Parameter"&lt;/SPAN&gt;)
	&lt;SPAN&gt;paraShape&lt;/SPAN&gt; = &lt;SPAN&gt;oUserParams&lt;/SPAN&gt;.&lt;SPAN&gt;AddByValue&lt;/SPAN&gt;(&lt;SPAN&gt;"Shape"&lt;/SPAN&gt;, &lt;SPAN&gt;"xx"&lt;/SPAN&gt;, &lt;SPAN&gt;kTextUnits&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
 
    &lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;, &lt;SPAN&gt;strParameter&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Parameter&lt;/SPAN&gt;
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
        &lt;SPAN&gt;Select&lt;/SPAN&gt; &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("Is a Assembly", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docAssembly&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docAssembly&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("Is a Part", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docPart&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docPart&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Select&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Parameter&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;
                &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;strParameter&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
                    &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt;
				&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
            &lt;SPAN&gt;Next&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		 &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
	
	&lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;GetUserParams&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
        &lt;SPAN&gt;Select&lt;/SPAN&gt; &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("This is an Assembly", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docAssembly&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docAssembly&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("This is a Part", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docPart&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docPart&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Select&lt;/SPAN&gt;
       
	   &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&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;oParams&lt;/SPAN&gt; = &lt;SPAN&gt;cd&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;
				
				&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oUserParams&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
				&lt;SPAN&gt;oUserParams&lt;/SPAN&gt; = &lt;SPAN&gt;oParams&lt;/SPAN&gt;.&lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
                &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;oUserParams&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		 &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 07 Sep 2021 14:25:54 GMT</pubDate>
    <dc:creator>emanuel.c</dc:creator>
    <dc:date>2021-09-07T14:25:54Z</dc:date>
    <item>
      <title>iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876006#M114758</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm trying to figure out how to detect from external rule if one parametr exist in Assembly/or part. If not, then create it and continue. If yes, skip the creation and continue in rule.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So far without the parameter detection, I got this:&lt;/P&gt;&lt;PRE&gt;FILE_NAME = "\PDF_SAVE\" 'Path setting&lt;BR /&gt;oMyParameter=ThisApplication.ActiveDocument.ComponentDefinition.Parameters.UserParameters&lt;BR /&gt;oParameter=oMyParameter.AddByValue("EXTERNAL", "True", UnitsTypeEnum.kTextUnits) 'Create EXTERNAL parameter&lt;BR /&gt;oParameter=oMyParameter.AddByValue("PDF", "True", UnitsTypeEnum.kTextUnits) ' Create PDF parameter
'So far this works, but it creates EXTERNAL_1 if EXTERNAL exists&lt;BR /&gt;
'Check if Save As Should proceed
If Parameter("EXTERNAL") = "True" Then
FILE_SAVEAS = ThisDoc.Path &amp;amp; FILE_NAME &amp;amp; ThisDoc.FileName(False)
Else
FILE_SAVEAS = ThisDoc.Path &amp;amp; ThisDoc.FileName(False)
End If

If Parameter("EXTERNAL") = "False" Then Return 'No Save As set? Then close the rule
'PDF Yes/No?
If Parameter("PDF") = "True" Then
ThisDoc.Document.SaveAs(FILE_SAVEAS &amp;amp; (".pdf") , True)
End If&lt;/PRE&gt;&lt;P&gt;Any Advice for this parameter detect for first block of code? Thank you&lt;/P&gt;</description>
      <pubDate>Fri, 23 Oct 2015 20:01:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876006#M114758</guid>
      <dc:creator>Ezekiel12</dc:creator>
      <dc:date>2015-10-23T20:01:03Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876012#M114759</link>
      <description>Try&lt;BR /&gt;'Change value of param&lt;BR /&gt;Catch&lt;BR /&gt;'Create Param as it doesn't exist&lt;BR /&gt;End Try</description>
      <pubDate>Fri, 23 Oct 2015 20:03:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876012#M114759</guid>
      <dc:creator>MechMachineMan</dc:creator>
      <dc:date>2015-10-23T20:03:30Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876052#M114760</link>
      <description>&lt;P&gt;Thx! That helped.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result:&lt;/P&gt;&lt;PRE&gt;oMyParameter = ThisApplication.ActiveDocument.ComponentDefinition.Parameters.UserParameters
Try
'Change value of param
Parameter("EXTERNAL") = "test"
Catch
'Create Param as it doesn't exist
oParameter=oMyParameter.AddByValue("EXTERNAL", "True", UnitsTypeEnum.kTextUnits)
End Try &lt;/PRE&gt;</description>
      <pubDate>Fri, 23 Oct 2015 20:26:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876052#M114760</guid>
      <dc:creator>Ezekiel12</dc:creator>
      <dc:date>2015-10-23T20:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876137#M114761</link>
      <description>Warning tho: if the try doesn't error out, it will actually change the value of the parameter! So you should actually do something like:&lt;BR /&gt;&lt;BR /&gt;Try&lt;BR /&gt;Parameter("EXTERNAL") = Parameter("EXTERNAL")&lt;BR /&gt;.......</description>
      <pubDate>Fri, 23 Oct 2015 21:23:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/5876137#M114761</guid>
      <dc:creator>MechMachineMan</dc:creator>
      <dc:date>2015-10-23T21:23:34Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9128760#M114762</link>
      <description>&lt;P&gt;I know its been several years, but this is such a highly searched issue, I just wanted to offer another alternative statement for the Try portion for similar rules in the future.&lt;/P&gt;&lt;P&gt;To avoid actually changing the value of the parameter in question, I simply try to assign the value of the parameter to a "dummy variable".&lt;/P&gt;&lt;P&gt;If it can't assign the value, because it can't find the parameter, it will fail, which leads to the Catch portion.&lt;/P&gt;&lt;P&gt;If it succeeds, it just assigned the parameters value to a useless dummy variable that you don't intend to use.&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;oMyParameter = ThisApplication.ActiveDocument.ComponentDefinition.Parameters.UserParameters&lt;/P&gt;&lt;P&gt;Try&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Try to assign the value of the parameter to a useless dummy variable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDummyVariable = Parameter("External")&lt;/P&gt;&lt;P&gt;Catch&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'It failed, so create the parameter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oParameter = oMyParameter.AddByValue("External" , "True", UnitsTypeEnum.kTextUnits)&lt;/P&gt;&lt;P&gt;End Try&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2019 17:28:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9128760#M114762</guid>
      <dc:creator>WCrihfield</dc:creator>
      <dc:date>2019-11-05T17:28:50Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9128965#M114763</link>
      <description>&lt;P&gt;While effective at quick coding, it also makes for very slow processing.&amp;nbsp;&lt;/P&gt;&lt;P&gt;If statements and loops process faster than a try/catch block handling an error.&amp;nbsp; Using Try Catch method to populate an unknown property is really 'sloppy' code, and should not be published as the proper way to perform a task.&amp;nbsp; Most objects can be found using find methods, or loops, or even if contains statements.&amp;nbsp; If all else fails use reflection to probe for properties of an unknown object (same thing intellisense uses).&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then after it is or is not found, you continue.&amp;nbsp; Sure you write more code, but your code will out perform the try/catch ridden code every time.&amp;nbsp; If you find yourself looping through hundreds of instances of this try/catch method to access&amp;nbsp; properties, you and your users will feel the lag.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2019 19:02:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9128965#M114763</guid>
      <dc:creator>JamieVJohnson2</dc:creator>
      <dc:date>2019-11-05T19:02:00Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9131187#M114764</link>
      <description>&lt;P&gt;I didn't know a single Try statement took so much longer to process than a "Loop" statement with accompanying "If Then" statements.&amp;nbsp; Doesn't sound logical, but I'll take your word for it.&amp;nbsp; Good to know.&lt;/P&gt;&lt;P&gt;Then I suppose the iLogic code to check for a specific Parameter might look something like the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="color: #ff0000;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oDoc&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;Document&lt;/SPAN&gt;
&lt;SPAN style="color: #800000;"&gt;oDoc&lt;/SPAN&gt; = &lt;SPAN style="color: #800080;"&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;Document&lt;/SPAN&gt;

&lt;SPAN style="color: #ff0000;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oPdoc&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;PartDocument&lt;/SPAN&gt;
&lt;SPAN style="color: #800000;"&gt;oPdoc&lt;/SPAN&gt; = &lt;SPAN style="color: #800080;"&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;Document&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oPrtCompDef&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;PartComponentDefinition&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oAdoc&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;AssemblyDocument&lt;/SPAN&gt;
&lt;SPAN style="color: #800000;"&gt;oAdoc&lt;/SPAN&gt; = &lt;SPAN style="color: #800080;"&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;Document&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oAsmCompDef&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;AssemblyComponentDefinition&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParams&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;Parameters&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParam&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color: #800080;"&gt;Parameter&lt;/SPAN&gt;

&lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;DocumentType&lt;/SPAN&gt; = &lt;SPAN style="color: #800000;"&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;kPartDocumentObject&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Then&lt;/SPAN&gt;
	&lt;SPAN style="color: #800000;"&gt;oPrtCompDef&lt;/SPAN&gt; = &lt;SPAN style="color: #800000;"&gt;oPdoc&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;ComponentDefinition&lt;/SPAN&gt;
	&lt;SPAN style="color: #800000;"&gt;oParams&lt;/SPAN&gt; = &lt;SPAN style="color: #800000;"&gt;oPrtCompDef&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;Parameters&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;ElseIf&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;DocumentType&lt;/SPAN&gt; = &lt;SPAN style="color: #800000;"&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;kAssemblyDocumentObject&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Then&lt;/SPAN&gt;
	&lt;SPAN style="color: #800000;"&gt;oAsmCompDef&lt;/SPAN&gt; = &lt;SPAN style="color: #800000;"&gt;oAdoc&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;ComponentDefinition&lt;/SPAN&gt;
	&lt;SPAN style="color: #800000;"&gt;oParams&lt;/SPAN&gt; = &lt;SPAN style="color: #800000;"&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;Parameters&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;Else&lt;/SPAN&gt;
	&lt;SPAN style="color: #800000;"&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;Show&lt;/SPAN&gt;(&lt;SPAN style="color: #008080;"&gt;"This rule [ "&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #800080;"&gt;iLogicVb&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;RuleName&lt;/SPAN&gt; &amp;amp; &lt;SPAN style="color: #008080;"&gt;" ] only works on either Part Documents or Assembly Documents."&lt;/SPAN&gt;, &lt;SPAN style="color: #008080;"&gt;"WRONG DOCUMENT TYPE"&lt;/SPAN&gt;)
	&lt;SPAN style="color: #ff0000;"&gt;Return&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt;

&lt;SPAN style="color: #ff0000;"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Each&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParam&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;In&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParams&lt;/SPAN&gt;
	&lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParam&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;Param&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;Name&lt;/SPAN&gt; = &lt;SPAN style="color: #008080;"&gt;"EXTERNAL"&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Then&lt;/SPAN&gt;
		&lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParam&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;Value&lt;/SPAN&gt; = &lt;SPAN style="color: #008080;"&gt;"True"&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Then&lt;/SPAN&gt;
			&lt;SPAN style="color: #808080;"&gt;'Your statement&lt;/SPAN&gt;
		&lt;SPAN style="color: #ff0000;"&gt;Else&lt;/SPAN&gt;
			&lt;SPAN style="color: #808080;"&gt;'Your statement&lt;/SPAN&gt;
		&lt;SPAN style="color: #ff0000;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt;
	&lt;SPAN style="color: #ff0000;"&gt;ElseIf&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParam&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;Param&lt;/SPAN&gt;.&lt;SPAN style="color: #800000;"&gt;Name&lt;/SPAN&gt; = &lt;SPAN style="color: #008080;"&gt;"PDF"&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Then&lt;/SPAN&gt;
		&lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color: #800000;"&gt;oParam&lt;/SPAN&gt;.&lt;SPAN style="color: #800080;"&gt;Value&lt;/SPAN&gt; = &lt;SPAN style="color: #008080;"&gt;"True"&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Then&lt;/SPAN&gt;
			&lt;SPAN style="color: #808080;"&gt;'Your statement&lt;/SPAN&gt;
		&lt;SPAN style="color: #ff0000;"&gt;Else&lt;/SPAN&gt;
			&lt;SPAN style="color: #808080;"&gt;'Your statement&lt;/SPAN&gt;
		&lt;SPAN style="color: #ff0000;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt;
	&lt;SPAN style="color: #ff0000;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;If&lt;/SPAN&gt;
&lt;SPAN style="color: #ff0000;"&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 06 Nov 2019 17:20:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9131187#M114764</guid>
      <dc:creator>WCrihfield</dc:creator>
      <dc:date>2019-11-06T17:20:33Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9131650#M114765</link>
      <description>&lt;P&gt;I use a separate function that returns the result, that way I don't have to recode:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;... running method&lt;FONT&gt;&amp;nbsp; (such as Sub Main)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;Dim paraHeight As Parameter = FindParameter(InvDoc, "G_H")&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;... end of running method&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function FindParameter(invdoc As Inventor.Document, strParameter As String) As Parameter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim cd As ComponentDefinition = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case invdoc.DocumentType&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Is = Inventor.DocumentTypeEnum.kAssemblyDocumentObject&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim docAssembly As Inventor.AssemblyDocument = invdoc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd = docAssembly.ComponentDefinition&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Is = Inventor.DocumentTypeEnum.kPartDocumentObject&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim docPart As Inventor.PartDocument = invdoc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd = docPart.ComponentDefinition&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If cd IsNot Nothing Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each param As Parameter In cd.Parameters&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If param.Name = strParameter Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return param&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 06 Nov 2019 21:03:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/9131650#M114765</guid>
      <dc:creator>JamieVJohnson2</dc:creator>
      <dc:date>2019-11-06T21:03:01Z</dc:date>
    </item>
    <item>
      <title>Re: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10597815#M114766</link>
      <description>&lt;P&gt;I'm a newbie at iLogic. I need exactly what the op is asking for. The short public function code seems nice to me but I can't get it to work. I don't know much about subs and public functions. What do the first 3 lines stand for and how do I make this code work or what would the issue be?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I did this for the first 3 lines:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt; ()

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;paraHeight&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Parameter&lt;/SPAN&gt; = &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;InvDoc&lt;/SPAN&gt;, &lt;SPAN&gt;"G_H"&lt;/SPAN&gt;)

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Many thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 03 Sep 2021 19:10:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10597815#M114766</guid>
      <dc:creator>emanuel.c</dc:creator>
      <dc:date>2021-09-03T19:10:45Z</dc:date>
    </item>
    <item>
      <title>Betreff: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10598688#M114767</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;These 3 lines only call the function FindParameter with the two expected Arguments Inventor.Document and ParameterName. You also need the posted function. The function returns either the parameter you're searching or, in case this parameter doesn't exist, returns Nothing. If Nothing, you can create this parameter, otherwise you can get it's value or change it.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Sep 2021 06:03:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10598688#M114767</guid>
      <dc:creator>Ralf_Krieg</dc:creator>
      <dc:date>2021-09-04T06:03:17Z</dc:date>
    </item>
    <item>
      <title>Betreff: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10599651#M114768</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7488742"&gt;@emanuel.c&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is an example that uses two functions, one to check the parameter exists same as posted above&amp;nbsp; and one to get the user parameter collection then if the user parameter doesn't exist it can be added.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
	
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;
&lt;SPAN&gt;invdoc&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;

&lt;SPAN&gt;'Function returns UserParameters Collection&lt;/SPAN&gt;
 &lt;SPAN&gt;oUserParams&lt;/SPAN&gt; = &lt;SPAN&gt;GetUserParams&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt;)
 
&lt;SPAN&gt;'[paraHeight&lt;/SPAN&gt;
&lt;SPAN&gt;'Function returns object parameter&lt;/SPAN&gt;
 &lt;SPAN&gt;paraHeight&lt;/SPAN&gt; = &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt;, &lt;SPAN&gt;"paraHeight"&lt;/SPAN&gt;)
 
 
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;paraHeight&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; 
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter does exist"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
	&lt;SPAN&gt;'Do something if found&lt;/SPAN&gt;
&lt;SPAN&gt;Else&lt;/SPAN&gt;
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter does not exist"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
	&lt;SPAN&gt;paraHeight&lt;/SPAN&gt; = &lt;SPAN&gt;oUserParams&lt;/SPAN&gt;.&lt;SPAN&gt;AddByValue&lt;/SPAN&gt;(&lt;SPAN&gt;"paraHeight"&lt;/SPAN&gt;, 1, &lt;SPAN&gt;UnitsTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kCentimeterLengthUnits&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
&lt;SPAN&gt;']&lt;/SPAN&gt;

&lt;SPAN&gt;'[paraHeight1&lt;/SPAN&gt;
&lt;SPAN&gt;'Function returns object parameter&lt;/SPAN&gt;
&lt;SPAN&gt;paraHeight1&lt;/SPAN&gt; = &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt;, &lt;SPAN&gt;"paraHeight1"&lt;/SPAN&gt;)

&lt;SPAN&gt;'Check if object is Nothing&lt;/SPAN&gt;
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;paraHeight1&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; 
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter does exist"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
	&lt;SPAN&gt;'Do something if found&lt;/SPAN&gt;
&lt;SPAN&gt;Else&lt;/SPAN&gt;
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter does not exist!"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
	&lt;SPAN&gt;paraHeight1&lt;/SPAN&gt; = &lt;SPAN&gt;oUserParams&lt;/SPAN&gt;.&lt;SPAN&gt;AddByValue&lt;/SPAN&gt;(&lt;SPAN&gt;"paraHeight1"&lt;/SPAN&gt;,1, &lt;SPAN&gt;UnitsTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kCentimeterLengthUnits&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
&lt;SPAN&gt;']&lt;/SPAN&gt;

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
 
    &lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;, &lt;SPAN&gt;strParameter&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Parameter&lt;/SPAN&gt;
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
        &lt;SPAN&gt;Select&lt;/SPAN&gt; &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Is a Assembly"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docAssembly&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docAssembly&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Is a Part"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docPart&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docPart&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Select&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Parameter&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;
                &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;strParameter&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
                    &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt;
				&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
            &lt;SPAN&gt;Next&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		 &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
	
	&lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;GetUserParams&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
        &lt;SPAN&gt;Select&lt;/SPAN&gt; &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Is a Assembly"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docAssembly&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docAssembly&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Is a Part"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docPart&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docPart&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Select&lt;/SPAN&gt;
       
	   &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&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;oParams&lt;/SPAN&gt; = &lt;SPAN&gt;cd&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;
				
				&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oUserParams&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
				&lt;SPAN&gt;oUserParams&lt;/SPAN&gt; = &lt;SPAN&gt;oParams&lt;/SPAN&gt;.&lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
                 &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;oUserParams&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		 &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
	&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 04 Sep 2021 19:49:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10599651#M114768</guid>
      <dc:creator>A.Acheson</dc:creator>
      <dc:date>2021-09-04T19:49:09Z</dc:date>
    </item>
    <item>
      <title>Betreff: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10605670#M114769</link>
      <description>&lt;P&gt;Thank you, it works perfectly!&lt;/P&gt;&lt;P&gt;How would I change it for an iProperty, instead of a Parameter. I have here the "Shape" Parameter but I'm interested in defining it as an iProperty (so that I can view / modify it from a BOM).&lt;/P&gt;&lt;P&gt;I tried some things on my own, but I'm probably not defining things properly and I can't get it to work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(And I don't know, maybe I should have started a new thread...)&lt;/P&gt;&lt;P&gt;Thanks again!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
	
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;
&lt;SPAN&gt;invdoc&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;

&lt;SPAN&gt;'Function returns UserParameters Collection&lt;/SPAN&gt;
 &lt;SPAN&gt;oUserParams&lt;/SPAN&gt; = &lt;SPAN&gt;GetUserParams&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt;)
 
&lt;SPAN&gt;'Parameter Shape&lt;/SPAN&gt;
&lt;SPAN&gt;'Function returns object parameter&lt;/SPAN&gt;
 &lt;SPAN&gt;paraShape&lt;/SPAN&gt; = &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt;, &lt;SPAN&gt;"Shape"&lt;/SPAN&gt;)
 
 
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;paraShape&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; 
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter 'Shape' already exists"&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)
	&lt;SPAN&gt;'Do something if found&lt;/SPAN&gt;
&lt;SPAN&gt;Else&lt;/SPAN&gt;
	&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Parameter 'Shape' does not exist. It will be created with an 'xx' value, by default"&lt;/SPAN&gt;, &lt;SPAN&gt;"Shape Parameter"&lt;/SPAN&gt;)
	&lt;SPAN&gt;paraShape&lt;/SPAN&gt; = &lt;SPAN&gt;oUserParams&lt;/SPAN&gt;.&lt;SPAN&gt;AddByValue&lt;/SPAN&gt;(&lt;SPAN&gt;"Shape"&lt;/SPAN&gt;, &lt;SPAN&gt;"xx"&lt;/SPAN&gt;, &lt;SPAN&gt;kTextUnits&lt;/SPAN&gt;)
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
 
    &lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;FindParameter&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;, &lt;SPAN&gt;strParameter&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Parameter&lt;/SPAN&gt;
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
        &lt;SPAN&gt;Select&lt;/SPAN&gt; &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("Is a Assembly", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docAssembly&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docAssembly&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("Is a Part", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docPart&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docPart&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Select&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Parameter&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;
                &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;strParameter&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
                    &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;param&lt;/SPAN&gt;
				&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
            &lt;SPAN&gt;Next&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		 &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
	
	&lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;GetUserParams&lt;/SPAN&gt;(&lt;SPAN&gt;invdoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
        &lt;SPAN&gt;Select&lt;/SPAN&gt; &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;invdoc&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("This is an Assembly", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docAssembly&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docAssembly&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
            &lt;SPAN&gt;Case&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; = &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartDocumentObject&lt;/SPAN&gt;
				&lt;SPAN&gt;'MessageBox.Show("This is a Part", "Title")&lt;/SPAN&gt;
                &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;docPart&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;invdoc&lt;/SPAN&gt;
                &lt;SPAN&gt;cd&lt;/SPAN&gt; = &lt;SPAN&gt;docPart&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Select&lt;/SPAN&gt;
       
	   &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;cd&lt;/SPAN&gt; &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&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;oParams&lt;/SPAN&gt; = &lt;SPAN&gt;cd&lt;/SPAN&gt;.&lt;SPAN&gt;Parameters&lt;/SPAN&gt;
				
				&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oUserParams&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
				&lt;SPAN&gt;oUserParams&lt;/SPAN&gt; = &lt;SPAN&gt;oParams&lt;/SPAN&gt;.&lt;SPAN&gt;UserParameters&lt;/SPAN&gt;
                &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;oUserParams&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		 &lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Sep 2021 14:25:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10605670#M114769</guid>
      <dc:creator>emanuel.c</dc:creator>
      <dc:date>2021-09-07T14:25:54Z</dc:date>
    </item>
    <item>
      <title>Betreff: iLogic detect if parameter exist - if not, create it</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10605802#M114770</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7488742"&gt;@emanuel.c&lt;/a&gt;&lt;/P&gt;&lt;P&gt;That would be a new thread for sure.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Sep 2021 15:12:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-detect-if-parameter-exist-if-not-create-it/m-p/10605802#M114770</guid>
      <dc:creator>A.Acheson</dc:creator>
      <dc:date>2021-09-07T15:12:29Z</dc:date>
    </item>
  </channel>
</rss>

