SketchUp C API

- Main Page
- Related Pages
- Data Structures
- Files

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SketchUp C API Release Notes

## SketchUp API 14.1, SketchUp 2026.1

- Added SUEntitiesAddDimensions()

## SketchUp API 14.0, SketchUp 2026.0

- Added APIs for section planes management.
  - SUModelGetNumActiveSectionPlanes()
  - SUModelGetActiveSectionPlanes()
- Fixed SUModelAddLayers() to ensure layer names are unique.
- Changed SUEnvironmentCreateFromFile to allow for an empty name parameter. When empty, the name of the environment will use either the name from the ske file or from the file name.
- Added APIs for font management.
  - SUModelAddFont()

## SketchUp API 13.1, SketchUp 2025.0.2

- Added APIs for physically based material properties.
  - SUMaterialSetNormalEnabled()
  - SUMaterialSetAOEnabled()

## SketchUp API 13.0, SketchUp 2025.0

- Addressed an issue that prevented the C API from being used with C compilers. The SUEntityType enum and SUSnapToBehavior enum was originally incorrectly defined inside of structs. While this worked with GCC and Clang in C mode, it failed in MSVC. These enums are now conditionally defined in outside the structs when consumed by C compilers.
- Added APIs for physically based material properties.
  - SUMaterialGetWorkflow()
  - SUMaterialSetMetalnessEnabled()
  - SUMaterialIsMetalnessEnabled()
  - SUMaterialSetMetallicTexture()
  - SUMaterialGetMetallicTexture()
  - SUMaterialSetMetallicFactor()
  - SUMaterialGetMetallicFactor()
  - SUMaterialSetRoughnessEnabled()
  - SUMaterialIsRoughnessEnabled()
  - SUMaterialSetRoughnessTexture()
  - SUMaterialGetRoughnessTexture()
  - SUMaterialSetRoughnessFactor()
  - SUMaterialGetRoughnessFactor()
  - SUMaterialIsNormalEnabled()
  - SUMaterialSetNormalTexture()
  - SUMaterialGetNormalTexture()
  - SUMaterialSetNormalScale()
  - SUMaterialGetNormalScale()
  - SUMaterialSetNormalStyle()
  - SUMaterialGetNormalStyle()
  - SUMaterialIsAOEnabled()
  - SUMaterialSetAOTexture()
  - SUMaterialGetAOTexture()
  - SUMaterialSetAOStrength()
  - SUMaterialGetAOStrength()
- Added the `RenderPhysicallyBased` enumeration value to the `RenderMode` rendering options key.
- Added APIs for the Snap entity introduced in SketchUp 2023.1: SUSnapRef.
- Added SUTextureSetDimensions().
- Added SUModelReorderScene().
- Added SUFaceCoplanarWith().
- Added SUComponentDefinitionIsManifold().
- Added APIs for image based lighting environments:
  - Added SUEnvironmentsRef.
  - Added SUEnvironmentRef.
  - Added SUModelGetEnvironments().
  - Added SUSceneSetUseEnvironment().
  - Added SUSceneGetUseEnvironment().
  - Added SUSceneSetEnvironment().
  - Added SUSceneGetEnvironment().
- Added SUEnvironmentWriteHDRImageToFile().
- Added SUSceneGetNumActiveSectionPlanes().
- Added SUSceneGetActiveSectionPlanes().
- Added SUSceneUpdate().
- Fixed issue of SUStylesSetSelectedStyle() for case where trying to set th selected style to the active style.

## SketchUp API 12.0, SketchUp 2024.0

- Added APIs to perform overlay drawing on SketchUp's view.
  - SUModelCreateOverlay()
  - SUModelReleaseOverlay()
  - SUOverlayEnable()
- Added rendering options support for Ambient Occlusion. The added keys are:
  - `AmbientOcclusion`
  - `AmbientOcclusionDistance`
  - `AmbientOcclusionIntensity`

## SketchUp API 11.2

- Fixed various security issues.

## SketchUp API 11.1, SketchUp 2023.1

- Added SUTextureGetFilePath()
- Changed SUInstancePathSetLeaf() to accept SU_INVALID as an entity parameter to remove the leaf
- Fixed SUEntitiesSetActiveSectionPlane() not accepting SU_INVALID as a section plane parameter.

## SketchUp API 11.0, SketchUp 2023.0

- Fixed possible crash when (1) an edge reference is created with SUGeometryInputAddEdge() by connecting two vertices so close that they are considered coincident; (2) that edge reference is added as the first edge of a curve with SUGeometryInputAddCurve(); and (3) geometry is subsquently created with SUEntitiesFill() with `weld_vertices` set to `true`. A crash would occur in an API call traversing that curve, such as SUCurveGetEdges()
- Fixed SUEntitiesErase() that might leave the model in an invalid unfixable state.

## SketchUp API 10.3

- Fixed a possible crash in SUTextureWriterWriteTexture() when the texture is corrupted.
- Fixed several security issues.

## SketchUp API 10.2

- Made fixes in the core texture mapping code to better catch certain invalid cases (such as UVs specified on colinear points, texture projection vector being perpendicular to a face normal vector). SUFacePositionMaterial() may now return SU_ERROR_INVALID_ARGUMENT in such cases where it would erroneously succeed before. SUEntitiesFill() will also detect these invalid cases, but it will apply a default texture mapping rather than returning an error.

## SketchUp API 10.1, SketchUp 2022.0.1

- Fixed SUComponentDefinitionSetName() such that it will automatically generate a unique name if the given name already exist in the model the definition belongs to.

## SketchUp API 10.0, SketchUp 2022.0

- Added SUFaceClearTexturePosition()
- Added SUClassificationsGetNumSchemas()
- Added SUClassificationsGetSchemas()
- Added SUSceneGetDescription()
- Added SUSceneSetDescription()
- Added SUSchemaGetSchemaName()
- Deprecated SUComponentInstanceSaveAs()
- Added SUComponentDefinitionSaveToFile()
- Added SUModelVersion_Current() to enum SUModelVersion
- Moved SUModelVersion() to new model_version.h header file
- Remove obsolete `NamedOptions` options provider that never worked correctly
- Added missing rendering options `DisplaySectionCuts`, `DrawBackEdges`, `SectionCutDrawEdges`, `DrawHiddenGeometry` and `DrawHiddenObjects` to the SURenderingOptionsRef documentation.
- Removed rendering option `FaceColorMode` from SURenderingOptionsRef documentation. This option was removed from the SDK in SketchUp 2019.1.

## SketchUp API 9.1, SketchUp 2021.1

- Relaxed some restrictions on the deprecated model loading APIs (SUModelCreateFromFile(), SUModelCreateFromBuffer() and SUModelLoadDefinition()) so that they won't fail to load newer version models due to differences in the minor model version number.
- Added SUMaterialWriteToFile()
- Added SUModelLoadMaterial()
- Added SUFaceGetUVTileAt()
- Added SUFaceIsTexturePositioned()
- Added SUFaceIsTextureProjected()
- Added SUFaceGetTextureProjection()
- Added SUFaceClearTextureProjection()
- Added SUFacePositionMaterial()
- Added struct SUMaterialPositionInput
- Added SUGeometryInputFaceSetFrontMaterialByPosition()
- Added SUGeometryInputFaceSetBackMaterialByPosition()
- Changed SUEntitiesFill() such that it will apply a textured material to faces even if the SUMaterialInput or SUMaterialPositionInput have no UV coordinates. In this case the material will be applied similar to how SUFaceSetFrontMaterial() / SUFaceSetBackMaterial() behave.
- Added SUModelGetBehavior()
- Added SUModelSetBehavior()
- Added SUEdgeReversedInFace()
- Added SUCurveIsPolygon()
- Added struct SUEntitiesParent
- Added SUEntitiesGetParent()
- Added SUEntitiesGetActiveSectionPlane()
- Added SUEntitiesSetActiveSectionPlane()
- Added SUImageGetDefinition()
- Deprecated SUImageGetName()
- Deprecated SUImageSetName()
- Fixed GUID not being regenerated when component definition is edited
- Fixed SUGroupGetDefinition() not returning SU_ERROR_OVERWRITE_VALID when trying to overwrite a valid reference
- Fixed SUEntityGetNumAttributeDictionaries() such that it returns a count that matches what SUEntityGetAttributeDictionaries() will actually return.
- Fixed crash in SUImageGetImageRep() when Image lacks a texture.

## SketchUp API 9.0, SketchUp 2021.0

- Added SUSkpReadGuid()
- Added SUComponentDefinitionIsLiveComponent()
- Added SUModelCreateFromFileWithStatus(), Deprecated SUModelCreateFromFile()
- Added SUModelCreateFromBufferWithStatus(), Deprecated SUModelCreateFromBuffer()
- Added SUModelLoadDefinitionWithStatus(), Deprecated SUModelLoadDefinition()
- Added SULayerFolderRef
- Added SULayerFolderToEntity()
- Added SULayerFolderFromEntity()
- Added SULayerFolderCreate()
- Added SULayerFolderRelease()
- Added SULayerFolderGetName()
- Added SULayerFolderSetName()
- Added SULayerFolderGetVisibility()
- Added SULayerFolderSetVisibility()
- Added SULayerGroupGetVisibleOnNewScenes()
- Added SULayerGroupSetVisibleOnNewScenes()
- Added SULayerFolderAddLayer()
- Added SULayerFolderRemoveLayer()
- Added SULayerFolderGetNumLayers()
- Added SULayerFolderGetLayers()
- Added SULayerFolderAddLayerFolder()
- Added SULayerFolderGetNumLayerFolders()
- Added SULayerFolderGetLayerFolders()
- Added SULayerFolderGetParentLayerFolder()
- Added SULayerGetParentLayerFolder()
- Added SUModelGetNumLayerFolders()
- Added SUModelGetLayerFolders()
- Added SUModelPurgeEmptyLayerFolders()
- Added SUModelAddLayerFolder()
- Added SUModelGetNumTopLevelLayers()
- Added SUModelGetTopLevelLayers()
- Added SUModelRemoveLayerFolders()
- Added SUSceneGetNumLayerFolders()
- Added SUSceneGetLayerFolders()
- Added SUSceneAddLayerFolder()
- Added SUSceneRemoveLayerFolder()
- Fixed SUTextureGetFileName() so it will output a valid file extension even when the basename includes a period.

