# SketchUp Links to database

**URL:** <https://forums.sketchup.com/t/sketchup-links-to-database/100969>\
**Category:** Ruby API\
**Tags:** spreadsheets, database, excel\
**Created:** [August 14, 2019, 7:35am UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969 "2019-08-14T07:35:52Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Derek](https://avatars.discourse-cdn.com/v4/letter/d/b38774/32.png) [@Derek](https://forums.sketchup.com/u/Derek)\
**Post date:** [August 14, 2019, 7:35am UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/1 "2019-08-14T07:35:52Z")

</div>

Is it possible to create simple drawings from data in either a database or spread sheet. Starting with a simple cube shape with just Height x Width x Depth. So that a drawing can be created from just data? I believe this is called parametric programming

---

<div class="post-metadata">

**Author:** ![MikeWayzovski](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/mikewayzovski/32/98346_2.png) [@MikeWayzovski](https://forums.sketchup.com/u/MikeWayzovski)\
**Post date:** [August 14, 2019, 1:07pm UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/2 "2019-08-14T13:07:45Z")

</div>

check this extension:  
[https://extensions.sketchup.com/nl/content/shapes](https://extensions.sketchup.com/nl/content/shapes)

this will create basic shapes.

If you want to edit shapes, you could create Dynamic Components:

 ![DC](https://global.discourse-cdn.com/sketchup/original/3X/3/f/3f63878dad02778b4e25f52dd250f2365ba618b5.gif)

[Cube Parametric.skp](https://forums.sketchup.com/uploads/short-url/5piGfgboN53QgBk7SaVxj1rqT4R.skp) (191.7 KB)

Profile Builder creates Parametric shapes and goes one step further…

[![](https://global.discourse-cdn.com/sketchup/original/3X/0/5/0559c3e0afcfb71cd2fb826e01090fdb556450aa.jpeg "Profile Builder 3 New Features") ](https://www.youtube.com/watch?v=9aBH_EHqXHQ)

---

<div class="post-metadata">

**Author:** ![jimhami42](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/jimhami42/32/1781_2.png) [@jimhami42](https://forums.sketchup.com/u/jimhami42)\
**Post date:** [August 14, 2019, 1:52pm UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/3 "2019-08-14T13:52:16Z")

</div>

You can create a Ruby plugin to open and read information from a file. Depending on what it is you want to do with the data, the SketchUp Ruby APIs can be used to create the geometry desired. Given a text file with data formatted as Height,Width,Depth:

```
12.5,22,12
10,2,4

```

You can use the plugin found here to import them:

[https://sites.google.com/site/spirixcode/code/jimhami42\_import\_boxes.rbz](https://sites.google.com/site/spirixcode/code/jimhami42_import_boxes.rbz)

NOTE: This assumes that the values are in inches. If you are using others units, simply scale everything when done.

---

<div class="post-metadata">

**Author:** ![Derek](https://avatars.discourse-cdn.com/v4/letter/d/b38774/32.png) [@Derek](https://forums.sketchup.com/u/Derek)\
**Post date:** [August 14, 2019, 3:35pm UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/4 "2019-08-14T15:35:44Z")

</div>

What computer language is used in creating a Ruby Plug in

---

<div class="post-metadata">

**Author:** ![jimhami42](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/jimhami42/32/1781_2.png) [@jimhami42](https://forums.sketchup.com/u/jimhami42)\
**Post date:** [August 14, 2019, 4:24pm UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/5 "2019-08-14T16:24:07Z")

</div>

> [@Derek](#):
>
> What computer language is used in creating a Ruby Plug in

Ruby plugins are written in Ruby. The Import Boxes plugin is short and simple:

```
#----------------------------------------------------------------------------------------
require 'sketchup.rb'
#----------------------------------------------------------------------------------------
module Jimhami42
  module ImportBoxes
# MAIN BODY -----------------------------------------------------------------------------
#
    class << self
      def import_boxes()
        model = Sketchup.active_model
        filename = UI.openpanel("Select TXT File", "~", "Text Files|*.txt;||")
        data = File.open(filename,"r")
        while(t = data.gets)
          t.gsub(/\s+/,"").chomp
          h,w,d = t.split(',')
          g = model.entities.add_group
          f = g.entities.add_face([0,0,0],[w.to_f,0,0],[w.to_f,d.to_f,0],[0,d.to_f,0])
          f.reverse!
          f.pushpull(h.to_f,0)
        end
      end
    end
# MAIN BODY -----------------------------------------------------------------------------
    unless file_loaded?("jimhami42_import_boxes.rb")
      menu = UI.menu("PlugIns").add_item("Import Boxes") { import_boxes() }
    file_loaded("jimhami42_import_boxes.rb")
    end
# MAIN BODY -----------------------------------------------------------------------------
  end
end

```

The plugins can be created with almost any text editor and saved as a text file with the extension “.rb”. Zipping the text file into a “.zip” file and renaming it to an “.rbz” extension, will allow it to be imported into SketchUp’s extensions.

Ruby documentation can be found here: [https://ruby-doc.org/](https://ruby-doc.org/)  
SketchUp Ruby APIs can be found here: [http://ruby.sketchup.com/](http://ruby.sketchup.com/)

---

<div class="post-metadata">

**Author:** ![DanRathbun](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/danrathbun/32/500_2.png) [@DanRathbun](https://forums.sketchup.com/u/DanRathbun)\
**Post date:** [August 14, 2019, 10:43pm UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/6 "2019-08-14T22:43:05Z")

</div>

> [@Derek](#):
>
> What computer language is used in creating a Ruby Plug in

_What color is the White House ?_  
_Who’s buried in Grant’s tomb?_

🤣

* * *

Please see the search results for previous topics on this subject …

- [Search Ruby API category: **Excel**](https://forums.sketchup.com/search?q=Excel%20category%3A13)

Or for available extensions …

- [Search Extension Warehouse: **Excel**](http://extensions.sketchup.com/en/search/site/Excel)

---

<div class="post-metadata">

**Author:** ![Derek](https://avatars.discourse-cdn.com/v4/letter/d/b38774/32.png) [@Derek](https://forums.sketchup.com/u/Derek)\
**Post date:** [August 15, 2019, 11:08am UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/7 "2019-08-15T11:08:28Z")

</div>

That’s very helpful Thank you

---

<div class="post-metadata">

**Author:** ![Derek](https://avatars.discourse-cdn.com/v4/letter/d/b38774/32.png) [@Derek](https://forums.sketchup.com/u/Derek)\
**Post date:** [August 15, 2019, 2:26pm UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/8 "2019-08-15T14:26:30Z")

</div>

Yes it’s easy when you know!!

---

<div class="post-metadata">

**Author:** ![Derek](https://avatars.discourse-cdn.com/v4/letter/d/b38774/32.png) [@Derek](https://forums.sketchup.com/u/Derek)\
**Post date:** [August 17, 2019, 11:25am UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/9 "2019-08-17T11:25:44Z")

</div>

That’s amazing

---

<div class="post-metadata">

**Author:** ![Derek](https://avatars.discourse-cdn.com/v4/letter/d/b38774/32.png) [@Derek](https://forums.sketchup.com/u/Derek)\
**Post date:** [August 17, 2019, 11:26am UTC](https://forums.sketchup.com/t/sketchup-links-to-database/100969/10 "2019-08-17T11:26:11Z")

</div>

That’s clever
