Python code (copy paste into Python SOP):
node = hou.pwd() geo = node.geometry() parentNode = node.parent ( ) wrangleNode = parentNode.createNode ( "attribwrangle", "attribwrangle_geometry" ) wrangleNode.setPosition ( node.position ( ) + hou.Vector2 ( 0, -1 ) ) wrangleNode.parm ( "class" ).set ( 0 ) wrangleNode.setDisplayFlag ( True ) wrangleNode.setRenderFlag ( True ) wrangleNode.setSelected ( True, clear_all_selected = True ) items = [ str ( pt.position ( ) ).replace ( "[", "{" ).replace ( "]", "}" ) for pt in geo.points ( ) ] points = "vector points [ ] = {" + ",".join ( items ) + "};\n" items = [ ",".join ( [ str ( vtx.point ( ).number ( ) ) for vtx in pr.vertices ( ) ] ) for pr in geo.prims ( ) ] primpts = "int primpts [ ] = {" + ",".join ( items ) + "};\n" items = [ str ( pr.numVertices ( ) ) for pr in geo.prims ( ) ] vertices = "int nprimpts [ ] = {" + ",".join ( items ) + "};\n" color = "vector color [ ] = { };\n" if geo.findPointAttrib ( "Cd" ) != None: items = [ str ( pt.attribValue ( "Cd" ) ).replace ( "(", "{" ).replace ( ")", "}" ) for pt in geo.points ( ) ] color = "vector color [ ] = {" + ",".join ( items ) + "};\n" openpolys = [ ] for pr in geo.prims ( ): if not pr.isClosed ( ): openpolys.append ( pr.number ( ) ) items = [ str ( index ) for index in openpolys ] openprims = "int openpolys [ ] = {" + ",".join ( items ) + "};\n" creategeo = """ foreach ( vector p; points ) addpoint ( geoself ( ), p ); int ncolor = len ( color ); if ( ncolor > 0 ) { addattrib ( geoself ( ), \"point\", \"Cd\", { 1, 1, 1 } ); for ( int i = 0; i < ncolor; ++i ) setattrib ( geoself ( ), \"point\", \"Cd\", i, -1, color [ i ], \"set\" ); } int start = 0; int npoints = len ( nprimpts ); for ( int i = 0; i < npoints; ++i ) { string type = \"poly\"; if ( find ( openpolys, i ) >= 0 ) type = \"polyline\"; int pr = addprim ( geoself ( ), type ); for ( int f = 0; f < nprimpts [ i ]; ++f ) addvertex ( geoself ( ), pr, primpts [ start + f ] ); start += nprimpts [ i ]; }""" vexcode = points + primpts + vertices + color + openprims + creategeo wrangleNode.parm ( "snippet" ).set ( vexcode )