• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

Color the DC conditioning on its attributes & values (MYSQL

Scheduled Pinned Locked Moved Developers' Forum
23 Posts 4 Posters 645 Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    Dan Rathbun
    last edited by 13 Oct 2011, 16:43

    @blue_orchid said:

    i am not at all experienced in any programming language and mysql. Ruby is my first programming language. I have gone through several ruby guide, but still i am having hard time learning it and working on it.

    Yes it shows. You will need to study and re-read the tutorials again and again, until it sinks into your brain.

    You should read the 'Pick-Axe' book cover to cover.
    http://www.phrogz.net/ProgrammingRuby/frameset.html

    I'm not here much anymore.

    1 Reply Last reply Reply Quote 0
    • B Offline
      blue_orchid
      last edited by 13 Oct 2011, 20:13

      UI.menu("Plugins").add_item('Assesment') { Jeny.color }
      require 'mysql'
      module Jeny
          def self.color
      dbh = Mysql.real_connect("localhost", "root", "orange", "test",3306)
      dbh.query("drop table if exists inspection")
      dbh.query("create table inspection(component varchar(20), ID int(4), rating int(1))")
      dbh.query("insert into inspection values('deck',2345,1),('Substructure',2349,2),('Superstructure',2353,3)")
      
      #printf "%d rows were inserted\n",dbh.affected_rows
      #res = dbh.query("SELECT rating, id FROM inspection")
      res = dbh.query("SELECT rating FROM inspection where id = '2345'")
      while row = res.fetch_row do
      xx = row[0]
      printf "%s\n", xx
      end
      
      res1 = dbh.query("SELECT rating FROM inspection where id = '2349'")
      while row = res1.fetch_row do
      xy = row[0]
      printf "%s\n", xy
      end
      
      res2 = dbh.query("SELECT rating FROM inspection where id = '2353'")
      while row = res2.fetch_row do
      yy = row[0]
      printf "%s\n", yy
      end
      
      Sketchup.active_model.entities.to_a.each{|e|
      if e.get_attribute('dynamic_attributes','id','2345')
      e.set_attribute('dynamic_attributes','rating','xx')
         end
      }
      Sketchup.active_model.entities.to_a.each{|e|
      if e.get_attribute('dynamic_attributes','id','')== "2349"
      e.set_attribute('dynamic_attributes','rating','xy')
      end
      }
      Sketchup.active_model.entities.to_a.each{|e|
      if e.get_attribute('dynamic_attributes','id','') == "2353"
      e.set_attribute('dynamic_attributes','rating','yy')
      end
      }
      
      Sketchup.active_model.entities.to_a.each{|e|
      if e.get_attribute('dynamic_attributes','id','2345') && xx == "1"
           e.set_attribute( 'dynamic_attributes', 'material', 'red')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"red"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
      elsif e.get_attribute('dynamic_attributes','id','2345') && xx == "2"
           e.set_attribute( 'dynamic_attributes', 'material', 'blue')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"blue"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
      elsif e.get_attribute('dynamic_attributes','id','2349') && xx == "3"
           e.set_attribute( 'dynamic_attributes', 'material', 'green')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"green"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
           end
           }
      
      Sketchup.active_model.entities.to_a.each{|e|
      if e.get_attribute('dynamic_attributes','id','2349') && xy == "1"
           e.set_attribute( 'dynamic_attributes', 'material', 'red')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"red"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
      elsif e.get_attribute('dynamic_attributes','id','2349') && xy == "2"
           e.set_attribute( 'dynamic_attributes', 'material', 'blue')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"blue"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
      elsif e.get_attribute('dynamic_attributes','id','2349') && xy == "3"
           e.set_attribute( 'dynamic_attributes', 'material', 'green')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"green"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
      end
           }
      
      Sketchup.active_model.entities.to_a.each{|e|
      if e.get_attribute('dynamic_attributes','id','2353') && yy == "1"
           e.set_attribute( 'dynamic_attributes', 'material', 'red')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"red"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
      elsif e.get_attribute('dynamic_attributes','id','2353') && yy == "2"
           e.set_attribute( 'dynamic_attributes', 'material', 'blue')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"blue"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
      elsif e.get_attribute('dynamic_attributes','id','2353') && yy == "3"
           e.set_attribute( 'dynamic_attributes', 'material', 'green')
           e.set_attribute( 'dynamic_attributes', '_material_formula', '"green"')
           $dc_observers.get_latest_class.redraw_with_undo(e)
                      end
                  }
       
      
      end
      end
      
      
      

      %(#BF4000)[What I did here:
      I set attribute 'rating' for different objects with different names like xx, xy and yy.
      Then I made these attributes 'ratings' equal to result from query for each component/object.
      Finally i selected the color for each component and different values of ratings a color.

      But it still selects only last code i.e. objects color change to green . May be it could not identify the Db values.]
      Now what i want to do that if the rating for a component is 1 in database, then the attribute 'rating' for that component is changed to 1 using DB value. Is it possible?

      1 Reply Last reply Reply Quote 0
      • B Offline
        blue_orchid
        last edited by 18 Oct 2011, 22:30

        This code finally worked 😄

        UI.menu("Plugins").add_item('Assesment') { Inspection.color }
        
        require 'mysql'
        
        module Inspection
            def self.color
        		dbh = Mysql.real_connect("localhost", "root", "***", "test",3306)
        		dbh.query("drop table if exists inspection")
        		dbh.query("create table inspection(component varchar(20), ID int(4), rating int(1))")
        		dbh.query("insert into inspection values('deck',2345,2),('Substructure',2349,1),('Superstructure',2353,3)")
        
        		res = dbh.query("SELECT rating FROM inspection where id = '2345'")
        		while row = res.fetch_row do
        		xx = row[0]
        		printf "%s\n", xx
        		end
        
        		res1 = dbh.query("SELECT rating FROM inspection where id = '2349'")
        		while row = res1.fetch_row do
        		xy = row[0]
        		printf "%s\n", xy
        		end
        
        		res2 = dbh.query("SELECT rating FROM inspection where id = '2353'")
        		while row = res2.fetch_row do
        		yy = row[0]
        		printf "%s\n", yy
        		end
        
        
        
        		Sketchup.active_model.entities.to_a.each{|e|
        			if e.get_attribute('dynamic_attributes','id','')=='2345'&& xx=='1'
        			e.set_attribute('dynamic_attributes','rating','1')
        			elsif e.get_attribute('dynamic_attributes','id','')=='2345'&& xx=='2'
        			e.set_attribute('dynamic_attributes','rating','2')
        			elsif e.get_attribute('dynamic_attributes','id','')=='2345'&& xx=='3'
        			e.set_attribute('dynamic_attributes','rating','3')
        		end
        		}
        		Sketchup.active_model.entities.to_a.each{|e|
        			if e.get_attribute('dynamic_attributes','id','')=='2349'&& xy=='1'
        			e.set_attribute('dynamic_attributes','rating','1')
        			elsif e.get_attribute('dynamic_attributes','id','')=='2349'&& xy=='2'
        			e.set_attribute('dynamic_attributes','rating','2')
        			elsif e.get_attribute('dynamic_attributes','id','')=='2349'&& xy=='3'
        			e.set_attribute('dynamic_attributes','rating','3')
        		end
        		}
        		Sketchup.active_model.entities.to_a.each{|e|
        			if e.get_attribute('dynamic_attributes','id','')=='2353'&& yy=='1'
        			e.set_attribute('dynamic_attributes','rating','1')
        			elsif e.get_attribute('dynamic_attributes','id','')=='2353'&& yy=='2'
        			e.set_attribute('dynamic_attributes','rating','2')
        			elsif e.get_attribute('dynamic_attributes','id','')=='2353'&& yy=='3'
        			e.set_attribute('dynamic_attributes','rating','3')
        		end
        		}
        		Sketchup.active_model.entities.to_a.each{|e|
        			if e.get_attribute('dynamic_attributes','rating','')=='1'
        			e.set_attribute( 'dynamic_attributes', 'material', 'black')
        			e.set_attribute( 'dynamic_attributes', '_material_formula', '"black"')
        			$dc_observers.get_latest_class.redraw_with_undo(e)
        			elsif e.get_attribute('dynamic_attributes','rating','')=='2'
        			e.set_attribute( 'dynamic_attributes', 'material', 'blue')
        			e.set_attribute( 'dynamic_attributes', '_material_formula', '"blue"')
        			$dc_observers.get_latest_class.redraw_with_undo(e)
        			elsif e.get_attribute('dynamic_attributes','rating','')=='3'
        			e.set_attribute( 'dynamic_attributes', 'material', 'red')
        			e.set_attribute( 'dynamic_attributes', '_material_formula', '"red"')
        			$dc_observers.get_latest_class.redraw_with_undo(e)
        		end
        		}
        	end
        end
        

        Thanks to all.

        1 Reply Last reply Reply Quote 0
        • 1
        • 2
        • 2 / 2
        2 / 2
        • First post
          22/23
          Last post
        Buy SketchPlus
        Buy SUbD
        Buy WrapR
        Buy eBook
        Buy Modelur
        Buy Vertex Tools
        Buy SketchCuisine
        Buy FormFonts

        Advertisement