Skip to main content

COMPAS Masonry

[!WARNING] This plugin is under active development, and its functionality will frequently change.

COMPAS Masonry

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:

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 ipopt executable to install and nothing to put on PATH: 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 plain pip install is 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 by check_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_3dec discovers it only under the Windows Program Files\Itasca locations. 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.

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

Rhino Toolbars

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

compas_masonry-0.4.0.tar.gz (116.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

compas_masonry-0.4.0-py3-none-any.whl (86.2 kB view details)

Uploaded Python 3

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

Hashes for compas_masonry-0.4.0.tar.gz
Algorithm Hash digest
SHA256 de80a6ef783a22d26a3b80c4fc73e15a454d8d5684583857e4cc13e3836674cd
MD5 b9224528e8734a6cc6644e2077e4f76d
BLAKE2b-256 136958ea87f8d541c815520eff7117f87024f8cac34e071e8dfb830bae9510f1

See more details on using hashes here.

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

Hashes for compas_masonry-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02dad569f4ca5655c10165e5adb83ab796ff043f27308b3df02bb554386d8917
MD5 d598392a5647a6350af2532e79580671
BLAKE2b-256 1f562a46a58b03dbd14fcd3a90f880054bafc902e58b7d5829acbec010bbd0a6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page