## SketchUp API 8.2, SketchUp 2020.2

- Added SUModelGetSelection()
- Added SUModelGetActiveEntities()
- Added SUModelGetActivePath()
- Added SUSelectionRef
- Added SUSelectionAdd()
- Added SUSelectionRemove()
- Added SUSelectionToggle()
- Added SUSelectionClear()
- Added SUSelectionInvert()
- Added SUSelectionGetNumElements()
- Added SUSelectionGetEntityList()
- Added SUSelectionIsType()
- Added SUModelPurgeUnusedLayers()
- Added SUModelGetEntitiesOfTypeByPersistentIDs()
- Deprecated SUModelGetLayersByPersistentIDs()
- Deprecated SUModelGetEntitiesByPersistentIDs()
- Added function to exchange between C API and Ruby API references:
  - SUEntityToRuby()
  - SUEntityFromRuby()
  - SUImageRepToRuby()
  - SUImageRepFromRuby()
- Changed the behavior of SULineStyleSetLengthMultiplier() to accept negative multiplier values. The previous behavior was to reject all values less than or equal to zero. Negative values will now trigger "auto" stipple scaling which is described in the documentation. Zero is still an invalid input.
- Changed the behavior of SULineStyleSetWidthPixels() to accept line widths less than one. The previous behavior was to reject widths less than one as invalid input. Input widths less than or equal to zero are still invalid.
- Clarified dictionary ownership rules for SUEntityAddAttributeDictionary().

## SketchUp API 8.1, SketchUp 2020.1

- Added SUEntitiesWeld()
- Added SULineStyleFromEntity()
- Added SULineStyleToEntity()
- Added SUSceneGetUseHiddenGeometry()
- Added SUSceneGetUseHiddenObjects()
- Added SUSceneSetUseHiddenGeometry()
- Added SUSceneSetUseHiddenObjects()

## SketchUp API 8.0, SketchUp 2020.0

- Added SULayerGetDisplayName()
- Added SULayerGetSceneBehavior()
- Added SULayerSetSceneBehavior()
- Added SULengthFormatterGetAreaPrecision()
- Added SULengthFormatterSetAreaPrecision()
- Added SULengthFormatterGetVolumePrecision()
- Added SULengthFormatterSetVolumePrecision()
- Added SUModelGetActiveLayer()
- Added SUModelGetEntitiesByPersistentIDs()
- Added SUModelGetLayersByPersistentIDs()
- Added SUModelIsDrawingElementVisible()
- Added SUModelSetActiveLayer()
- Added SUSceneGetDrawingElementHidden()
- Added SUSceneSetDrawingElementHidden()
- Added an extra return code for SUSceneAddLayer() and SUSceneRemoveLayer().
- Added support for SUFontRef to the function SUEntityGetPersistentID().
- Fixed a performance bug in SUEntitiesFill().
- Deprecated SUComponentDefinitionSetInsertPoint() - it is now a NO-OP.
- SUModelSaveToFile() updated to handle saving files 2GB and above
- Fixed SketchUpModelImporterInterface::ShowOptionsDialog to return the correct type for the macOS API. This update was previous done in SketchUp 2019.2, API 7.1 for the Windows API.

## SketchUp API 7.1, SketchUp 2019.2

- Added SUApplicationGetActiveModel()
- Added SULengthFormatterGetAreaUnits()
- Added SULengthFormatterSetAreaUnits()
- Added SULengthFormatterGetVolumeUnits()
- Added SULengthFormatterSetVolumeUnits()
- Added SUMaterialGetColorizeDeltas()
- Added SUMaterialGetColorizeType()
- Added SUMaterialSetColorizeType()
- Added SUMaterialGetOwnerType()
- Added SUModelGetAllMaterials()
- Added SUModelGetNumAllMaterials()
- Added SUModelGetGuid()
- Added SUModelLoadDefinition()
- Added SUModelRemoveComponentDefinitions()
- Added SUModelRemoveLayers()
- Added SUModelRemoveMaterials()
- Added SUModelRemoveScenes()
- Added SUStylesRemoveStyle()
- Added SUStylesSetSelectedStyle()
- Added SUTextureWriteOriginalToFile()
- Fixed a bug where SUModelSaveToFileWithVersion() and SUModelSaveToFile() wasn't updating the model's GUID.
- Fixed SUStylesAddStyle() where it would fail to load some .style files.
- Improved performance of exporting colorized textures to PNG.
- Added material validation before assignment to prevent material owned by layers or images to be assigned to normal drawing elements.
- Removed Deprecated C++ COM Interface.
- Changed return type of SketchUpModelImporterInterface::ShowOptionsDialog from `void` to SketchUpOptionsDialogResponse.

