Skip to content
/ perisso Public

Experimental Tapir frontend for supercharging Archicad automation with Python.

License

Notifications You must be signed in to change notification settings

runxel/perisso

Repository files navigation

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

  1. Make sure you have the Tapir plugin for Archicad installed.
  2. 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 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 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.

About

Experimental Tapir frontend for supercharging Archicad automation with Python.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages