This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Tag mass edit
#1
Hi
I'm trying to organize my Objects a bit with giving them tags I can use in scripting or just to filter what I need to see.
All my objects in building "small" is called "Small - Living Room - Light 1 On/Off" I want to give that Object 4 tags (Small, Living Room, Light 1, On/Off).

If I use the Object filter and type "Small" and then Mass edit > Object properties > Field list >  Tags and type in "Small" it works.
But if I then use the Object filter again and type in "Living Room" and click Mass edit >  Object properties > Field list >  Tags, then there is no text and if I write "Living Room" and click "Save" then it deletes everything but the new tag "Living Room".
Reply
#2
Some years ago I made this script, now would do it differently but still  will work.
Code:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
seperators = '.,_ =+' -- Start address of objects (min: 0/0/1 = main/sub/address) start_main = 0 start_sub = 0 start_address = 1 -- End address of objects (max: 31/7/255 = main/sub/address) end_main = 15 end_sub = 7 end_address = 255 ------------------------------------------ End Parameters ------------------------------------------ ------------------------------ DON'T CHANGE ANYTHING UNDER THIS LINE ------------------------------- function split(source, delimiters)         local elements = {}         local pattern = '([^'..delimiters..']+)'         string.gsub(source, pattern, function(value) elements[#elements + 1] =     valueend);         return elements end -- Calculate start address to DB format start_objectaddress = ((start_main * 2048) + (start_sub * 256) + start_address) -- Calculate end address to DB format end_objectaddress = ((end_main * 2048) + (end_sub * 256) + end_address) -- Get all objects from DB all_objects = db:getall('SELECT address, name, tagcache FROM objects') for _, object in ipairs(all_objects) do   -- Check if object is inside given range   if object.address >= start_objectaddress and object.address <= end_objectaddress then      currentrowaddress = object.address     myobject = grp.find(currentrowaddress)     nameTable = split(myobject.name, seperators--spliting  object string in to table       --  log(nameTable)     for _, tag in ipairs(nameTable) do       tagvalue = tag            -- Check if object tag already exists inside DB      current_object_tag = db:getall('SELECT object, tag FROM objecttags WHERE object = ' .. currentrowaddress .. ' AND tag = "' .. tagvalue .. '"')      object_tagcache = db:getone('SELECT tagcache FROM objects WHERE address = ' .. currentrowaddress .. '')      if #current_object_tag == 0 then         -- Add object to table objecttags         db:insert('objecttags', {object = currentrowaddress, tag = tagvalue, })           -- Check if object already has other tag values inside DB and add new values to tagcache         if object_tagcache == nil or object_tagcache == "" then           db:update('objects', { tagcache = tagvalue }, { address = currentrowaddress })             else           tag_string = "" .. object_tagcache .. ", " .. tagvalue .. ""                log(tag_string)           db:update('objects', { tagcache = tag_string }, { address = currentrowaddress })           end      end         end   end end script.disable(_SCRIPTNAME)
------------------------------
Ctrl+F5
Reply
#3
Thanks alot, do I just add it to the common functions?
Reply
#4
No, you run this script once as a script, can be resident. Based on used separators it will auto generate tags from the object name.
------------------------------
Ctrl+F5
Reply
#5
Thanks, it works
Reply


Forum Jump: