3BMLabs / building.py

Python Library for creating buildings, building systems, objects, and exporting to various programs like Blender, Revit, IFC, Struct4U, DXF & Speckle.
GNU General Public License v2.0
17 stars 3 forks source link
automate geometry-creation pure-python python speckle specklepy

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.

Supports Python 3.10 or higher.

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:

Implemented

Group Part Implemented ToSpeckle ToFreeCAD
Abstract Vector :heavy_check_mark:
  Vector2 :heavy_check_mark:
  Plane :heavy_check_mark:
  CoordinateSystem :heavy_check_mark:
  Color :heavy_check_mark: :heavy_check_mark:
  Material :heavy_check_mark:
Geometry Point3D :heavy_check_mark: :heavy_check_mark:
  Line :heavy_check_mark: :heavy_check_mark:
  Arc :heavy_check_mark: :heavy_check_mark:
  PolyCurve :heavy_check_mark: :heavy_check_mark:
  Point2D :heavy_check_mark: :heavy_check_mark:
  Line2D :heavy_check_mark: :heavy_check_mark:
  Arc2D :heavy_check_mark: :heavy_check_mark:
  PolyCurve2D :heavy_check_mark: :heavy_check_mark:
  LineStyle :heavy_check_mark: :heavy_check_mark:
  Text :heavy_check_mark: :heavy_check_mark:
  Mesh :heavy_check_mark: :heavy_check_mark:
  BREP
  Extrusion :heavy_check_mark: :heavy_check_mark:
  Sweep
Objects Frame :heavy_check_mark: :heavy_check_mark:
  FrameConnections
  Panel :heavy_check_mark: :heavy_check_mark:
  Dimension :heavy_check_mark: :heavy_check_mark:
  Tag :heavy_check_mark: :heavy_check_mark:
  Component3D
  Component2D
  Hatch :heavy_check_mark: :heavy_check_mark:
Library Steelprofiles :heavy_check_mark:
  Materials
Exchange Speckle :heavy_check_mark:
  IFC :heavy_check_mark:
  PAT :heavy_check_mark:
  OBJ
  Struct4U :heavy_check_mark:
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