"Surfaces" in the SketchUp C API

I have started using the SketchUp C API to import SKP files into our standalone app.
Is there a way within the API to access what SketchUp considers a “Surface” which appears to be a set of connected faces.

For instance, when using the attached SKP file…

Faces and Surfaces.zip (7.8 MB)

…the webapp will report ‘info’ where some selections are faces:

and some are surfaces:

I don’t see a way in the API to get the surfaces - knowing that some faces are connected instead of all being independent would greatly increase our performance when making polygonal meshes from the faces.

Any ideas?

Thanks in advance.

The edges between “surface” faces are softened and/or smoothed.

The “surface” feature is a GUI feature and I do not think either API (Ruby nor C) has a “get surface” method / function.

So within any entities collection (model, group or component) you would need to filter the faces you get back. It might be easier to collect the edges, and filter out any that are not softened or smoothed. Then get the faces that share the remainder. You’ll need to decide whether you also need the unsoftened / unsmoothed border edges.

Another possibility is to go via the EdgeUse. If you have a face that is part of a surface, having a smoothed / softened edge, then you get the next connected edge from the edge’s EdgeUse object and from that the connected face. … And so on.


Thanks for verifying the issue regarding ‘surfaces’ and the API … and for the suggestions about how edges and “edgeuse” might help.


It was a second thought because any entities collection might have more than 1 independent “surface” feature. The 1st suggestion would treat them all as one, which might lead to an erroneous import.

Yea, no API for this. (You can log a ticket here: GitHub - SketchUp/api-issue-tracker: Public issue tracker for the SketchUp and LayOut's APIs)

Can you expand on this? I’d like to understand this scenario better.

I had to find the surfaces myself in the OBJ exporter for QuadFace Tools:

It’s tied deeply with the logic of dealing with QFT quads, but maybe the gist of the logic will help you out?

1 Like