## SketchUp API 7.0, SketchUp 2019 M0

- Added SUDimensionGetFont()
- Added SUDimensionSetFont()
- Added SUDimensionLinearGetAlignment()
- Added SUDimensionLinearGetTextPosition()
- Added SUFontFromEntity()
- Added SUFontToEntity()
- Added SULayerGetLineStyle()
- Added SULayerSetLineStyle()
- Added SULengthFormatterGetForceInchDisplay()
- Added SULengthFormatterSetForceInchDisplay()
- Added SULineStyleGetName()
- Added SULineStylesGetLineStyleByName()
- Added SULineStylesGetLineStyleNames()
- Added SULineStylesGetNumLineStyles()
- Added SUModelGetImageDefinitions()
- Added SUModelGetLineStyles()
- Added SUModelGetNumImageDefinitions()
- Added SUTransformationIsMirrored()
- Added Return value SU_ERROR_SERIALIZATION for method SUStylesAddStyle()
- Fixed SUDimensionLinearRef bug with setting a hidden property
- Fixed SUDimensionRadialRef bug with setting a hidden property
- Fixed SUEntitiesErase() crash/hang.
- Fixed SUTypedValueGetArrayItems() bug where the `out` param wasn't being set.
- Fixed SUTypedValueGetArrayItems() memory leak.

## SketchUp API 6.0, SketchUp 2018 M0

