TypeError: ‘NoneType’ object is not subscriptable

I'm making a Blender script to decimate each selected object from an IFC file. But in some IFC files appears the following error: **TypeError: ‘NoneType’ object is not subscriptable **

`import bpy

def is_valid_mesh(obj):
if obj.type == 'MESH' and obj.data and len(obj.data.vertices) > 0 and len(obj.data.polygons) > 0:
return True
return False

for obj in bpy.context.selected_objects:
if is_valid_mesh(obj):
try:
decimate_modifier = obj.modifiers.new(name="Decimate", type='DECIMATE')
decimate_modifier.ratio = 0.1

        bpy.context.view_layer.objects.active = obj
        bpy.ops.object.modifier_apply(modifier=decimate_modifier.name)
        print(f"Decimate modifier applied to {obj.name}")
    except RuntimeError as e:
        print(f"Failed to apply Decimate modifier on {obj.name}: {e}")
else:
    print(f"Skipping {obj.name} (invalid geometry)")

try:
bpy.ops.bim.update_representation()
print("Update Representation executed successfully.")
except RuntimeError as e:
print(f"Failed to execute 'Update Representation': {e}")

output_path = "route/to/output/path"
try:
bpy.ops.bim.save_project(filepath=output_path)
print(f"IFC file exported successfully to {output_path}")
except RuntimeError as e:
print(f"Failed to export IFC file: {e}")`

Sign In or Register to comment.