perisso


Nameperisso JSON
Version 0.5.0 PyPI version JSON
download
home_pageNone
SummaryExperimental Tapir utility for supercharging Archicad automation.
upload_time2025-07-29 22:29:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
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 a Python package based on this fantastic work and 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.


## 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.


## 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.10",
    "maintainer_email": null,
    "keywords": "archicad, automation, bim, tapir",
    "author": null,
    "author_email": "Lucas Becker <lucas@akroter.io>",
    "download_url": "https://files.pythonhosted.org/packages/74/f7/4d45191e6353dfb06bb2ba3483c2ef38028484507bb6ecdc4e9d0a06f6d2/perisso-0.5.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 a Python package based on this fantastic work and 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.\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.\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.5.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": "a5454dff28c238ad1d98fa7140a4ce17e7b29b1d6c3aec0a479280a0e576be0d",
                "md5": "568199aba610fe1694b241d470bcae0d",
                "sha256": "7b6723d4464b6bbf9887d6c199bc324e26034b295a9236164d4f88781f559888"
            },
            "downloads": -1,
            "filename": "perisso-0.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "568199aba610fe1694b241d470bcae0d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 10544,
            "upload_time": "2025-07-29T22:29:00",
            "upload_time_iso_8601": "2025-07-29T22:29:00.906228Z",
            "url": "https://files.pythonhosted.org/packages/a5/45/4dff28c238ad1d98fa7140a4ce17e7b29b1d6c3aec0a479280a0e576be0d/perisso-0.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "74f74d45191e6353dfb06bb2ba3483c2ef38028484507bb6ecdc4e9d0a06f6d2",
                "md5": "4df35cda955bb817e4189e65b5ddd0ec",
                "sha256": "2696761c2000fcb9a69f9e7c824560cdf268db5a8aff692539ddcb42193b0182"
            },
            "downloads": -1,
            "filename": "perisso-0.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "4df35cda955bb817e4189e65b5ddd0ec",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 12277,
            "upload_time": "2025-07-29T22:29:02",
            "upload_time_iso_8601": "2025-07-29T22:29:02.187678Z",
            "url": "https://files.pythonhosted.org/packages/74/f7/4d45191e6353dfb06bb2ba3483c2ef38028484507bb6ecdc4e9d0a06f6d2/perisso-0.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-29 22:29:02",
    "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"
}
        
Elapsed time: 1.01438s