Trimble SketchUp Pro 2018 - Disable Updates


#1

Hello,

I’ve searched but I cannot find an answer, so hopefully somebody can point me in the right direction.

I work as an engineer in an IT department and I’ve included SketchUp Pro 2018 on a specialist build of Windows 7. I’m not an end user of the product but I’ve deployed previous versions and know the basics of launching and interacting with SketchUp.

In previous versions, I’ve disabled updates via registry values but I’ve found in Trimble SketchUp Pro 2018 that this setting (amongst others) is stored in the following *.json file:
C:\Users<username>\AppData\Roaming\SketchUp\SketchUp 2018\SketchUp\SharedPreferences.json

I’ve tried manipulating it to set the “CheckForUpdates” value to “false” but it seems that the *.json file gets rebuilt on launch.
Disabling this via the GUI isn’t a viable option as I need to do this for a large number of users roaming between hundreds of PCs.

Is there some other recommended way to do this?


#2

It should not rebuild the preferences file on every launch.

  • I could imagine it would if the preferences file is found to be invalid JSON. To be very sure, you could pass the file through a JSON validator.
  • Did you check whether only that single setting in the JSON is toggled back? For example change another setting so it is not default. If it persists but “CheckForUpdates” changes back then there is really an issue.

Or do you mean the file gets built the first launch, and overwrites the file you maybe placed there before first launch?

  • You could look for a registry setting that SketchUp uses to detect first launch and then disables. But I don’t know what happens when running SketchUp without a proper first launch.

#3
Hi Aerilius,

Thanks for the quick reply and good suggestion on checking of the JSON.
I’m not familiar with JSON but I thought I’d figured out the syntax with some assistance from Notepad++ seeming to suggest that my edit was valid (it wasn’t).

I ran it through the JSON validator at https://jsonlint.com/ and it warned that I had an unnecessary extra comma after “false”.
My corrected file now looks like this (attached as SharedPreferences.json-01-Before):
{
“Shared for All Computers”: {},
“Preferences”: {
“CheckForUpdates”: false
},
“Windows Only”: {},
“Mac Only”: {},
“Web Only”: {},
“iOS Only”: {},
“Android Only”: {}
}

However, as soon as I launch SketchUp to the welcome screen point, the file gets amended to a state where the “Preference” section is removed (see this attached as SharedPreferences.json-02-LaunchToWelcome)
{
“Shared for All Computers”: {},
“Windows Only”: {},
“Mac Only”: {},
“Web Only”: {},
“iOS Only”: {},
“Android Only”: {}
}

When I progress through the application to launching a blank template, the JSON file updates to the following (see this attached as SharedPreferences.json-03-LaunchToTemplate):
{
“Shared for All Computers”: {
“Application”: {
“LastSECopyVersion”: “18.0.16975”
},
“Preferences”: {
“ComponentBrowser1Image”: 5,
“CompViewView”: 0,
“MaterialColorType”: 2,
“MaterialsBrowserImage”: 2,
“MaterialsBrowserView”: 0,
“SceneBrowserImage”: 5,
“SceneBrowserView”: 0,
“StylesBrowserImage”: 2,
“StylesBrowserView”: 0
}
},
“Windows Only”: {
“Preferences”: {
“DefaultTemplate18”: “C:\Program Files\SketchUp\SketchUp 2018\Resources\en-US\Templates\Temp01b - Simple.skp”
},
“UserLibrariesComponentBrowser1”: {
“count”: 8,
“first_run”: false,
“Name1”: “Components Sampler”,
“Name2”: “Dynamic Components Training”,
“Name3”: “Architecture”,
“Name4”: “Landscape”,
“Name5”: “Construction”,
“Name6”: “People”,
“Name7”: “Playground”,
“Name8”: “Transportation”,
“Path1”: “C:\ProgramData\SketchUp\SketchUp 2018\SketchUp\Components\Components Sampler”,
“Path2”: “C:\ProgramData\SketchUp\SketchUp 2018\SketchUp\Components\Dynamic Components Training”,
“Path3”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=578dd83d965235a69943445eb5ff139e&q=is:downloadable&hl=en-US”,
“Path4”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=74f1f4bc15880d539d72d32da159e115&q=is:downloadable&hl=en-US”,
“Path5”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=7c6adff4dfc2274cbdec1b0b6b8425ca&q=is:downloadable&hl=en-US”,
“Path6”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=4f8bf1d61dccd5b68095ba2080357053&q=is:downloadable&hl=en-US”,
“Path7”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=198ab77991db28b58095ba2080357053&q=is:downloadable&hl=en-US”,
“Path8”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=a854971e9dfb05cea5ab2a72c8b8cb68&q=is:downloadable&hl=en-US”,
“Type1”: 0,
“Type2”: 0,
“Type3”: 1,
“Type4”: 1,
“Type5”: 1,
“Type6”: 1,
“Type7”: 1,
“Type8”: 1
}
},
“Mac Only”: {},
“Web Only”: {},
“iOS Only”: {},
“Android Only”: {}
}

