"Search Values Get Rows"

Greetings
Iam trying to use this node called “Search Values Get Rows”, I’ve entered inputs as shown in the screenshot but I receive “Empty list” every time I run it.

Its a custom node, and not one I’m familiar with. My best guess is the excel impoty in the node isn’t working which is common. Double check it is using the exportXML node instead (right click node, edit).

I apologize but I can’t figure out how do I check the excel import code in the custom node’s script I’m not good at coding by python. how can i use exportXML to check the script? this is the structure of the custom node. I’ve done some research on this node too but i couldnt find any solution or alternative node that does the same funtion sadly.

Ah it’s all in Python… bit harder. Can you explain what you are trying to achieve using this node? It can probably be done without Python or this custom node.

Hello @mohamadashraf2017 …does it help when yoy only feed in your filepath and not file from path

2 Likes

I want dynamo to return the row that contains string or number that I search for, that’s what Iam trying to achieve.
the main goal is I have instance parameters that I filled their names and values in excel that i want to input their values in Revit through dynamo, but I don’t want to use list methods since data might be shuffled inside excel next time if i use it for another project, I’m trying to use dictionary method to associate the parameters as keys to their values.

I tried that but i still received “Empty list”.

I’ve tried looking for a solution on the website of the package i got the node from (Bumblebee by Konrad K Sobon) Search value get Row doesn’t work with FilePath · Issue #27 · ksobon/Bumblebee · GitHub , I left the File path input in the node empty and just entered the File path in a separate node, but it gave me this error:

[0] Traceback (most recent call last):
  File "<string>", line 109, in <module>
EnvironmentError: System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC
   at Microsoft.Scripting.ComInterop.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
   at CallSite.Target(Closure , CallSite , ComObject )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
   at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
   at Microsoft.Scripting.Interpreter.DynamicInstruction`2.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run3[T0,T1,T2,TRet](T0 arg0, T1 arg1, T2 arg2)
   at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
   at Microsoft.Scripting.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)

Generally I would have recommend list methods to solve this, but if you don’t want to then you’ll need to contact the node author or delve into the Python to figure out what’s going wrong.

1 Like

May i ask how do i return the excel row through lists ?

  1. Read the excel data using the open xml excel node noted above. You may need to insert a List.Transpose after this - I can’t recall if these nodes read in columns or rows. Checking the data should make that abundantly clear - the value as index[0][1] should be the content in cell b1.
  2. Use a List.Contains node where the lists is the excel data set to level two, and the element is the item you are looking for. This should give you a booleans (true or false) for each row of data.
  3. Use a List.FilterByBoolMask where the list is the excel data and the mask is the true false value. The result of the ‘in’ input should be every row with the item you are looking for.
1 Like

hello jacob thank you for your reply I tried the method you mentioned ( i also added clean node to remove nulls from empty cells in excel, the data from openxml node was exported in rows which is good) but i had some problems when i used it to search for a list of strings, it gives me wrong rows because the bool mask arrangement from the items im looking for is not matching with the excel sheet.

Use List.AnyTrue after the List.Contains node

I’ve tried it but sadly the “filterbyboolmask” node doesnt return the rows from excel in the same arrangement of the keywords list i put into the “list.contains”

Try level 2 for the list, level 1 for the item, and longest lacing, not cross product on the List.Contains node.