ifcopenshell.api.grid.create_axis_curve

Module Contents

ifcopenshell.api.grid.create_axis_curve.create_axis_curve(file: ifcopenshell.file, *, p1: ifcopenshell.util.shape_builder.VectorType, p2: ifcopenshell.util.shape_builder.VectorType, grid_axis: ifcopenshell.entity_instance, is_si: bool = True) None

Adds curve geometry to a grid axis to represent the axis extents

An IFC grid will have a minimum of two axes (typically perpendicular). Each axis will then have a line which represents the extents of the axis.

Points are provided as 3D coordinates in world space. During axis creation, the coordinates will be localized relative to IfcGrid and saved as 2D.

Parameters:
  • p1 – The first point of the grid axis

  • p2 – The second point of the grid axis

  • grid_axis – The IfcGridAxis element to add geometry to.

  • is_si – If true, the points are in meters, not project units

Example:

# A pretty standard rectangular grid, with only two axes.
grid = ifcopenshell.api.root.create_entity(model, ifc_class="IfcGrid")
axis_a = ifcopenshell.api.grid.create_grid_axis(model,
    axis_tag="A", uvw_axes="UAxes", grid=grid)
axis_1 = ifcopenshell.api.grid.create_grid_axis(model,
    axis_tag="1", uvw_axes="VAxes", grid=grid)

# By convention, alphabetic grids are horizontal, and numeric are vertical
ifcopenshell.api.grid.create_axis_curve(
    model, p1=np.array((0., 0., 0.)), p2=np.array((10., 0., 0.)), grid_axis=axis_a)
ifcopenshell.api.grid.create_axis_curve(
    model, p1=np.array((0., 0., 0.)), p2=np.array((0., 10., 0.)), grid_axis=axis_1)