Notice how there is no mention of “CheckForUpdates” under “Preferences”.

If I then disable updates via the GUI (Windows > Preferences > General, then untick “Allow checking for updates”) the “CheckForUpdates” part appears with the “false” value along with a lot of other data (see this attached as SharedPreferences.json-04-DisabledViaGUI):
{
“Shared for All Computers”: {
“AppGUID”: {
“sendok”: 1
},
“Application”: {
“LastSECopyVersion”: “18.0.16975”
},
“PageOptions”: {
“ShowTransition”: true,
“TransitionTime”: 1.5
},
“Preferences”: {
“AlwaysFixValidityErrors”: false,
“AutoDrawingPlane”: true,
“AutoSave”: true,
“AutoSaveFreq”: 5,
“AviExportAntiAlias”: true,
“AviExportAR”: 1.7777777777777777,
“AviExportFPS”: 24.0,
“AviExportHeight”: 720,
“AviExportLockAR”: true,
“AviExportLoop”: true,
“AviExportPlay”: false,
“AviExportPrompt”: false,
“AviExportWidth”: 1280,
“CheckForUpdates”: false,
“ColorParallelPerpendicular_RGB”: “255 0 255”,
“ColorTangent_RGB”: “0 255 255”,
“ColorX_RGB”: “255 0 0”,
“ColorY_RGB”: “0 255 0”,
“ColorZ_RGB”: “0 0 255”,
“ComponentBrowser1Image”: 5,
“CompViewView”: 0,
“DisplayTabs”: true,
“EnableCheckValidity”: true,
“MaterialColorType”: 2,
“MaterialsBrowserImage”: 2,
“MaterialsBrowserView”: 0,
“MaxUndo”: 100,
“SaveBackup”: true,
“SceneBrowserImage”: 5,
“SceneBrowserView”: 0,
“ShowInferenceTips”: true,
“ShowStylesWarning”: 1,
“StylesBrowserImage”: 2,
“StylesBrowserView”: 0,
“UpdateDefaultColorOn”: true,
“UpdateDefaultOn”: true,
“VCBShowTypedInputBackground”: true,
“VCBTimoutSeconds”: 5
},
“SlideshowOptions”: {
“LoopSlideshow”: true,
“SlideTime”: 1.0
},
“StyleEditTab”: {
“curPage”: 0
}
},
“Windows Only”: {
“Preferences”: {
“DefaultTemplate18”: “C:\Program Files\SketchUp\SketchUp 2018\Resources\en-US\Templates\Temp01b - Simple.skp”
},
“PrintOptions”: {
“ComputeSizeFromScale”: false,
“FitToPage”: true,
“LineWeight”: 0.5,
“ModelExtents”: true,
“NumberOfPages”: 1,
“PixelsPerInch”: 150.0,
“PrintHeight”: 11.0,
“PrintQuality”: 0,
“PrintWidth”: 8.5,
“QualityAdjustment”: 1.0,
“ScaleAdjustment”: 1.0,
“SectionSlice”: false,
“SizeInModel”: 1.0,
“SizeInPrint”: 1.0,
“VectorMode”: false
},
“Settings”: {
“Num_Shortcuts”: 20,
“Shortcut_1”: “0 0 0 H selectDollyTool:”,
“Shortcut_10”: “0 0 0 P selectPushPullTool:”,
“Shortcut_11”: “0 0 0 R selectRectangleTool:”,
“Shortcut_12”: “0 0 0 Space selectSelectionTool:”,
“Shortcut_13”: “0 0 0 L selectLineTool:”,
“Shortcut_14”: “0 0 0 K View/Edge Style/Back Edges”,
“Shortcut_15”: “0 0 0 M selectMoveTool:”,
“Shortcut_16”: “0 0 0 G Edit/Make Component…”,
“Shortcut_17”: “0 0 0 T selectMeasureTool:”,
“Shortcut_18”: “0 0 0 F selectOffsetTool:”,
“Shortcut_19”: “0 0 0 Q selectRotateTool:”,
“Shortcut_2”: “0 0 0 I selectImageIglooTool:”,
“Shortcut_20”: “0 0 0 S selectScaleTool:”,
“Shortcut_3”: “0 0 0 O selectOrbitTool:”,
“Shortcut_4”: “0 0 0 Z selectZoomTool:”,
“Shortcut_5”: “0 0 1 Z viewZoomExtents:”,
“Shortcut_6”: “0 0 0 A selectArcTool:”,
“Shortcut_7”: “0 0 0 C selectCircleTool:”,
“Shortcut_8”: “0 0 0 E selectEraseTool:”,
“Shortcut_9”: “0 0 0 B selectPaintTool:”
},
“UserLibrariesComponentBrowser1”: {
“count”: 8,
“first_run”: false,
“Name1”: “Components Sampler”,
“Name2”: “Dynamic Components Training”,
“Name3”: “Architecture”,
“Name4”: “Landscape”,
“Name5”: “Construction”,
“Name6”: “People”,
“Name7”: “Playground”,
“Name8”: “Transportation”,
“Path1”: “C:\ProgramData\SketchUp\SketchUp 2018\SketchUp\Components\Components Sampler”,
“Path2”: “C:\ProgramData\SketchUp\SketchUp 2018\SketchUp\Components\Dynamic Components Training”,
“Path3”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=578dd83d965235a69943445eb5ff139e&q=is:downloadable&hl=en-US”,
“Path4”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=74f1f4bc15880d539d72d32da159e115&q=is:downloadable&hl=en-US”,
“Path5”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=7c6adff4dfc2274cbdec1b0b6b8425ca&q=is:downloadable&hl=en-US”,
“Path6”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=4f8bf1d61dccd5b68095ba2080357053&q=is:downloadable&hl=en-US”,
“Path7”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=198ab77991db28b58095ba2080357053&q=is:downloadable&hl=en-US”,
“Path8”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=a854971e9dfb05cea5ab2a72c8b8cb68&q=is:downloadable&hl=en-US”,
“Type1”: 0,
“Type2”: 0,
“Type3”: 1,
“Type4”: 1,
“Type5”: 1,
“Type6”: 1,
“Type7”: 1,
“Type8”: 1
}
},
“Mac Only”: {},
“Web Only”: {},
“iOS Only”: {},
“Android Only”: {}
}

If I then re-enable updates via the GUI (Windows > Preferences > General, then tick “Allow checking for updates”) the “CheckForUpdates” part appears with the “true” value along with a lot of other data (see this attached as SharedPreferences.json-05-EnabledViaGUI):
{
“Shared for All Computers”: {
“AppGUID”: {
“sendok”: 1
},
“Application”: {
“LastSECopyVersion”: “18.0.16975”
},
“PageOptions”: {
“ShowTransition”: true,
“TransitionTime”: 1.5
},
“Preferences”: {
“AlwaysFixValidityErrors”: false,
“AutoDrawingPlane”: true,
“AutoSave”: true,
“AutoSaveFreq”: 5,
“AviExportAntiAlias”: true,
“AviExportAR”: 1.7777777777777777,
“AviExportFPS”: 24.0,
“AviExportHeight”: 720,
“AviExportLockAR”: true,
“AviExportLoop”: true,
“AviExportPlay”: false,
“AviExportPrompt”: false,
“AviExportWidth”: 1280,
“CheckForUpdates”: true,
“ColorParallelPerpendicular_RGB”: “255 0 255”,
“ColorTangent_RGB”: “0 255 255”,
“ColorX_RGB”: “255 0 0”,
“ColorY_RGB”: “0 255 0”,
“ColorZ_RGB”: “0 0 255”,
“ComponentBrowser1Image”: 5,
“CompViewView”: 0,
“DisplayTabs”: true,
“EnableCheckValidity”: true,
“MaterialColorType”: 2,
“MaterialsBrowserImage”: 2,
“MaterialsBrowserView”: 0,
“MaxUndo”: 100,
“SaveBackup”: true,
“SceneBrowserImage”: 5,
“SceneBrowserView”: 0,
“ShowInferenceTips”: true,
“ShowStylesWarning”: 1,
“StylesBrowserImage”: 2,
“StylesBrowserView”: 0,
“UpdateDefaultColorOn”: true,
“UpdateDefaultOn”: true,
“VCBShowTypedInputBackground”: true,
“VCBTimoutSeconds”: 5
},
“SlideshowOptions”: {
“LoopSlideshow”: true,
“SlideTime”: 1.0
},
“StyleEditTab”: {
“curPage”: 0
}
},
“Windows Only”: {
“Preferences”: {
“DefaultTemplate18”: “C:\Program Files\SketchUp\SketchUp 2018\Resources\en-US\Templates\Temp01b - Simple.skp”
},
“PrintOptions”: {
“ComputeSizeFromScale”: false,
“FitToPage”: true,
“LineWeight”: 0.5,
“ModelExtents”: true,
“NumberOfPages”: 1,
“PixelsPerInch”: 150.0,
“PrintHeight”: 11.0,
“PrintQuality”: 0,
“PrintWidth”: 8.5,
“QualityAdjustment”: 1.0,
“ScaleAdjustment”: 1.0,
“SectionSlice”: false,
“SizeInModel”: 1.0,
“SizeInPrint”: 1.0,
“VectorMode”: false
},
“Settings”: {
“Num_Shortcuts”: 20,
“Shortcut_1”: “0 0 0 H selectDollyTool:”,
“Shortcut_10”: “0 0 0 P selectPushPullTool:”,
“Shortcut_11”: “0 0 0 R selectRectangleTool:”,
“Shortcut_12”: “0 0 0 Space selectSelectionTool:”,
“Shortcut_13”: “0 0 0 L selectLineTool:”,
“Shortcut_14”: “0 0 0 K View/Edge Style/Back Edges”,
“Shortcut_15”: “0 0 0 M selectMoveTool:”,
“Shortcut_16”: “0 0 0 G Edit/Make Component…”,
“Shortcut_17”: “0 0 0 T selectMeasureTool:”,
“Shortcut_18”: “0 0 0 F selectOffsetTool:”,
“Shortcut_19”: “0 0 0 Q selectRotateTool:”,
“Shortcut_2”: “0 0 0 I selectImageIglooTool:”,
“Shortcut_20”: “0 0 0 S selectScaleTool:”,
“Shortcut_3”: “0 0 0 O selectOrbitTool:”,
“Shortcut_4”: “0 0 0 Z selectZoomTool:”,
“Shortcut_5”: “0 0 1 Z viewZoomExtents:”,
“Shortcut_6”: “0 0 0 A selectArcTool:”,
“Shortcut_7”: “0 0 0 C selectCircleTool:”,
“Shortcut_8”: “0 0 0 E selectEraseTool:”,
“Shortcut_9”: “0 0 0 B selectPaintTool:”
},
“UserLibrariesComponentBrowser1”: {
“count”: 8,
“first_run”: false,
“Name1”: “Components Sampler”,
“Name2”: “Dynamic Components Training”,
“Name3”: “Architecture”,
“Name4”: “Landscape”,
“Name5”: “Construction”,
“Name6”: “People”,
“Name7”: “Playground”,
“Name8”: “Transportation”,
“Path1”: “C:\ProgramData\SketchUp\SketchUp 2018\SketchUp\Components\Components Sampler”,
“Path2”: “C:\ProgramData\SketchUp\SketchUp 2018\SketchUp\Components\Dynamic Components Training”,
“Path3”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=578dd83d965235a69943445eb5ff139e&q=is:downloadable&hl=en-US”,
“Path4”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=74f1f4bc15880d539d72d32da159e115&q=is:downloadable&hl=en-US”,
“Path5”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=7c6adff4dfc2274cbdec1b0b6b8425ca&q=is:downloadable&hl=en-US”,
“Path6”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=4f8bf1d61dccd5b68095ba2080357053&q=is:downloadable&hl=en-US”,
“Path7”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=198ab77991db28b58095ba2080357053&q=is:downloadable&hl=en-US”,
“Path8”: “https://3dwarehouse.sketchup.com/3dw/Gdata/entities?clid=a854971e9dfb05cea5ab2a72c8b8cb68&q=is:downloadable&hl=en-US”,
“Type1”: 0,
“Type2”: 0,
“Type3”: 1,
“Type4”: 1,
“Type5”: 1,
“Type6”: 1,
“Type7”: 1,
“Type8”: 1
}
},
“Mac Only”: {},
“Web Only”: {},
“iOS Only”: {},
“Android Only”: {}
}


