Export Options¶
The addon registers export_scene.skp under File -> Export -> SketchUp
(.skp). It converts Blender data to the public skppy.Model graph and writes
either a modern SKP container or a genuine pre-ZIP SketchUp Make 2017 file
without requiring the SketchUp SDK.
The complete model is validated and serialized before the destination is replaced. A conversion or writer failure therefore leaves an existing output file untouched.
Settings¶
Option |
Default |
Behavior |
|---|---|---|
File Format |
Modern |
Writes the current ZIP-based format or the legacy SketchUp Make 2017 CArchive format. |
Objects |
Visible |
Export visible objects, selected objects, or every object in the active scene. |
Inches per Blender Unit |
39.37007874 |
Converts Blender coordinates to SketchUp’s internal inch unit. Use |
Apply Modifiers |
On |
Uses evaluated mesh data with the current modifier stack. Unmodified shared mesh data remains one reusable SKP definition. |
Merge Coplanar Faces |
On |
Merges adjacent polygons on the same plane when their material and UV projection match. Internal edges are removed and enclosed boundaries become face holes. |
Materials and PBR |
On |
Preserves Base Color, Alpha, Metallic, and Roughness from the Principled BSDF. |
V-Ray Materials |
Off |
Generates V-Ray material graphs from Base Color, Alpha, Metallic, and Roughness while retaining the normal SketchUp appearance as a fallback. |
Embedded Textures |
On |
Embeds packed or file-backed images linked to Base Color. Procedural-only node graphs are not baked. |
UV Coordinates |
On |
Converts the active UV layer to per-face SKP projections and control points. |
Collections as Tags |
On |
Uses |
Cameras and Markers |
On |
Exports cameras and timeline camera markers as saved SketchUp scenes. |
Text as Annotations |
On |
Converts Blender Font objects to model-space SketchUp text annotations. |
Custom Properties |
On |
Writes scalar bool, unsigned integer, finite float, and string properties to a |
Geometry and instances¶
Mesh, Curve, Surface, and Meta objects are converted to SKP mesh definitions. Objects sharing the same unmodified Blender data and material slots reuse one definition and become separate component instances with their world transforms. When modifiers change evaluated geometry, the affected object receives its own definition.
Collection-instance Empty objects become component definitions containing
nested instances. The Empty’s world transform places the component, while the
source members keep their collection-local hierarchy and Blender’s
instance_offset. This also works for source collections that are not linked
directly into the active scene, where Blender may not have evaluated useful
matrix_world values for their objects.
An object linked through more than one path in the same collection hierarchy is exported once, following Blender’s evaluated-instance behavior. Child mesh and nested-collection definitions are written before the collection definition that references them; this dependency order is required by official SketchUp readers. Object-parent and nested-collection cycles are rejected explicitly. Ordinary Empty objects, lights, armatures, and other object families without a direct SKP representation are counted as ignored in the completion report.
Blender mesh vertices and edges remain shared inside each definition. Polygon loop direction, smooth/sharp state, material slots, and active UV data are preserved. Blender supports arbitrary per-loop UVs while one SKP face stores a single projective mapping; non-affine n-gon mappings are fitted and reported as conversion warnings.
Coplanar merging only joins edge-connected polygons with matching orientation, plane, material slot, and affine UV projection. Material boundaries, UV seams, non-coplanar edges, and non-manifold boundaries therefore remain separate. Closed interior cycles are emitted as SketchUp inner loops rather than being filled.
Edge shading¶
For every retained mesh edge, the exporter maps Blender’s actual face and edge
shading state to SketchUp’s public Edge.flags:
Blender edge state |
SketchUp flags |
Exported result |
|---|---|---|
Exactly two adjacent smooth-shaded faces and no explicit sharp mark |
|
Smooth shared boundary |
Either adjacent face is flat-shaded |
none |
Hard boundary |
Explicitly marked sharp |
none |
Hard boundary |
Boundary edge with fewer than two adjacent faces |
none |
Hard, visible boundary |
Non-manifold edge with more than two adjacent faces |
none |
Hard boundary |
This rule preserves smooth/flat transitions instead of smoothing an edge when
only one adjacent polygon is smooth. It does not apply the importer’s angle
threshold: Blender’s authored use_smooth and use_edge_sharp state is the
source of truth during export. When coplanar merging removes an eligible
internal edge, no SketchUp edge remains to carry shading flags; all retained
edges use the mapping above.
The SketchUp 2017 path writes the legacy object archive while preserving reusable component definitions, placements, geometry, transforms, edge flags, face holes, materials, textures, and tags. Modern export remains the choice for cameras, annotations, scenes, and custom properties that do not have equivalent legacy output support.
Materials and textures¶
The exporter reads the Principled BSDF when available and falls back to the material’s viewport diffuse state. Linked Image Texture nodes are followed through intermediate nodes. Packed images and existing image files are embedded in the SKP; generated or procedural images without bytes produce a warning and leave the material untextured.
Optional material custom properties skppy_x_scale and skppy_y_scale set the
physical texture tile size in SketchUp inches. Both default to 1.0.
When V-Ray Materials is enabled, the exporter adds a deterministic
MtlSingleBRDF -> BRDFVRayMtl graph to every exported material. Base colour
is converted from sRGB to V-Ray’s linear colour representation; opacity,
metallic, and roughness remain normalized factors. The graph targets the V-Ray
metadata generation observed for each output container: plugin version 23 for
modern SKP and version 16 for SketchUp Make 2017.
The ordinary SketchUp material and native PBR block are always written too, so
SketchUp and importers without V-Ray retain a useful appearance. An embedded
base-colour image is also connected through a V-Ray TexBitmap,
BitmapBuffer, and UVWGenChannel graph. The bitmap uses the same embedded
image basename and face UV channel as the native SketchUp texture.
Validation¶
The headless integration suite installs the packaged addon in Blender, exports a scene containing reusable meshes, a standalone collection source with an instance offset and nested transforms, smooth, sharp, boundary, and smooth/flat-transition edges, texture/UV data, PBR state, tags, text, attributes, and a camera-marker scene, then inspects the result. Separate C validators open both the modern and SketchUp 2017 Blender-generated files through the public SketchUp SDK and verify geometry, collection dependency ordering, edge flags, and container versions.