- Added SUAttributeDictionaryCreate()
- Added SUAttributeDictionaryRelease()
- Added SUBoundingBox3DGetMidPoint()
- Added SUComponentInstanceGetAttachedToDrawingElements()
- Added SUComponentInstanceGetNumAttachedToDrawingElements()
- Added SUColorBlend()
- Added SUColorGetNames()
- Added SUColorGetNumNames()
- Added SUColorSetByName()
- Added SUColorSetByValue()
- Added SUEntitiesAddTexts()
- Added SUEntitiesEntityListFill()
- Added SUEntitiesGetBoundingBoxLLA()
- Added SUEntitiesGetNumTexts()
- Added SUEntitiesGetTexts()
- Added SUEntitiesHasSectionCuts()
- Added SUEntityAddAttributeDictionary()
- Added SUEntityGetModel()
- Added SUEntityGetParentEntities()
- Added SUEntityListBegin()
- Added SUEntityListCreate()
- Added SUEntityListIteratorCreate()
- Added SUEntityListIteratorGetEntity()
- Added SUEntityListIteratorIsInRange()
- Added SUEntityListIteratorNext()
- Added SUEntityListIteratorRef
- Added SUEntityListIteratorRelease()
- Added SUEntityListRef
- Added SUEntityListRelease()
- Added SUEntityListSize()
- Added SUImageRepGetColorAtUV()
- Added SUImageRepGetDataAsColors()
- Added SULengthFormatterCreate()
- Added SULengthFormatterGetAreaString()
- Added SULengthFormatterGetFormat()
- Added SULengthFormatterGetLengthString()
- Added SULengthFormatterGetPrecision()
- Added SULengthFormatterGetSuppressUnits()
- Added SULengthFormatterGetUnits()
- Added SULengthFormatterGetVolumeString()
- Added SULengthFormatterRelease()
- Added SULengthFormatterSetFormat()
- Added SULengthFormatterSetPrecision()
- Added SULengthFormatterSetUnits()
- Added SULengthFormatterSetSuppressUnits()
- Added SULengthFormatterParseString()
- Added SULengthFormatterRef
- Added SULengthFormatType
- Added SULengthUnitType
- Added SULoopInputRef
- Added SUMaterialIsDrawnTransparent()
- Changed SUMaterialSetName(), now returns SU_ERROR_INVALID_ARGUMENT if the material is owned by a model and the name is not unique
- Added SUModelFixErrors()
- Added SUModelGetDescription()
- Added SUModelSetDescription()
- Added SUModelGenerateUniqueMaterialName()
- Added SUModelGetLengthFormatter()
- Added SUModelGetPath()
- Added SUModelGetSceneWithName()
- Added SUModelGetTitle()
- Added SUModelOrientFacesConsistently()
- Added SUPlane3DSetWithPoints()
- Added SUPlane3DSetWithPointAndNormal()
- Added SUPlane3DSetWithCoefficients()
- Added SUPlane3DIsOn()
- Added SUPlane3DDistanceTo()
- Added SUPlane3DProjectTo()
- Added SUPlane3DTransform()
- Added SUPoint2DGetEqual()
- Added SUPoint2DOffset()
- Added SUPoint2DDistanceToSUPoint2D()
- Added SUPoint3DGetEqual()
- Added SUPoint3DLessThan()
- Added SUPoint3DOffset()
- Added SUPoint3DDistanceToSUPoint3D()
- Added SURay3DIsOn()
- Added SURay3DDistanceTo()
- Added SURay3DProjectTo()
- Added SUSceneGetIncludeInAnimation()
- Added SUSceneSetIncludeInAnimation()
- Added SUSceneGetUseHidden()
- Added SUSceneSetUseHidden()
- Added SUSceneGetUseSectionPlanes()
- Added SUSceneSetUseSectionPlanes()
- Added SUSectionPlaneGetName()
- Added SUSectionPlaneSetName()
- Added SUSectionPlaneGetSymbol()
- Added SUSectionPlaneSetSymbol()
- Added SUTextCreate()
- Added SUTextFromDrawingElement()
- Added SUTextFromEntity()
- Added SUTextGetArrowType()
- Added SUTextGetColor()
- Added SUTextGetFont()
- Added SUTextGetLeaderType()
- Added SUTextGetLeaderVector()
- Added SUTextGetPoint()
- Added SUTextGetString()
- Added SUTextRef
- Added SUTextRelease()
- Added SUTextSetArrowType()
- Added SUTextSetColor()
- Added SUTextSetFont()
- Added SUTextSetLeaderType()
- Added SUTextSetLeaderVector()
- Added SUTextSetPoint()
- Added SUTextSetString()
- Added SUTextToDrawingElement()
- Added SUTextToEntity()
- Added SUTextureGetAverageColor()
- Added SUTextureGetColorizedImageRep()
- Added SUTransformationGetInverse()
- Added SUTransformationGetOrigin()
- Added SUTransformationGetXAxis()
- Added SUTransformationGetYAxis()
- Added SUTransformationGetZAxis()
- Added SUTransformationGetZRotation()
- Added SUTransformationIsIdentity()
- Added SUTransformationInterpolate()
- Added SUTransformationMultiply()
- Added SUTransformationNonUniformScale()
- Added SUTransformationNonUniformScaleAboutPoint()
- Added SUTransformationRotation()
- Added SUTransformationScale()
- Added SUTransformationScaleAboutPoint()
- Added SUTransformationSetFromPointAndAxes()
- Added SUTransformationTranslation()
- Added SUVector2DAngleBetween()
- Added SUVector2DCreate()
- Added SUVector2DCross()
- Added SUVector2DDot()
- Added SUVector2DGetLength()
- Added SUVector2DIsEqual()
- Added SUVector2DIsParallelTo()
- Added SUVector2DIsPerpendicularTo()
- Added SUVector2DIsSameDirectionAs()
- Added SUVector2DIsUnitVector()
- Added SUVector2DIsValid()
- Added SUVector2DReverse()
- Added SUVector2DSetLength()
- Added SUVector3DAngleBetween()
- Added SUVector3DCreate()
- Added SUVector3DCross()
- Added SUVector3DDot()
- Added SUVector3DGetArbitraryAxes()
- Added SUVector3DGetLength()
- Added SUVector3DIsEqual()
- Added SUVector3DIsParallelTo()
- Added SUVector3DIsPerpendicularTo()
- Added SUVector3DIsSameDirectionAs()
- Added SUVector3DIsUnitVector()
- Added SUVector3DIsValid()
- Added SUVector3DLessThan()
- Added SUVector3DLinearCombination()
- Added SUVector3DNormalize()
- Added SUVector3DReverse()
- Added SUVector3DSetLength()
- Added SUVector3DTransform()
- Breaking change, renamed functions missing `SU*` prefix. Use the preprocessor definition `SU_COMPAT_MATH_UTILS` to make the old names available. But note that this will be removed in SketchUp 2019. Refactor as soon as possible.
  - Renamed `DegreesToRadians()` to SUDegreesToRadians()
  - Renamed `Equals()` to SUEquals()
  - Renamed `GreaterThan()` to SUGreaterThan()
  - Renamed `GreaterThanOrEqual()` to SUGreaterThanOrEqual()
  - Renamed `LessThan()` to SULessThan()
  - Renamed `LessThanOrEqual()` to SULessThanOrEqual()
  - Renamed `RadiansToDegrees()` to SURadiansToDegrees()

## SketchUp API 5.2, SketchUp 2017 M2

- Added SUGetColorOrder()
- Added SUGeometryInputAddArcCurve()
- Changed SUGeometryInputAddFace(), now returns SU_ERROR_INVALID_ARGUMENT if the input loop has invalid data
- Changed SUGeometryInputFaceAddInnerLoop(), now returns SU_ERROR_INVALID_ARGUMENT if the input loop has invalid data
- Changed SULoopInputAddVertexIndex(), now has concept of an explicitly closed loop and additional error codes
- Added SULoopInputIsClosed()
- Added SUModelCreateFromBuffer()
- Added SUColorOrder
- Added SUTextureWriterGetImageRep()

## SketchUp API 5.0, SketchUp 2017 M0