So, am I still doing something wrong with the syntax in my edited file (SharedPreferences.json-01-Before)?
Do I perhaps need to use the contents of SharedPreferences.json-04-DisabledViaGUI instead?
Is there a simpler way of disabling updates in large scale environments?

2018 10 17 - SketchUp 2018 JSON Config.zip (4.8 KB)


#4

As my formatting didn’t quite work out, I’ve attached my previous response as a PDF to make it a little easier to follow.
2018-10-17 - SketchUp Forum Reply,.pdf (494.5 KB)


#5

Hi,
thanks for the effort of attaching a readable version. This forum uses Markdown, and you can format code blocks by selecting the text and clicking the </> button or wrapping in ```.

So we can assume it is valid JSON.

We still don’t know whether SketchUp overwrites the preferences file completely or removes/adds only some JSON properties.

We still have not yet investigated the influence of the “first run” registry entry.

Also you could contact SketchUp technical support for mass deployment questions, if this is SketchUp Pro.


#6

Thanks Aerilius,

I tried to log a ticket with SketchUp technical support but Trimble won’t allow me to submit a ticket because our licence is purchased via a reseller. Bit bizarre but I’m in contact with our asset manager and reseller to try and get some assistance down that route.

Meanwhile, instead of the cut down file (SharedPreferences.json-01-Before) I’m using a *.json file generated via the GUI (see SharedPreferences.json-04-DisabledViaGUI in my earlier post as an example) with updates disabled and I’m distributing that to users via Group Policy instead. Hopefully this won’t have a negative impact but I’ll have to wait for some feedback to be sure.

In regards to your other points:

  • Valid JSON <-- Seems to be
  • Overwrite/remove/replace behaviour for the *.json files <-- Need to check
  • Influence of “first run” registry entry <-- Need to check

Thanks for your help so far.


#7

I’m not the expert, but asking around. In the mean time, try changing another value in the JSON and see if it changes values. Can you launch-once-then-edit. As I said, I’m not the expert, but on a Mac these days, if you edit anything in the app wrapper prior to initial launch, Apple will say the app is corrupted and wont let you launch it, so launching first before editing is key. I’ll see if I can poke someone to respond.

-b


#8

This is hypothesis based on observation, so stay tuned in case @Barry’s querying of the team unearths corrections, but…

I know that on Mac SketchUp has a RunCounterSU value saved in a .plist, so I presume there is an equivalent in the Registry on Windows. If the value is 0 (or perhaps 1 depending on whether it is incremented on launch or exit), SketchUp creates all the default user configuration files, overwriting anything that was there previously. So you can’t externally pre-install a custom .json configuration file, it will be overwritten. And if you patch the installer itself, as @Barry wrote, it’s likely the OS will detect that it has been tampered with and refuse to install it.


#9

I think on Windows this is in the PrivatePreferences.json (AppData/Local)


#10

With SketchUp Pro 2018, we have a way to stop SketchUp from checking for updates. Please note that this is set at the User Account level so it will need to be set for every user on a given computer. Please download the files here: https://goo.gl/SjebNB

There is both a Mac version (executable text file) and Windows version (batch file). They both change the preferences file that SketchUp uses to check for updates. You will need to Right-click on the Mac version to open the file and select open and Right-Click the Windows script to run as Administrator.

Please note, you will need to shut down SketchUp before running these scripts.