Bitbybit Docs
    Preparing search index...

    Class IFCWallsBeta

    Walls: straight walls on a storey, from an axis, a height and a thickness or a layer set, joined at their corners and clipped under roofs. A wall keeps its axis, layers and height, so joins and clippings are worked out again from them whenever a wall changes, and tools that edit IFC walls edit these as walls.

    Doors, windows and openings go into walls through doors, windows and openings.

    Index

    Constructors

    create

    • Beta

      Adds a straight wall on a storey, from start to end in the storey's plan, height high.

      The wall is made of its type's layer set, the named layerSet, or one layer thickness thick, in that order of preference. alignment says which side of the axis the layers lie on; join walls at their corners afterwards with walls.connect.

      Parameters

      • inputs: AddWallDto<IfcModelPointer>

        The model, the storey, the axis, the height, the thickness or layer set, and the alignment

      Returns Promise<IfcModelPointer>

      A new model with the wall

      model = await bitbybit.ifc.walls.add({ model, storey: "ground", id: "south", start: [0, 0], end: [10000, 0], height: 2700, thickness: 250 });
      model = await bitbybit.ifc.walls.add({ model, storey: "ground", id: "east", start: [10000, 0], end: [10000, 8000], height: 2700, thickness: 250 });
      model = await bitbybit.ifc.walls.connect({ model, wall: "south", other: "east" });

    edit

    • Beta

      Joins two walls where they meet, trimming both: two walls meeting at their ends are mitred into a corner, and a wall ending against another's side is cut back to that side.

      The join is recorded in the model, and joining the two walls again replaces it. Walls that do not meet cannot be joined.

      Parameters

      Returns Promise<IfcModelPointer>

      A new model with the walls joined

      model = await bitbybit.ifc.walls.connect({ model, wall: "south", other: "east" });
      
    • Beta

      Changes a wall's axis, height, base, layers or alignment. Joined walls are trimmed again, clippings stay put, and openings, doors and windows move with it, keeping their offset and sill. A change is refused when it parts the wall from a joined wall, puts an opening off its end, or leaves behind an opening, door or window placed elsewhere.

      Parameters

      Returns Promise<IfcModelPointer>

      A new model with the wall changed

      model = await bitbybit.ifc.walls.edit({ model, wall: "south", height: 3200, thickness: 300 });
      
    • Beta

      Clips a wall with a plane, removing the part on the side the plane's normal points to, as a wall is cut under a sloping roof.

      The plane is given in the wall's storey, and a wall can be clipped by several planes. Clipping keeps the wall's full height in its data, so joins stay right.

      Parameters

      Returns Promise<IfcModelPointer>

      A new model with the wall clipped

      model = await bitbybit.ifc.walls.clipByPlane({ model, wall: "south", origin: [0, 0, 2600], normal: [0, -0.5, 1] });
      
    • Beta

      Clips a wall under a roof by each of the roof's planes that cuts it: under the eaves level or along the slope, under a gable to the gable's triangle. Planes above the wall leave it alone, and clipping again changes nothing. A plane below the wall's bottom everywhere is refused, as it would leave nothing of the wall.

      Parameters

      Returns Promise<IfcModelPointer>

      A new model with the wall clipped

      model = await bitbybit.ifc.walls.clipByRoof({ model, wall: "west", roof: "roof" });
      

    query

    • Beta

      Reads a wall's parameters back from the model: its axis, height, base, thickness, layers and alignment, the walls it is joined to, its openings and its clippings. It reads walls other tools wrote too, when they keep an axis and a layer set usage as IFC's standard walls do.

      Parameters

      Returns Promise<WallParametersDto>

      The wall's parameters, in the plan of its storey

      const wall = await bitbybit.ifc.walls.parameters({ model, wall: "south" });
      

    types

    • Beta

      Adds a wall type: a named kind of wall made of a layer set. Walls added with this type as their wallType are made of its layers.

      Parameters

      Returns Promise<IfcModelPointer>

      A new model with the wall type

      model = await bitbybit.ifc.walls.addType({ model, id: "exterior", name: "Exterior 230", layerSet: "Exterior wall" });