- Added SUCameraGet2D()
- Added SUCameraGetCenter2D()
- Added SUCameraGetClippingDistances()
- Added SUCameraGetDescription()
- Added SUCameraGetDirection()
- Added SUCameraGetFOVIsHeight()
- Added SUCameraGetImageWidth()
- Added SUCameraGetScale2D()
- Added SUCameraGetViewTransformation()
- Added SUCameraSet2D()
- Added SUCameraSetAspectRatio()
- Added SUCameraSetCenter2D()
- Added SUCameraSetDescription()
- Added SUCameraSetFOVIsHeight()
- Added SUCameraSetImageWidth()
- Added SUCameraSetScale2D()
- Added SUComponentDefinitionGetInstances()
- Added SUComponentDefinitionGetNumInstances()
- Added SUComponentDefinitionGetNumUsedInstances()
- Changed SUComponentDefinitionRelease(), now can be used to destroy definitions in models
- Added SUDimensionFromDrawingElement()
- Added SUDimensionFromEntity()
- Added SUDimensionGetArrowType()
- Added SUDimensionGetPlane()
- Added SUDimensionGetText()
- Added SUDimensionGetText3D()
- Added SUDimensionGetType()
- Added SUDimensionLinearCreate()
- Added SUDimensionLinearFromDimension()
- Added SUDimensionLinearGetEndPoint()
- Added SUDimensionLinearGetHorizontalAlignment()
- Added SUDimensionLinearGetNormal()
- Added SUDimensionLinearGetPosition()
- Added SUDimensionLinearGetStartPoint()
- Added SUDimensionLinearGetVerticalAlignment()
- Added SUDimensionLinearGetXAxis()
- Added SUDimensionLinearRef
- Added SUDimensionLinearRelease()
- Added SUDimensionLinearSetEndPoint()
- Added SUDimensionLinearSetHorizontalAlignment()
- Added SUDimensionLinearSetNormal()
- Added SUDimensionLinearSetPosition()
- Added SUDimensionLinearSetVerticalAlignment()
- Added SUDimensionLinearSetXAxis()
- Added SUDimensionLinearToDimension()
- Added SUDimensionRadialCreate()
- Added SUDimensionRadialFromDimension()
- Added SUDimensionRadialGetCurveInstancePath()
- Added SUDimensionRadialGetDiameter()
- Added SUDimensionRadialGetLeaderBreakPoint()
- Added SUDimensionRadialGetLeaderPoints()
- Added SUDimensionRadialRef
- Added SUDimensionRadialRelease()
- Added SUDimensionRadialSetCurveInstancePath()
- Added SUDimensionRadialSetDiameter()
- Added SUDimensionRadialSetLeaderBreakPoint()
- Added SUDimensionRadialToDimension()
- Added SUDimensionRef
- Added SUDimensionSetArrowType()
- Added SUDimensionSetText()
- Added SUDimensionSetText3D()
- Added SUDimensionStyleGet3D()
- Added SUDimensionStyleGetArrowSize()
- Added SUDimensionStyleGetArrowType()
- Added SUDimensionStyleGetColor()
- Added SUDimensionStyleGetExtensionLineOffset()
- Added SUDimensionStyleGetExtensionLineOvershoot()
- Added SUDimensionStyleGetFont()
- Added SUDimensionStyleGetHideOutOfPlane()
- Added SUDimensionStyleGetHideOutOfPlaneValue()
- Added SUDimensionStyleGetHideSmall()
- Added SUDimensionStyleGetHideSmallValue()
- Added SUDimensionStyleGetLineWeight()
- Added SUDimensionStyleGetShowRadialPrefix()
- Added SUDimensionStyleGetTextColor()
- Added SUDimensionStyleRef
- Added SUDimensionToDrawingElement()
- Added SUDimensionToEntity()
- Added SUEntitiesErase()
- Added SUEntitiesGetNumDimensions()
- Added SUEntitiesGetDimensions()
- Added SUEntitiesIsRecursivelyEmpty()
- Added SUEntitiesTransform()
- Added SUEntitiesTransformMultiple()
- Added SUFontGetBold()
- Added SUFontGetFaceName()
- Added SUFontGetItalic()
- Added SUFontGetPointSize()
- Added SUFontGetUseWorldSize()
- Added SUFontGetWorldSize()
- Added SUFontRef
- Added SUGeometryInputAddCurve()
- Added SUGeometryInputAddEdge()
- Added SUGeometryInputEdgeSetHidden()
- Added SUGeometryInputEdgeSetSoft()
- Added SUGeometryInputEdgeSetSmooth()
- Added SUGeometryInputFaceSetHidden()
- Added SUImageCreateFromImageRep()
- Added SUImageGetImageRep()
- Added SUImageRepRef
- Added SUImageRepConvertTo32BitsPerPixel()
- Added SUImageRepCopy()
- Added SUImageRepCreate()
- Added SUImageRepGetData()
- Added SUImageRepGetDataSize()
- Added SUImageRepGetPixelDimensions()
- Added SUImageRepGetRowPadding()
- Added SUImageRepLoadFile()
- Added SUImageRepRelease()
- Added SUImageRepResize()
- Added SUImageRepSaveToFile()
- Added SUImageRepSetData()
- Changed SUMaterialGetName(), now returns internal unprocessed string identifier
- Added SUMaterialGetNameLegacyBehavior(), provides developers with the old SUMaterialGetName() functionality
- Added SUModelGetDimensionStyle()
- Added SUModelGetStyles()
- Added SUModelIsGeoReferenced()
- Added SUPlane3DGetNormal()
- Added SUSceneActivate()
- Added SUSceneClearPhotoMatchImage()
- Added SUSceneCopy()
- Added SUSceneGetFlags()
- Added SUSceneGetPhotoMatchImageDisplayed()
- Added SUSceneGetSketchAxesDisplayed()
- Added SUSceneGetStyle()
- Added SUSceneSetFlags()
- Added SUSceneSetSketchAxesDisplayed()
- Added SUStyleCreate()
- Added SUStyleCreateFromFile()
- Added SUStyleFromEntity()
- Added SUStyleGetDescription()
- Added SUStyleGetDisplayName()
- Added SUStyleGetDisplaysWatermark()
- Added SUStyleGetGuid()
- Added SUStyleGetName()
- Added SUStyleGetPath()
- Added SUStyleGetProperty()
- Added SUStyleSetProperty()
- Added SUStyleRef
- Added SUStyleRelease()
- Added SUStylesAddStyle()
- Added SUStylesApplyStyleToScene()
- Added SUStyleSaveToFile()
- Added SUStyleSetDescription()
- Added SUStyleSetName()
- Added SUStylesGetActiveStyle()
- Added SUStylesGetActiveStyleChanged()
- Added SUStylesGetNumStyles()
- Added SUStylesGetSelectedStyle()
- Added SUStylesGetStyleByGuid()
- Added SUStylesGetStyleByPath()
- Added SUStylesGetStyles()
- Added SUStylesRef
- Added SUStyleToEntity()
- Added SUStringCompare()
- Added SUTextureSetFileName()
- Added SUTransformationSetFromPointAndNormal()

