Using Ruby API to Export Data from Sketchup


I’ve created an extension to export the current state of a model using the Ruby API. I’m curious what, if any, data is not accessible through ruby but is saved in the SKP file? I recall seeing some reference to a few things that were not exposed but I can’t find the posts now.

If I was to use the C SDK would I be able to access the data that isn’t accessible through the Ruby API?


Sketchup web exporter?

NO. Actually the C SDK is somewhat behind the Ruby API. (The C SDK is a lot newer.) But work is done each cycle, and more and more is being added, so stayed tuned.

It is actually easier to ask IF something specific is exposed, than to ask what is not.


So, Tell us more. Any specific file format ? Have you looked at any examples to guide your way?


I looked at what I could find from others but didn’t see many complete examples in ruby for exporters. The ones I saw were tailored to some other file format that didn’t support most of what is in an SKP (such as STL).

The format I’m serializing to is a custom JSON file format with care taken to handle binary data when found in attributes. In order to do this I worked my way class by class in the documentation and created serializers (and soon deserializers). I’ll likely just have to start playing around with various features and models to see what I’ve missed and come back with those questions.

I’d like to use this to allow for version control of a model which is why getting the full suite of properties and metadata is important. I’ll likely just need to start playing around with various features and models to see what breaks. That’s always the fun part anyway.


I’m curious: for what purpose are you seeking to do this (if the answer is proprietary that’s ok). It seems to me that the SketchUp file itself is the best representation of the current state of the model, and exporting that state serves a useful purpose only if you want to import into some other app. Just asking…

Edit: I didn’t read your last post carefully enough. Version control. Hmmm…