Sometime I can't save file after clear useless definition

OS version : window 10 x64
SDK version : SDK_WIN_x64_2025-0-634
I got SU_ERROR_SERIALIZATION when save after clear.
purge_definitions_fail.skp

Can’t save file after clear useless definitions · Issue #1059 · SketchUp/api-issue-tracker

    SUModelRef model = SU_INVALID;
    SUModelLoadStatus model_status;
    SU(SUModelCreateFromFileWithStatus(&model, "H:/Desktop/purge_definitions_fail.skp", &model_status));
    size_t size = 0, group_size = 0, image_size = 0, total_size = 0;
    SUModelGetNumComponentDefinitions(model, &size);
    SUModelGetNumGroupDefinitions(model, &group_size);
    SUModelGetNumImageDefinitions(model, &image_size);
    total_size = size + group_size + image_size;
    if (total_size != 0) {
        std::vector<SUComponentDefinitionRef> definitions(total_size), erase_definitions(total_size);
        if (size != 0)
            SUModelGetComponentDefinitions(model, size, &definitions[0], &size);
        if (group_size != 0)
            SUModelGetGroupDefinitions(model, group_size, &definitions[size], &group_size);
        if (image_size != 0)
            SUModelGetImageDefinitions(model, image_size, &definitions[size + group_size], &image_size);
        total_size = size + group_size + image_size;

        while (true) {
            size_t erase_size = 0;
            for (int i = 0;i < total_size;i++) {
                if (SUIsInvalid(definitions[i]))
                    continue;
                size_t curr_def_use_size = 0;
                SUComponentDefinitionGetNumInstances(definitions[i], &curr_def_use_size);
                if (curr_def_use_size == 0) {
                    erase_definitions[erase_size++] = definitions[i];
                    definitions[i] = SU_INVALID;
                }
            }
            if (erase_size == 0)
                break;
            SUModelRemoveComponentDefinitions(model, erase_size, &erase_definitions[0]);
        }
        SUResult res = SUModelSaveToFileWithVersion(model, "H:/Desktop/purge_definitions_tmp.skp", SUModelVersion_Current);
        printf("SAVE RES : %d", res);
    }
    SUModelRelease(&model);

Can’t save file after clear useless definitions · Issue #1059 · SketchUp/api-issue-tracker

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.