COMPAS Masonry
[!WARNING] This plugin is under active development, and its functionality will frequently change.
COMPAS Masonry is a plugin for Rhino for the assessment of masonry structures, and for the stability analsis of Discrete Element Models in general.
The current version of this plugin is based on COMPAS 2 and is only available for Rhino 8.
Installation
To install COMPAS-Masonry, use Rhino's package manager Yak.
To open Yak, type PackageManager on the Rhino command line.
Then search for "COMPAS Masonry" and install.
COMPAS Packages
COMPAS-Masonry uses the following COMPAS packages:
- compas
- compas_cgal
- compas_dem
- compas_libigl
- compas_model
- compas_rui
- compas_session
- compas_tna
- compas_tno
After installing COMPAS-Masonry with Yak, these requirements will be installed automatically if necessary.
The tool might be unresponsive during this process, which might take up to 1 or 2 mins.
The packages are installed in a separate virtual environment named COMPAS-Masonry.
Solvers
Equilibrium analysis runs through compas_cra:
- RBE — rigid block equilibrium
- CRA — coupled rigid block analysis, with an optional penalty formulation
Both return contact forces rather than displacements.
[!IMPORTANT] These need compas_cra >= 0.8.0, which solves IPOPT in-process through a bundled native binding. There is no
ipoptexecutable to install and nothing to put onPATH: wheels are published for CPython 3.9-3.13 on macOS (arm64 and x86_64), manylinux and Windows, each carrying the compiled solver, so a plainpip installis the whole setup. compas_cra 0.4.0 cannot be used in a NumPy 2 environment, and 0.5.0-0.7.0 have been withdrawn from PyPI.compas_cra still solves for self-weight only —
external_force_setup(assembly, density)takes no external load vector. A problem carrying any boundary condition is therefore refused bycheck_ready()and has to go to LMGC90 or 3DEC instead.
LMGC90 provides contact dynamics and displacements in-process through
compas_lmgc90.
3DEC provides staged gravity, load, and prescribed-displacement analyses
through compas_3dec and a licensed external Itasca 3DEC installation. The
Python adapter ships as a base requirement, so a 3DEC solver can be configured
and saved on any machine — the parameters belong to the problem, not to the
computer that runs it. The 3DEC executable itself is discovered automatically,
or its path and run workspace can be set in CM_Problem_setsolver.
[!NOTE] 3DEC is Windows software, and
compas_3decdiscovers it only under the WindowsProgram Files\Itascalocations. On macOS and Linux a 3DEC solve is refused up front, before any stage prompt, rather than failing inside a subprocess launch. An explicit executable path is honoured on every platform, so a reachable licensed install is used wherever it is found.
CRA and RBE exclude support blocks from the equilibrium system, so they have no displacement degrees of freedom and refuse a problem carrying a prescribed displacement. Use LMGC90 or 3DEC for those problems.
User Interface
COMPAS-Masonry defines 28 Rhino commands, all prefixed CM_ and grouped by the
stage they belong to:
| Group | Commands |
|---|---|
| Session | CM_Masonry_start, CM_Session_undo, CM_Session_redo, CM_Session_import, CM_Session_save, CM_Session_redraw, CM_Session_clear, CM_Session_settings |
| Model | CM_Model_blocks, CM_Model_contacts, CM_Model_supports, CM_Model_material, CM_Model_materialassign |
| Problem | CM_Problem_create, CM_Problem_contactlaw, CM_Problem_setsolver, CM_Problem_loads, CM_Problem_displacements, CM_Problem_solve |
| Results | CM_Results_show, CM_Results_print, CM_Results_block |
| TNA | CM_TNA_envelope, CM_TNA_formdiagram, CM_TNA_supports, CM_TNA_loads, CM_TNA_analysis, CM_TNA_blockexport |
A typical run goes left to right through those groups: build the model, compute its contacts, mark supports, assign a material, create a problem with a contact law and a solver, add loads, solve, and draw the results.
A problem is the load case. Loads and prescribed movements are added straight
to a problem; solving applies all of them. To compare two load cases, duplicate
the problem in CM_Problem_create.
Saving works the way RhinoVAULT's does: CM_Session_save writes the whole
session to one JSON file and CM_Session_import opens it. There are no
per-artefact import/export commands. Results are left out deliberately — they are
re-derived by CM_Problem_solve.
These commands can be executed using the Rhino command line (simply start typing the command name), or with the corresponding buttons of the COMPAS-Masonry toolbar.
If the toolbar is not visible after installing COMPAS-Masonry,
you can load it from the "Toolbars" page.
To open the "Toolbars" page, type Toolbar on the Rhino command line...
Documentation
For further "getting started" instructions, a tutorial, examples, and an detailed description of the individual commands and the user interface, please check out the online documentation here: COMPAS-Masonry Gitbook
Issues
Please report problems using the issue tracker of the github repo: https://github.com/blockresearchgroup/compas-Masonry/issues
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 compas_masonry-0.4.0.tar.gz.
File metadata
- Download URL: compas_masonry-0.4.0.tar.gz
- Upload date:
- Size: 116.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de80a6ef783a22d26a3b80c4fc73e15a454d8d5684583857e4cc13e3836674cd
|
|
| MD5 |
b9224528e8734a6cc6644e2077e4f76d
|
|
| BLAKE2b-256 |
136958ea87f8d541c815520eff7117f87024f8cac34e071e8dfb830bae9510f1
|
File details
Details for the file compas_masonry-0.4.0-py3-none-any.whl.
File metadata
- Download URL: compas_masonry-0.4.0-py3-none-any.whl
- Upload date:
- Size: 86.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02dad569f4ca5655c10165e5adb83ab796ff043f27308b3df02bb554386d8917
|
|
| MD5 |
d598392a5647a6350af2532e79580671
|
|
| BLAKE2b-256 |
1f562a46a58b03dbd14fcd3a90f880054bafc902e58b7d5829acbec010bbd0a6
|