Module Contents#

class ifcopenshell.api.material.reorder_set_item.Usecase(file, material_set=None, old_index=0, new_index=0)#

Reorders an item in a material set

In some material sets, the order have meaning, like in a layer set. In other cases, it is purely for human convenience.

  • material_set (ifcopenshell.entity_instance.entity_instance) – The IfcMaterialSet which you want to reorder an item in.

  • old_index (int) – The index of the item you want to move. This starts counting from 0.

  • new_index (int) – The index of the new position the item will move to. This starts counting from 0.



Return type



material_set = ifcopenshell.api.run("material.add_material_set", model,
    name="Window", set_type="IfcMaterialList")

aluminium = ifcopenshell.api.run("material.add_material", model, name="AL01", category="aluminium")
glass = ifcopenshell.api.run("material.add_material", model, name="GLZ01", category="glass")

# Now let's use those materials as two items in our list.
ifcopenshell.api.run("material.add_list_item", model, material_list=material_set, material=aluminium)
ifcopenshell.api.run("material.add_list_item", model, material_list=material_set, material=glass)

# Switch the order around, this has no meaning for a list, so this
# is just for fun.
ifcopenshell.api.run("material.reorder_set_item", model,
    material_set=material_set, old_index=0, new_index=1)