title: Create a node set in Abaqus programatically (python scripting)
body: <p>I would appreciate if someone could tell me what I'm missing. I'm trying to create a geometry-dependent set of nodes from a merged instance part. Once  generated the geometry, the instances, merged and meshed the resulting part, the code reads:</p>
  
  <pre><code>all_nodes = model_assembly.instances[merged_part_instance_name].nodes
  left_nodes = []
  bottom_nodes = []
  for n in all_nodes:
      xcoord = n.coordinates[0]
      ycoord = n.coordinates[1]
      if xcoord &gt; xmin and xcoord &lt; xmax:
          left_nodes.append(n)
      if ycoord &gt; ymin and ycoord &lt; ymax:
          bottom_nodes.append(n)
  </code></pre>
  
  <p>With the code above, I have a list of <code>'MeshNode objects'</code>, so writing this works fine: </p>
  
  <pre><code>model_assembly.Set(nodes=all_nodes, name='Set-all')
  </code></pre>
  
  <p>However, when I write:</p>
  
  <pre><code>model_assembly.Set(nodes=left_nodes, name='Set-left')
  </code></pre>
  
  <p>it gives me the error <code>Feature creation failed.</code>
  I checked in the CAE console, and both <code>all_nodes[0]</code> and <code>left_nodes[0]</code> have the same structure: </p>
  
  <pre><code>mdb.models['mymodel'].rootAssembly.instances['merged_part_instance'].nodes[x] # x may differ
  </code></pre>
  
  <p>Nonetheless, I noticed that printing the lists gave different results:</p>
  
  <pre><code>&gt;&gt;&gt;print(all_nodes)
  ['MeshNode object', 'MeshNode object', ...
  
  &gt;&gt;&gt; print(left_nodes)
  [mdb.models['mymodel'].rootAssembly.instances['merged_part_instance'].nodes[57], mdb.models['mymodel'].rootAssembly.instances['merged_part_instance'].nodes[59],...
  </code></pre>
  
  <p>So, why are they different? Can I fix it or there is a better way to achieve this?
  Thanks in advance</p>