| Name | perisso JSON |
| Version |
0.6.0
JSON |
| download |
| home_page | None |
| Summary | Experimental Tapir utility for supercharging Archicad automation. |
| upload_time | 2025-10-06 08:18:19 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.12 |
| license | None |
| keywords |
archicad
automation
bim
tapir
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
archicad
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# Perisso
> Short for "perissodactyla" /pəˌrɪsoʊˈdæktɪlə/ – the zoological order Tapiridae reside in.
> It's an experimental [Tapir](https://github.com/ENZYME-APD/tapir-archicad-automation) utility.
## Overview
_Tapir_ provides a collection of tooling to assist the usage of the JSON API of Archicad.
_Perisso_ is based on this fantastic work and provides a consolidated frontend for using tapir. This Python package aims to make it even easier to interact with and manipulate digital architectural model elements, by employing a fluent interface. This includes offering an efficient way to filter elements based on various criteria, and calling tapir functions those elements.
## Installation
1. Make sure you have the Tapir plugin for Archicad installed.
2. Install `perisso`.
My recommendation: Always use [uv](https://docs.astral.sh/uv/). Use it for everything.
```bash
uv venv
uv pip install perisso
```
Alternatively, you just download the source files. Oldschool.
> [!WARNING]
> Perisso is under development. Please expect breaking changes between versions.
## Usage
The simplest way is to just call `perisso()`. This will select all elements by default. To limit the elements to the current selection in Archicad use the `selection` parameter:
```python
sel_elem = perisso(selection=True)
```
Here is a basic example of how to use `perisso`:
```python
from perisso import perisso, Filter, ElType
elements = perisso()
filtered_elements = elements.filterBy(Filter.ELEMENT_TYPE).equals(ElType.COLUMN).get()
print(filtered_elements)
```
> [!CAUTION]
> The resulting element list is compatible with Tapir, but _not_ with the native [Archicad-Python connection](https://pypi.org/project/archicad/).
For that you need to call the `toNative()` function on the perisso collection. The result uses the classes of the AC-Py connection and can then be fed into it.
See the [examples](https://github.com/runxel/perisso/tree/main/examples) for more.
> [!NOTE]
> If a filter does _not_ apply the element concerned is silently removed (not _included_ in the result, that is). Example: A Property is not used on it.
## Contributing
Please open an issue or submit a pull request for any enhancements or bug fixes. Contributions are welcome, but might not be accepted until `perisso` reached a somewhat stable state.
Formatting is done with [`ruff`](https://astral.sh/ruff).
## License
Perisso is licensed under the MIT License.
Raw data
{
"_id": null,
"home_page": null,
"name": "perisso",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "archicad, automation, bim, tapir",
"author": null,
"author_email": "Lucas Becker <lucas@akroter.io>",
"download_url": "https://files.pythonhosted.org/packages/01/3d/b1e45b6086a4bf9f6d6101e474123249c77af42df9c007c5adc1f4bd24ef/perisso-0.6.0.tar.gz",
"platform": null,
"description": "# Perisso\n> Short for \"perissodactyla\" /p\u0259\u02ccr\u026aso\u028a\u02c8d\u00e6kt\u026al\u0259/ \u2013 the zoological order Tapiridae reside in.\n> It's an experimental [Tapir](https://github.com/ENZYME-APD/tapir-archicad-automation) utility. \n\n\n## Overview\n_Tapir_ provides a collection of tooling to assist the usage of the JSON API of Archicad. \n_Perisso_ is based on this fantastic work and provides a consolidated frontend for using tapir. This Python package aims to make it even easier to interact with and manipulate digital architectural model elements, by employing a fluent interface. This includes offering an efficient way to filter elements based on various criteria, and calling tapir functions those elements.\n\n\n## Installation\n\n1. Make sure you have the Tapir plugin for Archicad installed.\n2. Install `perisso`. \nMy recommendation: Always use [uv](https://docs.astral.sh/uv/). Use it for everything.\n\n```bash\nuv venv\nuv pip install perisso\n```\n\nAlternatively, you just download the source files. Oldschool.\n\n\n> [!WARNING] \n> Perisso is under development. Please expect breaking changes between versions.\n\n\n## Usage\n\nThe simplest way is to just call `perisso()`. This will select all elements by default. To limit the elements to the current selection in Archicad use the `selection` parameter:\n```python\nsel_elem = perisso(selection=True)\n```\n\nHere is a basic example of how to use `perisso`:\n\n```python\nfrom perisso import perisso, Filter, ElType\n\nelements = perisso()\nfiltered_elements = elements.filterBy(Filter.ELEMENT_TYPE).equals(ElType.COLUMN).get()\nprint(filtered_elements)\n```\n\n> [!CAUTION]\n> The resulting element list is compatible with Tapir, but _not_ with the native [Archicad-Python connection](https://pypi.org/project/archicad/). \nFor that you need to call the `toNative()` function on the perisso collection. The result uses the classes of the AC-Py connection and can then be fed into it.\n\n\nSee the [examples](https://github.com/runxel/perisso/tree/main/examples) for more.\n\n\n> [!NOTE] \n> If a filter does _not_ apply the element concerned is silently removed (not _included_ in the result, that is). Example: A Property is not used on it.\n\n\n## Contributing\n\nPlease open an issue or submit a pull request for any enhancements or bug fixes. Contributions are welcome, but might not be accepted until `perisso` reached a somewhat stable state. \nFormatting is done with [`ruff`](https://astral.sh/ruff).\n\n\n## License\n\nPerisso is licensed under the MIT License.\n",
"bugtrack_url": null,
"license": null,
"summary": "Experimental Tapir utility for supercharging Archicad automation.",
"version": "0.6.0",
"project_urls": {
"Bug Tracker": "https://github.com/runxel/perisso/issues",
"Homepage": "https://github.com/runxel/perisso"
},
"split_keywords": [
"archicad",
" automation",
" bim",
" tapir"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0ee2d7c367e7cfa59bd9d16d62cfcd9eda595140a342c0ccafcbf3a9157330d7",
"md5": "0dee1e7a8006e9684b0cd8617519a6ac",
"sha256": "230632af363d57a3c11de2657c534b7fff93e9377f5cd1c8d440cbfb9f1856c8"
},
"downloads": -1,
"filename": "perisso-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0dee1e7a8006e9684b0cd8617519a6ac",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 38808,
"upload_time": "2025-10-06T08:18:18",
"upload_time_iso_8601": "2025-10-06T08:18:18.664947Z",
"url": "https://files.pythonhosted.org/packages/0e/e2/d7c367e7cfa59bd9d16d62cfcd9eda595140a342c0ccafcbf3a9157330d7/perisso-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "013db1e45b6086a4bf9f6d6101e474123249c77af42df9c007c5adc1f4bd24ef",
"md5": "e315526512b8c23eadd811afd15623a2",
"sha256": "ce22c28f337efd976a7a50172fd6de024003f6163a0edcda57dcc11d434dd194"
},
"downloads": -1,
"filename": "perisso-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "e315526512b8c23eadd811afd15623a2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 39066,
"upload_time": "2025-10-06T08:18:19",
"upload_time_iso_8601": "2025-10-06T08:18:19.961675Z",
"url": "https://files.pythonhosted.org/packages/01/3d/b1e45b6086a4bf9f6d6101e474123249c77af42df9c007c5adc1f4bd24ef/perisso-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-06 08:18:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "runxel",
"github_project": "perisso",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "archicad",
"specs": [
[
">=",
"28.3000"
]
]
}
],
"lcname": "perisso"
}