Experimental Tapir utility for supercharging Archicad automation.
Project description
Perisso
Short for "perissodactyla" /pəˌrɪsoʊˈdæktɪlə/ – the zoological order Tapiridae reside in. It's an experimental Tapir 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
- Make sure you have the Tapir plugin for Archicad installed.
- Install
perisso.
My recommendation: Always use uv. Use it for everything.
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:
sel_elem = perisso(selection=True)
Here is a basic example of how to use perisso:
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.
For that you need to call thetoNative()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 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.
License
Perisso is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file perisso-0.8.0.tar.gz.
File metadata
- Download URL: perisso-0.8.0.tar.gz
- Upload date:
- Size: 45.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96c79cd27e3336b39f5619dd5348369a17bb649b2893d2277d69ac9c3ad40f02
|
|
| MD5 |
5056e677ed22053e02af4558d258248c
|
|
| BLAKE2b-256 |
4ef8ac24bad4b3b08fa2fe014672d846fdbcee13dd2522ce63d45126a81c5ba2
|
Provenance
The following attestation bundles were made for perisso-0.8.0.tar.gz:
Publisher:
release.yml on runxel/perisso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
perisso-0.8.0.tar.gz -
Subject digest:
96c79cd27e3336b39f5619dd5348369a17bb649b2893d2277d69ac9c3ad40f02 - Sigstore transparency entry: 1362062802
- Sigstore integration time:
-
Permalink:
runxel/perisso@d6f35ff284d7598ebeb8c58e97e8a3ad88f7af39 -
Branch / Tag:
refs/tags/0.8.0 - Owner: https://github.com/runxel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d6f35ff284d7598ebeb8c58e97e8a3ad88f7af39 -
Trigger Event:
push
-
Statement type:
File details
Details for the file perisso-0.8.0-py3-none-any.whl.
File metadata
- Download URL: perisso-0.8.0-py3-none-any.whl
- Upload date:
- Size: 45.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
623ec36cf9501d462b08c0ed9c38fcbda8e4c51b0bd3a80213e219d9e717fc5f
|
|
| MD5 |
fc150cebc59b64daebe62a9f98b0c776
|
|
| BLAKE2b-256 |
65fc279790e3bfe1224c19ebaf662c7f971953194ea709cf8fdd2be3b30f8a3b
|
Provenance
The following attestation bundles were made for perisso-0.8.0-py3-none-any.whl:
Publisher:
release.yml on runxel/perisso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
perisso-0.8.0-py3-none-any.whl -
Subject digest:
623ec36cf9501d462b08c0ed9c38fcbda8e4c51b0bd3a80213e219d9e717fc5f - Sigstore transparency entry: 1362062921
- Sigstore integration time:
-
Permalink:
runxel/perisso@d6f35ff284d7598ebeb8c58e97e8a3ad88f7af39 -
Branch / Tag:
refs/tags/0.8.0 - Owner: https://github.com/runxel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d6f35ff284d7598ebeb8c58e97e8a3ad88f7af39 -
Trigger Event:
push
-
Statement type: