Skip to content

3BMLabs/building.py

Update Wiki Generate bp_single_file

building.py

A Python library for creating buildings, building systems, objects, and exporting them to various programs such as Blender, Revit, and Speckle.

Why?

In the realm of building design, almost everything can be categorized as a frame or a panel – from windows and curtain walls to floor systems. The aim of the building.py project is to automate the creation of these systems.

Goals of the building.py Project:

  • Develop a Python library for geometry creation without dependencies.
  • Provide export options to:
    • Speckle
    • FreeCAD
    • Revit
    • XFEM4U
    • IFC using IFCOpenShell
    • Scia Engineer

Design principles

  • Create

Implemented

Group Part Implemented ToSpeckle ToFreeCAD
Abstract Vector3 ✔️
  Vector2 ✔️
  Plane ✔️
  CoordinateSystem ✔️
  Color ✔️ ✔️
  Material ✔️
Geometry Point3D ✔️ ✔️
  Line ✔️ ✔️
  Arc ✔️ ✔️
  PolyCurve ✔️ ✔️
  Point2D ✔️ ✔️
  Line2D ✔️ ✔️
  Arc2D ✔️ ✔️
  PolyCurve2D ✔️ ✔️
  LineStyle ✔️ ✔️
  Text ✔️ ✔️
  Mesh ✔️ ✔️
  BREP
  Extrusion ✔️ ✔️
  Sweep
Objects Frame ✔️ ✔️
  FrameConnections
  Panel ✔️ ✔️
  Dimension ✔️ ✔️
  Tag ✔️ ✔️
  Component3D
  Component2D
  Hatch ✔️ ✔️
Library Steelprofiles
  Materials
Exchange Speckle ✔️
  IFC
  PAT ✔️
  OBJ
  Struct4U ✔️
Import Image 50%
  GIS
  CityJSON 50%

Versions

Notice that this version is very much a beta version, although it is in our opinion usable. If you use it, feedback is very much appreciated!

We are currently working on version 0.1. Releasedate: april 14 2023 Versions 0.x will be subject to significant changes of the API until the release of version 1 which is planned on january 7 2024.

Examples

CrossBondWithJointYellowRed

pat = PatternSystem().stretcher_bond_with_joint("halfsteensverband",100,210,50,10,12.5)

Image

Kruisverband

Image

Image

Image

Image

Image