ifcopenshell.api.profile.add_arbitrary_profile_with_voids#

Module Contents#

class ifcopenshell.api.profile.add_arbitrary_profile_with_voids.Usecase(file, outer_profile=None, inner_profiles=None, name=None)#

Adds a new arbitrary polyline-based profile with voids

The outer 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.

The inner profiles are represented as a list of polylines. Every polyline in defined by a list of coordinates. Only straight segments are allowed. Coordinates must be provided in SI meters.

Parameters
  • outer_profile – A list of coordinates

  • inner_profiles – A list of polylines

  • 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.

Returns

The newly created IfcArbitraryProfileDefWithVoids

Return type

ifcopenshell.entity_instance.entity_instance

Example:

# A 400mm by 400mm square with a 200mm by 200mm hole in it.
square_with_hole = ifcopenshell.api.run("profile.add_arbitrary_profile_with_voids", model,
    outer_profile=[(0., 0.), (.4, 0.), (.4, .4), (0., .4), (0., 0.)],
    inner_profiles=[[(0.1, 0.1), (0.3, 0.1), (0.3, 0.3), (0.1, 0.3), (0.1, 0.1)]],
    name="SK01 Hole Profile")
convert_si_to_unit(self, co)#
execute(self)#