SketchUp 2025 C SDK Compatibility

Yes, I only support my plugin in 2025, 2024, 2023, and 2022, so Ruby 3.2 and Ruby 2.7 - Note that this all works fine, except with the latest 2025 SDK.

Thanks for explaining. I’m not sure I’m following your explanation @DanRathbun - I can’t connect the Visual Studio toolset to the fact that a C extension loads or doesn’t load in SketchUp 2024, depending on which functions from the SDK are used in the C extension.

Firstly, I’m not C guru, but I can read it (and I dabble in calling functions of DLLs using Fiddle.)

I’m just pointing out to the general readership (incl. yourself) that the main SDK introductory page, in the Windows > History section twice warns that:

Using a different Platform Toolset will likely cause the plugin to fail to load and cause SketchUp to crash.”.

So, assuming you chose the correct toolset when compiling (v143 for Ruby 3.2 & v142 for Ruby 2.7) the question which also interests me …

… & …

… because given the new “versionless” file format, it is likely that models from newer SketchUp versions, containing PBR materials and Environments will get loaded into pre-2025 SketchUp versions.

Hmmm … (thinking)… the newer “versionless” SKP format is supposed to be like XML in the practice of ignoring data that it does not understand. (In the case of XML this is elements and attributes. I was one of those who proposed this scenario and used XML as an example.)

The old SKP format would not load newer versions and often would “choke” on them, either throwing an error messagebox or crashing.

The new version / edition (whatever) is supposed to ignore what data it doesn’t know about.

So (thinking that) in an pre-2025 SketchUp version, the active model loaded would not be able to “see” or load into memory the PBR material properties or the Environments, even if your extension used the 2025 SDK.

Perhaps the only way, it should or would be able to access new features using a newer SDK, is to reload the file into memory as a separate file. (I.e., don’t try to access the active model object’s PBR stuff or Environments.)

Does this “thought exercise” make sense?