<?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 Naming a FaceProxy Source in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/naming-a-faceproxy-source/m-p/11475442#M31848</link>
    <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm working within the assembly level. I'm looking to grab a FaceProxy, find the source of the FaceProxy, and name the source surface.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code below, appears to work just fine. But the changes aren't being pushed through to the part document.&amp;nbsp;&lt;/P&gt;&lt;P&gt;It appears to grab the correct surface. But the name does not appear within the entities list within the .ipt and when closing and re-opening the assembly it can no longer find the named entity.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ndillner343SKL_0-1665504111053.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1125983i048FECB13DC0F01E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ndillner343SKL_0-1665504111053.png" alt="ndillner343SKL_0-1665504111053.png" /&gt;&lt;/span&gt;&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;x&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt; = 0
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oADoc&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;oADef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;oADoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oConsts&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyConstraints&lt;/SPAN&gt; = &lt;SPAN&gt;oADef&lt;/SPAN&gt;.&lt;SPAN&gt;Constraints&lt;/SPAN&gt;

	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oConst&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyConstraint&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oConsts&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oEnt1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt; = &lt;SPAN&gt;oConst&lt;/SPAN&gt;.&lt;SPAN&gt;EntityOne&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oEnt2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt; = &lt;SPAN&gt;oConst&lt;/SPAN&gt;.&lt;SPAN&gt;EntityTwo&lt;/SPAN&gt;
		
		&lt;SPAN&gt;x&lt;/SPAN&gt; = &lt;SPAN&gt;x&lt;/SPAN&gt; + 1

		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		
		&lt;SPAN&gt;oSource1&lt;/SPAN&gt; = &lt;SPAN&gt;oEnt1&lt;/SPAN&gt;
		&lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt; = &lt;SPAN&gt;oSource1&lt;/SPAN&gt;.&lt;SPAN&gt;GetSourceFace&lt;/SPAN&gt;
	    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace1&lt;/SPAN&gt; = &lt;SPAN&gt;oSource1&lt;/SPAN&gt;.&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;
	    &lt;SPAN&gt;Else&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace1&lt;/SPAN&gt; = &lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt;
	    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		
		&lt;SPAN&gt;oSource2&lt;/SPAN&gt; = &lt;SPAN&gt;oEnt2&lt;/SPAN&gt;
		&lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oSource2&lt;/SPAN&gt;.&lt;SPAN&gt;GetSourceFace&lt;/SPAN&gt;
	    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oSource2&lt;/SPAN&gt;.&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;
	    &lt;SPAN&gt;Else&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt;
	    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
			
		&lt;SPAN&gt;oName&lt;/SPAN&gt; = &lt;SPAN&gt;"Entity1:"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;x&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;AssignNameToEntity&lt;/SPAN&gt;(&lt;SPAN&gt;oFace1&lt;/SPAN&gt;, &lt;SPAN&gt;oName&lt;/SPAN&gt;)
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;EntityOne&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;GetEntityName&lt;/SPAN&gt;(&lt;SPAN&gt;oFace1&lt;/SPAN&gt;)
		&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;EntityOne&lt;/SPAN&gt;)

		&lt;SPAN&gt;oName&lt;/SPAN&gt; = &lt;SPAN&gt;"Entity2:"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;x&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;AssignNameToEntity&lt;/SPAN&gt;(&lt;SPAN&gt;oFace2&lt;/SPAN&gt;, &lt;SPAN&gt;oName&lt;/SPAN&gt;)
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;EntityTwo&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;GetEntityName&lt;/SPAN&gt;(&lt;SPAN&gt;oFace2&lt;/SPAN&gt;)
		&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;EntityTwo&lt;/SPAN&gt;)
	&lt;SPAN&gt;Next&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;</description>
    <pubDate>Wed, 12 Oct 2022 14:28:22 GMT</pubDate>
    <dc:creator>ndillner343SKL</dc:creator>
    <dc:date>2022-10-12T14:28:22Z</dc:date>
    <item>
      <title>Naming a FaceProxy Source</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/naming-a-faceproxy-source/m-p/11475442#M31848</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm working within the assembly level. I'm looking to grab a FaceProxy, find the source of the FaceProxy, and name the source surface.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code below, appears to work just fine. But the changes aren't being pushed through to the part document.&amp;nbsp;&lt;/P&gt;&lt;P&gt;It appears to grab the correct surface. But the name does not appear within the entities list within the .ipt and when closing and re-opening the assembly it can no longer find the named entity.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ndillner343SKL_0-1665504111053.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1125983i048FECB13DC0F01E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ndillner343SKL_0-1665504111053.png" alt="ndillner343SKL_0-1665504111053.png" /&gt;&lt;/span&gt;&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;x&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt; = 0
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oADoc&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;oADef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;oADoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oConsts&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyConstraints&lt;/SPAN&gt; = &lt;SPAN&gt;oADef&lt;/SPAN&gt;.&lt;SPAN&gt;Constraints&lt;/SPAN&gt;

	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oConst&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyConstraint&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oConsts&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oEnt1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt; = &lt;SPAN&gt;oConst&lt;/SPAN&gt;.&lt;SPAN&gt;EntityOne&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oEnt2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt; = &lt;SPAN&gt;oConst&lt;/SPAN&gt;.&lt;SPAN&gt;EntityTwo&lt;/SPAN&gt;
		
		&lt;SPAN&gt;x&lt;/SPAN&gt; = &lt;SPAN&gt;x&lt;/SPAN&gt; + 1

		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
		
		&lt;SPAN&gt;oSource1&lt;/SPAN&gt; = &lt;SPAN&gt;oEnt1&lt;/SPAN&gt;
		&lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt; = &lt;SPAN&gt;oSource1&lt;/SPAN&gt;.&lt;SPAN&gt;GetSourceFace&lt;/SPAN&gt;
	    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace1&lt;/SPAN&gt; = &lt;SPAN&gt;oSource1&lt;/SPAN&gt;.&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;
	    &lt;SPAN&gt;Else&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace1&lt;/SPAN&gt; = &lt;SPAN&gt;oSourceFace1&lt;/SPAN&gt;
	    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
		
		&lt;SPAN&gt;oSource2&lt;/SPAN&gt; = &lt;SPAN&gt;oEnt2&lt;/SPAN&gt;
		&lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oSource2&lt;/SPAN&gt;.&lt;SPAN&gt;GetSourceFace&lt;/SPAN&gt;
	    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oSource2&lt;/SPAN&gt;.&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;
	    &lt;SPAN&gt;Else&lt;/SPAN&gt;
	        &lt;SPAN&gt;oFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oSourceFace2&lt;/SPAN&gt;
	    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
			
		&lt;SPAN&gt;oName&lt;/SPAN&gt; = &lt;SPAN&gt;"Entity1:"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;x&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;AssignNameToEntity&lt;/SPAN&gt;(&lt;SPAN&gt;oFace1&lt;/SPAN&gt;, &lt;SPAN&gt;oName&lt;/SPAN&gt;)
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;EntityOne&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;GetEntityName&lt;/SPAN&gt;(&lt;SPAN&gt;oFace1&lt;/SPAN&gt;)
		&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;EntityOne&lt;/SPAN&gt;)

		&lt;SPAN&gt;oName&lt;/SPAN&gt; = &lt;SPAN&gt;"Entity2:"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;x&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;AssignNameToEntity&lt;/SPAN&gt;(&lt;SPAN&gt;oFace2&lt;/SPAN&gt;, &lt;SPAN&gt;oName&lt;/SPAN&gt;)
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;EntityTwo&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;GetEntityName&lt;/SPAN&gt;(&lt;SPAN&gt;oFace2&lt;/SPAN&gt;)
		&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;EntityTwo&lt;/SPAN&gt;)
	&lt;SPAN&gt;Next&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;</description>
      <pubDate>Wed, 12 Oct 2022 14:28:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/naming-a-faceproxy-source/m-p/11475442#M31848</guid>
      <dc:creator>ndillner343SKL</dc:creator>
      <dc:date>2022-10-12T14:28:22Z</dc:date>
    </item>
    <item>
      <title>Re: Naming the a FaceProxy Source</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/naming-a-faceproxy-source/m-p/11475612#M31849</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11442738"&gt;@ndillner343SKL&lt;/a&gt;.&amp;nbsp; It looks like you are not updating or saving the parts or the main assembly at any point within the code.&amp;nbsp; That is most likely why the names are not staying put.&amp;nbsp; I would assume that you could save the main assembly, using something like oADoc.Save or oADoc.Save2(True), and it would automatically also save all referenced documents that have been 'dirtied' in the process, which should save any changes that have been made.&amp;nbsp; Maybe give that a try and see if that fixes the situation.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Oct 2022 17:29:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/naming-a-faceproxy-source/m-p/11475612#M31849</guid>
      <dc:creator>WCrihfield</dc:creator>
      <dc:date>2022-10-11T17:29:39Z</dc:date>
    </item>
    <item>
      <title>Re: Naming the a FaceProxy Source</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/naming-a-faceproxy-source/m-p/11475742#M31850</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11442738"&gt;@ndillner343SKL&lt;/a&gt;.&amp;nbsp; I don't know if this will help you along your project journey or not, but since you seem to be possibly having problems retrieving true native/source objects from proxy objects, I created a fairly simple little custom Function named "GetProxySource" just for returning the native/source object that a proxy object represents.&amp;nbsp; If the input object is not a proxy type object, it will simply return that same input object.&amp;nbsp; It is recursive too, which means that if the proxy object's NativeObject is still another proxy type object, it will automatically dig another step deeper attempting to find the version of that object that is no longer a proxy.&amp;nbsp; Since every proxy type object has a NativeObject property, and the TypeName of every proxy type object ends with "Proxy", I used those two key bits of info about them to create this simple, yet handy little function just for digging down to the true source of any proxy type object, and return its true source object.&amp;nbsp; And to help prove that it works, I included a bit of code within the Sub Main area that is similar to your own, but shows you not only the TypeName of the object returned by the AssemblyConstraint.EntityOne, but also the TypeName of its 'native/source' object which has been returned from this custom function, so you can see the results.&amp;nbsp; It seemed to work OK in my testing so far.&lt;/P&gt;
