<div dir="ltr">Glad to hear it works! A disclaimer -- I don't profess to write good Python code, just mildly functional Python code :)<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 18, 2017 at 2:11 PM, Dennis Conklin <span dir="ltr"><<a href="mailto:dennis_conklin@goodyear.com" target="_blank">dennis_conklin@goodyear.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div link="blue" vlink="purple" lang="EN-US">
<div class="m_-372907782041875041WordSection1">
<p class="MsoNormal">Andy,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">That works!   Thanks much!  <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Now I just have to add it to every filter I’ve ever written to protect them all against empty blocks!  I’m amazed it took this long for this to come up!<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Dennis<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span class=""><b>From:</b> Andy Bauer [mailto:<a href="mailto:andy.bauer@kitware.com" target="_blank">andy.bauer@kitware.com</a><wbr>] <br>
</span><b>Sent:</b> Wednesday, October 18, 2017 1:47 PM</p><div><div class="h5"><br>
<b>To:</b> Dennis Conklin <<a href="mailto:dennis_conklin@goodyear.com" target="_blank">dennis_conklin@goodyear.com</a>><br>
<b>Cc:</b> Paraview (<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>) <<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>><br>
<b>Subject:</b> Re: [EXT] Re: [Paraview] How to test for empty block in multi-block dataset<u></u><u></u></div></div><p></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Maybe try the following:<u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">       if hasattr(block, "GetNumberOfCells") and block.GetNumberOfCells() > 0 and block.GetCellType(0)==12:</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">          process_block(block)</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Wed, Oct 18, 2017 at 1:05 PM, Dennis Conklin <<a href="mailto:dennis_conklin@goodyear.com" target="_blank">dennis_conklin@goodyear.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">Andy,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">GetCellType works fine when I have cells in the block, but in this recent case I had zero cells in the block after a Threshold filter,   my code is of the form:<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    Def process_block(block):</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">        Print block.GetNumberOfCells()</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New""> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New""> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New""> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New""> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    ##############################<wbr>##############################<wbr>#######     
</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    # main routine starts here</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    output.CopyStructure(inputs[0]<wbr>.VTKObject)</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    # if you ShallowCopy, then new variables created in input to filter</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    output.DeepCopy(inputs[0].<wbr>VTKObject) 
</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New""> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    #</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    # Loop over blocks in composite (Exodus) data set</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">    for block in output:</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New""> </span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">       # VTK element types:</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">       #     12 = VTK_HEXAHEDRON (Gdyr Hex)</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">       #      9 = VTK_QUAD  (Gdyr Membrane)</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">       #      3 = VTK_LINE  (Gdyr 3D Truss)</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">       # since EXODUS requires single element type per block, test 1st element only</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">       if block.GetCellType(0)==12:</span><u></u><u></u></p>
<p class="MsoNormal" style="text-autospace:none">
<span style="font-family:"Courier New"">          process_block(block)</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I think GetCellType is dying as there is no element(0)<u></u><u></u></p>
<p class="MsoNormal">I need a way to test the block before calling anything to see if it is empty<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks!<u></u><u></u></p>
<p class="MsoNormal">Dennis<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><b>From:</b> Andy Bauer [mailto:<a href="mailto:andy.bauer@kitware.com" target="_blank">andy.bauer@kitware.com</a><wbr>]
<br>
<b>Sent:</b> Wednesday, October 18, 2017 11:39 AM<br>
<b>To:</b> Dennis Conklin <<a href="mailto:dennis_conklin@goodyear.com" target="_blank">dennis_conklin@goodyear.com</a>><br>
<b>Cc:</b> Paraview (<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>) <<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>><br>
<b>Subject:</b> Re: [EXT] Re: [Paraview] How to test for empty block in multi-block dataset<u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi Dennis,<u></u><u></u></p>
</div>
<p class="MsoNormal">Maybe the block isn't a vtkDataSet and thus wouldn't have the GetCellType() method. You could try a print statement after the for loop to see what each block is by doing something
 like:<u></u><u></u></p>
</div>
<p class="MsoNormal">print block<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Could you share your full python code for the programmable filter? That may make it easier to track down.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Best,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Andy<u></u><u></u></p>
</div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">On Wed, Oct 18, 2017 at 11:01 AM, Dennis Conklin <<a href="mailto:dennis_conklin@goodyear.com" target="_blank">dennis_conklin@goodyear.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">Andy,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I’m not sure about the multiblock, my routines generally look like:<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">For block in output:<u></u><u></u></p>
<p class="MsoNormal">     If block.GetCellType(0)=12;<u></u><u></u></p>
<p class="MsoNormal">           process_block(block)<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">would this be<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">If input.GetBlock(i)<u></u><u></u></p>
<p class="MsoNormal">And I might not have loaded all the blocks in the set, then I might have eliminated some loaded blocks with earlier operations – what is the i in GetBlock?  Is it block_number as
 displayed in Spreadsheet or block index as in:<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">block_index = block.FieldData.GetArray(‘<wbr>ElementBlockIds’) - 1<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Sorry for such a basic question, but I only know the stuff I have used previously.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Dennis<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Andy Bauer [mailto:<a href="mailto:andy.bauer@kitware.com" target="_blank">andy.bauer@kitware.com</a><wbr>]
<br>
<b>Sent:</b> Wednesday, October 18, 2017 10:44 AM<br>
<b>To:</b> Dennis Conklin <<a href="mailto:dennis_conklin@goodyear.com" target="_blank">dennis_conklin@goodyear.com</a>><br>
<b>Cc:</b> Paraview (<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>) <<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>><br>
<b>Subject:</b> [EXT] Re: [Paraview] How to test for empty block in multi-block dataset<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<table class="m_-372907782041875041MsoNormalTable" style="background:lightgrey;border:outset gray 1.0pt" cellspacing="1" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding:.6pt .6pt .6pt .6pt">
<p class="MsoNormal"> <b><span style="color:red">WARNING - External email; exercise caution.</span></b><u></u><u></u></p>
</td>
</tr>
</tbody>
</table>
<div>
<div>
<p> <u></u><u></u></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi Dennis,<u></u><u></u></p>
</div>
<p class="MsoNormal">I think something like:<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">if multiblock.GetBlock(i) != None:<br>
  ...<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">should work. You probably don't even need the "!=None" part.<u></u><u></u></p>
</div>
<p class="MsoNormal">Cheers,<u></u><u></u></p>
</div>
<p class="MsoNormal">Andy<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">On Wed, Oct 18, 2017 at 10:41 AM, Dennis Conklin <<a href="mailto:dennis_conklin@goodyear.com" target="_blank">dennis_conklin@goodyear.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">P.S.  I’m writing python inside a Programmable Filter<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks again<u></u><u></u></p>
<p class="MsoNormal"><span style="color:#888888">Dennis</span><u></u><u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
______________________________<wbr>_________________<br>
Powered by <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=99HLWFzFakz2A2flWuPb%2BjcOwf%2FEEemG9UURNHalZKc%3D&reserved=0" target="_blank">
www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=3id87QE9dLu8DdNl%2BE7KX3z8TUWFHqotqxtAdGnj8uE%3D&reserved=0" target="_blank">
http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fparaview.org%2FWiki%2FParaView&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=EMSmEDwRt9GGxILGWdVsG7NuX%2FNZN4a5aPJvzF8X2Rk%3D&reserved=0" target="_blank">
http://paraview.org/Wiki/<wbr>ParaView</a><br>
<br>
Search the list archives at: <a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmarkmail.org%2Fsearch%2F%3Fq%3DParaView&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=mCNLuBUJ1akzSuauw0mK5dbUSoKJGKS9wPhjMkikhyg%3D&reserved=0" target="_blank">
http://markmail.org/search/?q=<wbr>ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fparaview&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=DoIRVm9jB%2BeEPp08AEkgj6RUMnzOU2bLj4SRL2Q%2BKYM%3D&reserved=0" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/paraview</a><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div></div>
</div>

</blockquote></div><br></div>