Sketchup metamodel


#1

Is the Sketchup meta-model documented anywhere?

I am trying to understand how Sketchup works and a meta-model would help me.

(If this is an inapropriate question feel free to say so and delete).

Kind regards

Mouse


#2

There is nothing in the documentation specifically named “meta-model”.

Perhaps you could explain more what you seek ?

In what way ? It is an application like most others. It has a window interface with menu, toolbars, inspector panels, status bar, etc.

For the end user there are tutorial videos and a help center with articles organized as a online user manual.


#3

It’s relative term. As applied to Sketchup, if you say a sketchup model of a house is the ‘model’ abstraction level, then a meta-model would be at the level above, ie something like:

(Probably all wrong, but you get the idea!!!)
A point has a triple of co-ordinates
An edge has two points
A line consists of two edges and inner and an outer edge
A face is a collection of edges which meet the co-planar and close constrainst
The co-planar constraint is defined as etc…

It may be revealed in fragments in an API, but it may not be possible to reconstruct it from an API. It may be (usually partially) expressed physically in the application data model.

Sorry if the question is inappropriate…

Kind regards

Mouse
Mike


#4

Except that we don’t. The word abstraction can have different specific meanings depending upon the field.
The use that makes most sense here is: https://en.wikipedia.org/wiki/Abstraction_(software_engineering)

So using this definition, we call the model of the house “an instance” of the Sketchup::Model class.

The abstraction here would be the API interface implemented as the API’s Sketchup::Model class, and from it other instances of other API classes retrieved via property or getter methods (of the model instance,) that themselves provide abstraction (or simplified interface or access) at a high level.

First of all, SketchUp is closed source, and it’s .skp file format is proprietary (and the schema for the xml files’s in the .layout archive has not been published.)

The various SketchUp family of APIs and SDKs allow working with models and documents either “live” or in file form. These APIs are the only available abstraction level available to developers.

Without being an employee of the company or otherwise a party to a legal agreement, the public APIs will be the limit of your access to the application data models for the SketchUp family of products.

It was not inappropriate, … just weirdly abstract. :wink:

This is not true in the SketchUp API.

(a) There is no actual Line class object. Lines and planes are instead described by arrays.
See the introduction to the Geom module.

(b) SketchUp’s Edge class does not really have any “sides” (inner, outer or otherwise.)


#5

This GIF is a bit out of date (there are some newer classes not shown),
but it can give a visual idea of how the classes relate to one another in the Ruby API.

Open arrows show instance getter/property access.
Closed arrows show subclass relationship.


#6

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.