Andy, That works! Thanks much!
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! Dennis From: Andy Bauer [mailto:andy.ba...@kitware.com] Sent: Wednesday, October 18, 2017 1:47 PM To: Dennis Conklin <dennis_conk...@goodyear.com> Cc: Paraview (paraview@paraview.org) <paraview@paraview.org> Subject: Re: [EXT] Re: [Paraview] How to test for empty block in multi-block dataset Maybe try the following: if hasattr(block, "GetNumberOfCells") and block.GetNumberOfCells() > 0 and block.GetCellType(0)==12: process_block(block) On Wed, Oct 18, 2017 at 1:05 PM, Dennis Conklin <dennis_conk...@goodyear.com<mailto:dennis_conk...@goodyear.com>> wrote: Andy, 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: Def process_block(block): Print block.GetNumberOfCells() ################################################################### # main routine starts here output.CopyStructure(inputs[0].VTKObject) # if you ShallowCopy, then new variables created in input to filter output.DeepCopy(inputs[0].VTKObject) # # Loop over blocks in composite (Exodus) data set for block in output: # VTK element types: # 12 = VTK_HEXAHEDRON (Gdyr Hex) # 9 = VTK_QUAD (Gdyr Membrane) # 3 = VTK_LINE (Gdyr 3D Truss) # since EXODUS requires single element type per block, test 1st element only if block.GetCellType(0)==12: process_block(block) I think GetCellType is dying as there is no element(0) I need a way to test the block before calling anything to see if it is empty Thanks! Dennis From: Andy Bauer [mailto:andy.ba...@kitware.com<mailto:andy.ba...@kitware.com>] Sent: Wednesday, October 18, 2017 11:39 AM To: Dennis Conklin <dennis_conk...@goodyear.com<mailto:dennis_conk...@goodyear.com>> Cc: Paraview (paraview@paraview.org<mailto:paraview@paraview.org>) <paraview@paraview.org<mailto:paraview@paraview.org>> Subject: Re: [EXT] Re: [Paraview] How to test for empty block in multi-block dataset Hi Dennis, 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: print block Could you share your full python code for the programmable filter? That may make it easier to track down. Best, Andy On Wed, Oct 18, 2017 at 11:01 AM, Dennis Conklin <dennis_conk...@goodyear.com<mailto:dennis_conk...@goodyear.com>> wrote: Andy, I’m not sure about the multiblock, my routines generally look like: For block in output: If block.GetCellType(0)=12; process_block(block) would this be If input.GetBlock(i) 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: block_index = block.FieldData.GetArray(‘ElementBlockIds’) - 1 Sorry for such a basic question, but I only know the stuff I have used previously. Dennis From: Andy Bauer [mailto:andy.ba...@kitware.com<mailto:andy.ba...@kitware.com>] Sent: Wednesday, October 18, 2017 10:44 AM To: Dennis Conklin <dennis_conk...@goodyear.com<mailto:dennis_conk...@goodyear.com>> Cc: Paraview (paraview@paraview.org<mailto:paraview@paraview.org>) <paraview@paraview.org<mailto:paraview@paraview.org>> Subject: [EXT] Re: [Paraview] How to test for empty block in multi-block dataset WARNING - External email; exercise caution. Hi Dennis, I think something like: if multiblock.GetBlock(i) != None: ... should work. You probably don't even need the "!=None" part. Cheers, Andy On Wed, Oct 18, 2017 at 10:41 AM, Dennis Conklin <dennis_conk...@goodyear.com<mailto:dennis_conk...@goodyear.com>> wrote: P.S. I’m writing python inside a Programmable Filter Thanks again Dennis _______________________________________________ Powered by www.kitware.com<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> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html<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> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView<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> Search the list archives at: http://markmail.org/search/?q=ParaView<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> Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview<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>
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview