Skip to content

Repository files navigation

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

About

Rhino plugin for the design and equilibrium analysis of block models and for the stability assessment of (historic) masonry structures.

Topics

Resources

Code of conduct

Stars

4 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages