Module Contents#

class ifcopenshell.api.profile.add_arbitrary_profile.Usecase(file, profile=None, name=None)#

Adds a new arbitrary polyline-based profile

The profile is represented as a polyline defined by a list of coordinates. Only straight segments are allowed. Coordinates must be provided in SI meters.

To represent a closed curve, the first and last coordinate must be identical.

  • profile (list[list[float]]) – A list of coordinates

  • name (str, optional) – If the profile is semantically significant (i.e. to be managed and reused by the user) then it must be named. Otherwise, this may be left as none.


The newly created IfcArbitraryClosedProfileDef

Return type



# A 10mm by 100mm rectangle, such that might be used as a wooden
# skirting board or kick plate.
square = ifcopenshell.api.run("profile.add_arbitrary_profile", model,
    profile=[(0., 0.), (.01, 0.), (.01, .1), (0., .1), (0., 0.)],
    name="SK01 Profile")
convert_si_to_unit(self, co)#