{"id":37063015,"url":"https://github.com/krande/adapy","last_synced_at":"2026-01-31T21:12:51.223Z","repository":{"id":39705504,"uuid":"349385543","full_name":"Krande/adapy","owner":"Krande","description":"A python library for structural analysis and design","archived":false,"fork":false,"pushed_at":"2025-12-15T01:12:27.000Z","size":433815,"stargazers_count":108,"open_issues_count":10,"forks_count":23,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-14T09:04:50.272Z","etag":null,"topics":["abaqus","calculix","code-aster","finite-elements","ifc"],"latest_commit_sha":null,"homepage":"https://krande.github.io/adapy","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Krande.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"Krande"}},"created_at":"2021-03-19T10:33:47.000Z","updated_at":"2026-01-13T06:47:05.000Z","dependencies_parsed_at":"2023-12-20T21:28:00.712Z","dependency_job_id":"e9d001eb-460e-49b6-b440-c0bbadcb37f9","html_url":"https://github.com/Krande/adapy","commit_stats":{"total_commits":425,"total_committers":4,"mean_commits":106.25,"dds":"0.19999999999999996","last_synced_commit":"f399a6f6a20b06156cbb7ff331523febbbdb7c71"},"previous_names":[],"tags_count":175,"template":false,"template_full_name":null,"purl":"pkg:github/Krande/adapy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krande%2Fadapy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krande%2Fadapy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krande%2Fadapy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krande%2Fadapy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Krande","download_url":"https://codeload.github.com/Krande/adapy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Krande%2Fadapy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28562674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abaqus","calculix","code-aster","finite-elements","ifc"],"created_at":"2026-01-14T07:01:32.379Z","updated_at":"2026-01-19T07:00:44.507Z","avatar_url":"https://github.com/Krande.png","language":"Python","funding_links":["https://github.com/sponsors/Krande"],"categories":[],"sub_categories":[],"readme":"# ADA - Assembly for Design \u0026 Analysis\n\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/ada-py/badges/version.svg)](https://anaconda.org/conda-forge/ada-py)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/ada-py/badges/latest_release_date.svg)](https://anaconda.org/krande/ada-py)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/ada-py/badges/platforms.svg)](https://anaconda.org/conda-forge/ada-py)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/ada-py/badges/downloads.svg)](https://anaconda.org/conda-forge/ada-py)\n[![PyPi Badge](https://img.shields.io/pypi/v/ada-py)](https://pypi.org/project/ada-py/)\n\nA python library for working with structural analysis and design. This library should be considered as experimental.\n\nThe recommended way of installing ada-py is by creating a new isolated environment for the installation like so:\n\n```\nmamba create -n adaenv ada-py\n```\n\nHere are some of the goals with `ada-py`:\n\n* Support reading, writing and modifying FE models and post-processing FE results\n* Support open source and commercial FE packages (based on what I use/would like to use regularly)\n* Support scriptable FE meshing\n* Support reading/writing CAD/BIM formats (STEP/IFC) \u0026 mesh formats (GLTF)\n* Use a CSG (Constructive Solid Geometry) core primitives library for boolean operations based on the IFC/STEP standards\n* Provide the building blocks for advanced parametric and procedural 3d model design and simulation workflows\n* The library should always strive for user ergonomics.\n\n## Quick Links\n\nTry ada-py online with code-aster and calculix pre-installed\n\n[![Binder-main](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/Krande/adapy/main)\n\n\n* Feel free to start/join any informal topic related to adapy [here](https://github.com/Krande/adapy/discussions).\n* Issues related to adapy can be raised [here](https://github.com/Krande/adapy/issues)\n\n\n## Usage\nSome examples of using the ada-py package \n\n\n### Create an IFC file\n\nThe following code\n\n```python\nfrom ada import Assembly, Part, Beam\n\na = Assembly(\"MyAssembly\") / (Part(\"MyPart\") / Beam(\"MyBeam\", (0, 0, 0), (1, 0, 0), \"IPE300\"))\na.to_ifc(\"C:/temp/myifc.ifc\")\n```\n\ncreates an Ifc file containing an IfcBeam with the following hierarchy \n    \n    MyAssembly (IfSite)\n        MyPart (IfcBuildingStorey)\n            MyBeam (IfcBeam)\n\n![Beam Visualized in BlenderBIM](docs/_static/figures/my_beam.png)\n\nThe resulting IfcBeam (and corresponding hierarchy) shown in the figure above is taken from the awesome \n[blender](https://blender.org) plugin [blenderbim](https://blenderbim.org/).\n\n### Convert between FEM formats\n\nHere is an example showing the code for converting a sesam FEM file to abaqus and code aster\n\n_Note! Reading FEM load and step information is not supported, but might be added in the future._\n\n```python\nimport ada\n\na = ada.from_fem('path_to_your_sesam_file.FEM')\na.to_fem('name_of_my_analysis_file_deck_directory_abaqus', 'abaqus')\na.to_fem('name_of_my_analysis_file_deck_directory_code_aster', 'code_aster')\n```\n\nCurrent read support is: abaqus, code aster and sesam  \nCurrent write support is: abaqus, code aster and sesam, calculix and usfos\n\n### Create and execute a FEM analysis in Calculix, Code Aster and Abaqus\n\nThis example uses a function `beam_ex1` from [here](src/ada/param_models/fem_models.py) that returns an\nAssembly object with a single `Beam` with a few holes in it (to demonstrate a small portion of the steel detailing \ncapabilities in ada and IFC) converted to a shell element mesh using a FE mesh recipe `create_beam_mesh` found \n[here](ada/fem/io/mesh/recipes.py). \n\n```python\nfrom ada.param_models.fem_models import beam_ex1\n\na = beam_ex1()\n\na.to_fem(\"MyCantilever_abaqus\", \"abaqus\", overwrite=True, execute=True, run_ext=True)\na.to_fem(\"MyCantilever_calculix\", \"calculix\", overwrite=True, execute=True)\na.to_fem(\"MyCantilever_code_aster\", \"code_aster\", overwrite=True, execute=True)\n```\n\nafter the code is executed you can look at the results using supported post-processing software or directly\nin python using the built-in THREEJS based viewer in a web browser or Jupyter notebook/lab for the FEA results.\n\n\u003cimg src=\"docs/_static/figures/fem_beam_paraview.png\" alt=\"Calculix Results\" height=\"220\"/\u003e\n\u003cimg src=\"docs/_static/figures/fem_beam_abaqus.png\" alt=\"Abaqus Results\" height=\"220\"/\u003e\n\u003cimg src=\"docs/_static/figures/code_aster_jupyter_displ.png\" alt=\"Code Aster (jupyter) results\" height=\"220\"/\u003e\n\n\n**Note!**\n\nThe above example assumes you have installed Abaqus, Calculix and Code Aster locally on your computer.\n\nTo set correct paths to your installations of FE software you wish to use there are a few ways of doing so.\n\n1. Add directory path of FE executable/batch to your system path.\n2. Add directory paths to system environment variables. This can be done by using the control panel or \n   running the following from a cmd prompt with administrator rights:\n    \n```cmd\n:: Windows\nsetx ADA_abaqus_exe \u003cabsolute path to abaqus.bat\u003e\nsetx ADA_calculix_exe \u003cabsolute path to ccx.exe\u003e\nsetx ADA_code_aster_exe \u003cabsolute path to as_run.bat\u003e\n\n:: Linux?\n\n:: Mac?\n```\n\nNote! It is crucial that any paths containing whitespaces be converted to \"shortened paths\". To shorten a path\non windows, you can use the utility [pathcopycopy](https://pathcopycopy.github.io/).\n\nFor manual installation files of open source FEA software such as Calculix and Code Aster, \nhere are some relevant links:\n\n* https://github.com/calculix/cae/releases (Calculix CAE for Windows/linux)\n* https://code-aster-windows.com/download/ (Code Aster and/or Salome Meca for Windows)\n* https://www.code-aster.org/spip.php?rubrique21 (Code Aster for Linux)\n* https://www.salome-platform.org/?page_id=2430 (Latest Salome for windows/linux)\n* https://prepomax.fs.um.si/downloads/ (PreProMax -\u003e Calculix preprocessor)\n* https://www.paraview.org/download/ (Paraview for post-processing)\n\n\n## Acknowledgements\n\nThis project would never have been possible without the existing open source python and c++ libraries. \nAlthough listed in the package dependencies (which is a long list), here are some of the packages that are at the very \ncore of adapy;\n\n* IfcOpenShell\n* OpenCascade\n* PythonOCC-Core\n* Gmsh\n* Trimesh\n\nA huge thanks to all involved in the development of the packages mentioned here and in the list of packages adapy\ndepends on.\n\nIf you feel that a certain package listed in the adapy dependencies should be listed here please let me know and I will \nupdate the list :)\n\n\n## Project Responsible ##\n\n\tKristoffer H. Andersen\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrande%2Fadapy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrande%2Fadapy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrande%2Fadapy/lists"}