## SketchUp API 4.0, SketchUp 2016 M0

- Added SUArcCurveCreate()
- Added SUArcCurveFromCurve()
- Added SUArcCurveFromEntity()
- Added SUArcCurveGetCenter()
- Added SUArcCurveGetEndAngle()
- Added SUArcCurveGetEndPoint()
- Added SUArcCurveGetIsFullCircle()
- Added SUArcCurveGetNormal()
- Added SUArcCurveGetRadius()
- Added SUArcCurveGetStartAngle()
- Added SUArcCurveGetStartPoint()
- Added SUArcCurveGetXAxis()
- Added SUArcCurveGetYAxis()
- Added SUArcCurveRelease()
- Added SUArcCurveToCurve()
- Added SUArcCurveToEntity()
- Added SUAxesCreate()
- Added SUAxesCreateCustom()
- Added SUAxesFromDrawingElement()
- Added SUAxesFromEntity()
- Added SUAxesGetOrigin()
- Added SUAxesGetPlane()
- Added SUAxesGetTransform()
- Added SUAxesGetXAxis()
- Added SUAxesGetYAxis()
- Added SUAxesGetZAxis()
- Added SUAxesRelease()
- Added SUAxesSetAxesVecs()
- Added SUAxesSetOrigin()
- Added SUAxesToDrawingElement()
- Added SUAxesToEntity()
- Added SUComponentDefinitionGetInsertPoint()
- Added SUComponentDefinitionGetLoadTime()
- Added SUComponentDefinitionGetOpenings()
- Added SUComponentDefinitionGetPath()
- Added SUComponentDefinitionIsInternal()
- Added SUComponentDefinitionOrientFacesConsistently()
- Added SUComponentDefinitionSetAxes()
- Added SUComponentDefinitionSetInsertPoint()
- Added SUComponentInstanceComputeVolume()
- Added SUComponentInstanceCreateDCInfo()
- Added SUComponentInstanceGetAttachedInstances()
- Added SUComponentInstanceGetNumAttachedInstances()
- Added SUComponentInstanceIsLocked()
- Added SUComponentInstanceSaveAs()
- Added SUComponentInstanceSetLocked()
- Added SUDynamicComponentAttributeGetDisplayName()
- Added SUDynamicComponentAttributeGetDisplayValue()
- Added SUDynamicComponentAttributeGetName()
- Added SUDynamicComponentAttributeGetVisibility()
- Added SUDynamicComponentInfoGetDCAttributes()
- Added SUDynamicComponentInfoGetNumDCAttributes()
- Added SUDynamicComponentInfoRelease()
- Added SUEntitiesAddArcCurves()
- Added SUEntitiesAddGuideLines()
- Added SUEntitiesAddSectionPlanes()
- Added SUEntitiesGetArcCurves()
- Added SUEntitiesGetGuideLines()
- Added SUEntitiesGetNumArcCurves()
- Added SUEntitiesGetNumGuideLines()
- Added SUEntitiesGetNumSectionPlanes()
- Added SUEntitiesGetSectionPlanes()
- Added SUFaceGetAreaWithTransform()
- Added SUFaceGetAttachedDrawingElements()
- Added SUFaceGetEdgeUses()
- Added SUFaceGetNumAttachedDrawingElements()
- Added SUFaceGetNumEdgeUses()
- Added SUFaceReverse()
- Added SUGetEdition()
- Added SUGetVersionStringUtf8()
- Added SUGroupFromComponentInstance()
- Added SUGroupToComponentInstance()
- Added SUGuideLineCreateFinite()
- Added SUGuideLineCreateInfinite()
- Added SUGuideLineFromDrawingElement()
- Added SUGuideLineFromEntity()
- Added SUGuideLineGetData()
- Added SUGuideLineRelease()
- Added SUGuideLineToDrawingElement()
- Added SUGuideLineToEntity()
- Added SUGuidePointGetDisplayAsLine()
- Added SUGuidePointGetFromPosition()
- Added SUModelGetActiveScene()
- Added SUModelGetGroupDefinitions()
- Added SUModelGetNumGroupDefinitions()
- Added SUModelSetActiveScene()
- Added SUModelSetCamera()
- Added SUOptionsProviderGetName()
- Added SUPolyline3dAddPoints()
- Added SUPolyline3dCreate()
- Added SUPolyline3dRelease()
- Added SUSceneAddLayer()
- Added SUSceneClearLayers()
- Added SUSceneGetAxes()
- Added SUSceneGetLayers()
- Added SUSceneGetNumLayers()
- Added SUSceneGetUseCamera()
- Added SUSceneGetUseHiddenLayers()
- Added SUSceneGetUseRenderingOptions()
- Added SUSceneRemoveLayer()
- Added SUSceneSetCamera()
- Added SUSceneSetUseCamera()
- Added SUSceneSetUseHiddenLayers()
- Added SUSceneSetUseRenderingOptions()
- Added SUSectionPlaneCreate()
- Added SUSectionPlaneFromDrawingElement()
- Added SUSectionPlaneFromEntity()
- Added SUSectionPlaneGetPlane()
- Added SUSectionPlaneIsActive()
- Added SUSectionPlaneRelease()
- Added SUSectionPlaneSetPlane()
- Added SUSectionPlaneToDrawingElement()
- Added SUSectionPlaneToEntity()
- Added SUVertexSetPosition()

