Skip to content

Repository files navigation

SketchUpNET

C++/CLI API Wrapper for the Trimble(R) SketchUp(R) C API. http://www.sketchup.com/intl/en/developer/api-terms-of-service.pdf

This library adds .NET support to the existing SketchUp C-API. It makes most SketchUp C-API features available in .NET and therefore accessible in C# or VB applications. You can download a pre-built release of the library or build it yourself from scratch.

Code-Examples

This Repo contains three sample projects using SketchUpNET in C#.NET:

  • SketchUpForDynamo: An Autodesk's(R) Dynamo Node Package allowing you to read/write SketchUp files from Dynamo.
  • SketchUpForGrasshopper: A Set of Components for McNeel's(R) Grasshopper(R) allowing you to read/write SketchUp files from GH.
  • SketchUpNETConsole: A sample C# console application using SketchUpNET.

If you want to build your own application using the SketchUp API take the following steps:

Loading a Model

SketchUpNET.SketchUpskp=newSketchUp();skp.LoadModel("myfile.skp",true);foreach(varsrfinskp.Surfaces){// do something with your surfaces}

Saving a Model

skp.WriteNewModel("filename.skp");

Converting a Model

SketchUpNET.SketchUpskp=newSketchUp();skp.SaveAs("old-file.skp",SKPVersion.V2020,"new-file.skp");

Writing a Surface to a File

SketchUpNET.SketchUpskp=newSketchUpNET.SketchUp();skp.Layers=newList<Layer>(){newLayer("Layer0")};skp.Surfaces=newList<Surface>();skp.Curves=newList<Curve>();skp.Edges=newList<Edge>();List<SketchUpNET.Vertex>Verticies=newList<SketchUpNET.Vertex>();SketchUpNET.LoopOuterEdges=newSketchUpNET.Loop();OuterEdges.Edges=newList<Edge>();{OuterEdges.Edges.Add(newSketchUpNET.Edge(newVertex(0,0,0),newVertex(500,0,0),"Layer0"));OuterEdges.Edges.Add(newSketchUpNET.Edge(newVertex(500,0,0),newVertex(500,500,0),"Layer0"));OuterEdges.Edges.Add(newSketchUpNET.Edge(newVertex(500,500,0),newVertex(0,500,0),"Layer0"));OuterEdges.Edges.Add(newSketchUpNET.Edge(newVertex(0,500,0),newVertex(0,0,0),"Layer0"));}List<Loop>InnerLoops=newList<Loop>();{SketchUpNET.LoopInnerEdges=newSketchUpNET.Loop();InnerEdges.Edges=newList<Edge>();InnerEdges.Edges.Add(newSketchUpNET.Edge(newVertex(100,100,0),newVertex(400,100,0),"Layer0"));InnerEdges.Edges.Add(newSketchUpNET.Edge(newVertex(400,100,0),newVertex(400,400,0),"Layer0"));InnerEdges.Edges.Add(newSketchUpNET.Edge(newVertex(400,400,0),newVertex(100,400,0),"Layer0"));InnerEdges.Edges.Add(newSketchUpNET.Edge(newVertex(100,400,0),newVertex(100,100,0),"Layer0"));InnerLoops.Add(InnerEdges);}SketchUpNET.Surfaces=newSketchUpNET.Surface(OuterEdges,InnerLoops);skp.Surfaces.Add(s);skp.WriteNewModel(@"TempModel.skp");

Requirements

If not installed you might requires Visual C++ Redistributable Packages for Visual Studio https://www.microsoft.com/en-sg/download/details.aspx?id=40784

The library requires the SketchUp C API which is part of the package.

nuget Binaries

SketchUpNET is available as a precompiled binary on nuget: https://www.nuget.org/packages/SketchUpNET/

About

SketchUp C# API - A C++/CLI API Wrapper for the Trimble(R) SketchUp(R) C API

Topics

Resources

Stars

115 stars

Watchers

16 watching

Forks

Releases

Packages

Used by

Contributors

Languages