Module Contents#

class ifcopenshell.api.layer.assign_layer.Usecase(file, item=None, layer=None)#

Assigns a representation item to a layer

In IFC, instead of objects being assigned to layers, representation items are assigned to layers. Representation items are portions of the object’s representation. For example, this allows a single IFC Window element to have portions of its 2D linework (e.g. the cross section of its frame) assigned to one layer, and another portion (e.g. the glazing panels) assigned to another layer.



Return type



# Remember, all geometry needs to specify the context it is part of first.
# See ifcopenshell.api.context.add_context for details.
model = ifcopenshell.api.run("context.add_context", model, context_type="Model")
body = ifcopenshell.api.run("context.add_context", model,
    context_type="Model", context_identifier="Body", target_view="MODEL_VIEW", parent=model

wall = ifcopenshell.api.run("root.create_entity", model, ifc_class="IfcWall")
representation = ifcopenshell.api.run("geometry.add_wall_representation", model,
    context=body, length=5, height=3, thickness=0.2)
ifcopenshell.api.run("geometry.assign_representation", model,
    product=wall, representation=representation)
ifcopenshell.api.run("geometry.edit_object_placement", model, product=wall)

# Now let's create a layer that contains walls
layer = ifcopenshell.api.run("layer.add_layer", model, Name="AI-WALL")

# And assign our wall representation item (in this example, there is
# only one item) to the layer.
ifcopenshell.api.run("layer.assign_layer", model, item=representation.Items[0], layer=layer)