## SketchUp API 3.2, SketchUp 2015 M3

- Added C++ sample projects ReadingFromAskpFile, WritingToAskpFile and TextureMapping.

## SketchUp API 3.1, SketchUp 2015 M1

- Improved the performance of SUEntitiesAddGroup() when adding a large number of groups.
- Added 64-bit SketchUpReader to the `deprecated` folder.

## SketchUp API 3.0, SketchUp 2015 M0

- Added SUSchemaRef
- Added SUSchemaGetSchemaType()
- Added SUClassificationsRef
- Added SUClassificationsLoadSchema()
- Added SUClassificationsGetSchema()
- Added SUModelGetClassifications()
- Added SUGuidePointToDrawingElement()
- Added SUGuidePointFromDrawingElement()
- Added SUSceneGetUseShadowInfo()
- Added SUSceneSetUseShadowInfo()
- Added SUModelGetShadowInfo()
- Added SUSceneGetShadowInfo()
- Added SUShadowInfoGetNumKeys()
- Added SUShadowInfoGetKeys()
- Added SUShadowInfoGetValue()
- Added SUShadowInfoSetValue()
- Added SUComponentDefinitionGetGuid()
- Added SUComponentInstanceSetGuid()
- Added SUGroupGetGuid()
- Added SUGroupSetGuid()
- Added SUCameraCreate()
- Added SUCameraRelease()
- Added SUModelAddMatchPhotoScene()
- Added SUGuidePointRef
- Fixed `slapi.framework`'s install names to use rpaths properly for libCommonUnits.

## SketchUp API 2.1, SketchUp 2014 M1

- Updated the Deprecated SkpReader SDK on Mac to read 2014-format skp files
- Added SUDrawingElementSetCastsShadows()
- Added SUDrawingElementGetCastsShadows()
- Added SUDrawingElementSetReceivesShadows()
- Added SUDrawingElementGetReceivesShadows()

## SketchUp API 2.0, SketchUp 2014 M0

- Added SUModelSaveToFileWithVersion()
- Added enum SUModelVersion
- Added SUFaceGetNumOpenings()
- Added SUFaceGetOpenings()

## SketchUp API 1.2, SketchUp 2013 M2

- Fixed compilation issues on Mac while building against the deprecated `SketchupReader.framework`. Updated the framework to be able to read 2013 files. Also added some files missing from `deprecated/SkpWriter/Headers`. (Sorry about these omissions).
- Added back the old Mac example SkpStats (under `deprecated\SkpReader\Examples`) that illustrates how to read SU files from a stand-alone program (i.e. not as an exporter).
- Added missing SU_ERROR_INVALID_OUTPUT return values to code documentation comments for slapi `*GetName()` functions and others that return string data.

## SketchUp API 1.1, SketchUp 2013 M1

- Fixed install paths of XmlExporter and XmlImporter plugin samples to link to `slapi.framework` as SketchUp does to prevent loader problems.
- Updated deprecated SketchUpReader.dll to be able to read SU2013 format files.

## SketchUp API 1.0, SketchUp 2013 M0

- Initial release