&lt;P&gt;Here is the code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;Sub Main
	If ThisDoc.Document.DocumentType &amp;lt;&amp;gt; DocumentTypeEnum.kAssemblyDocumentObject Then
		MsgBox("An Assembly Document must be active for this rule to work. Exiting.", vbCritical, "")
		Exit Sub
	End If
	Dim oADoc As AssemblyDocument = ThisDoc.Document
	Dim oADef As AssemblyComponentDefinition = oADoc.ComponentDefinition
	Dim oOccs As ComponentOccurrences = oADef.Occurrences
	Dim oConsts As AssemblyConstraints = oADef.Constraints
	For Each oConst As AssemblyConstraint In oConsts
		Dim oEnt1 As Object = oConst.EntityOne
		Dim oEnt1Native As Object = Nothing 'making sure it gets re-set
		If oEnt1 IsNot Nothing Then
			oEnt1Native = GetProxySource(oEnt1)
			MsgBox("TypeName(oEnt1) = " &amp;amp; TypeName(oEnt1) _
			&amp;amp; vbCrLf &amp;amp; "TypeName(oEnt1Native) = " &amp;amp; TypeName(oEnt1Native), vbInformation, "")
		Else
			MsgBox("oEnt1 was Nothing", vbInformation, "")
		End If
		Dim oEnt2 As Object = oConst.EntityTwo
		Dim oEnt2Native As Object = Nothing 'making sure it gets re-set
		If oEnt2 IsNot Nothing Then
			oEnt2Native = GetProxySource(oEnt2)
			MsgBox("TypeName(oEnt2) = " &amp;amp; TypeName(oEnt2) _
			&amp;amp; vbCrLf &amp;amp; "TypeName(oEnt2Native) = " &amp;amp; TypeName(oEnt2Native), vbInformation, "")
		Else
			MsgBox("oEnt2 was Nothing", vbInformation, "")
		End If
	Next
	MsgBox("Done with all constraints.", vbInformation, "")
End Sub

Function GetProxySource(oProxyObj As Object) As Object
	If IsNothing(oProxyObj) Then Return Nothing
	Dim oNativeObject As Object = Nothing
	If TypeName(oProxyObj).EndsWith("Proxy") = False Then
		oNativeObject = oProxyObj
	Else
		oNativeObject = GetProxySource(oProxyObj.NativeObject)
	End If
	Return oNativeObject
End Function&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Oct 2022 18:36:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/naming-a-faceproxy-source/m-p/11475742#M31850</guid>
      <dc:creator>WCrihfield</dc:creator>
      <dc:date>2022-10-11T18:36:02Z</dc:date>
    </item>
  </channel>
</rss>

