Hello everyone,
I just made my first python package adapy - Assembly for Design & Analysis available on Github.
In short, adapy is a python library for structural analysis and design that focus on interoperability between IFC and various Finite Element formats. It also provides a neat framework for parametric modelling in python where you not only parameterize your CAD model but also your FEM mesh recipes. It is built on top of ifcopenshell
and pythonocc-core
and uses gmsh
for constructing FEM meshes and it has some experimental integrations with meshio
for converting FEM formats otherwise not natively supported by ada.
The library is something I have built over time as a personal experiment working with FEM analysis and having to deal with interoperability with different CAD systems. Adapy has now become a central component in pretty much anything else I create related to CAD or FEM in python.
Here are a few example workflows that I use adapy for myself (the figures and more description can be found https://adapy.readthedocs.io/en/latest/).
Build IFC files using a compact syntax
from ada import Assembly, Part, Beam
a = Assembly("MyAssembly") / (Part("MyPart") / Beam("MyBeam", (0,0,0), (1,0,0), "IPE300"))
a.to_ifc("C:/temp/myifc.ifc")
creates an IFC with the following hierarchy (as shown in the figure below taken from the awesome
blender plugin blenderbim)
MyAssembly (IfSite)
MyPart (IfcBuildingStorey)
MyBeam (IfcBeam)
Build model in code, visualize, mesh, simulate and postprocessing all in glorious python
Create code "attached to structural components" that checks for penetrating pipes and automatically create penetration details
Last but not least, this library is still undergoing significant development so expect there to be occasional bugs and breaking changes :)
Best Regards
Kristoffer