pyArchimate package
Documentation: readthedocs.org
pyArchimate is a Python library for programmatically reading, writing, and manipulating Open Group ArchiMate enterprise architecture models. It has no GUI — it is purely a file I/O and object model library designed for batch and scripting use.
Core concepts
| Object | What it represents |
|---|---|
Model |
Top-level container for everything |
Element |
An architectural concept (business process, application, server, capability…) |
Relationship |
A typed link between two elements (Association, Realization, Composition, Flow…) |
View |
A diagram — a named subset of elements/relationships laid out visually |
Node |
The visual box representing an element inside a view |
Connection |
The visual arrow representing a relationship inside a view |
Elements span the full ArchiMate 3 layer stack: Strategy, Motivation, Business, Application, Technology, Physical, and Implementation.
Supported formats
| Format | Read | Write |
|---|---|---|
| ArchiMate Open Exchange XML | yes | yes |
| Archi tool format (.archimate) | yes | yes |
| CSV | — | yes |
Key operations
- Read / Write / Merge — load one or more files and save to any supported format
- Create & modify — add elements, relationships, and views via the API without touching a file
- Filter — extract subsets of elements, relationships, or views by custom predicates
- Style — set colours, coordinates, dimensions, and text layout on nodes
- Validate — check for broken references and invalid connections
- Auto-Layout — automatically arrange view elements using force-directed or hierarchical algorithms
- Auto-Format — standardize element sizes, fonts, and alignment per ArchiMate conventions
- SVG Export — render views as self-contained SVG with ArchiMate symbols and standard colors
Auto-Layout and Auto-Format (BETA)
⚠️ Status: BETA — Core functionality is stable and production-ready for typical use cases. API may evolve based on user feedback.
Quick Start
from pyArchimate.view import load_view, save_view
from pyArchimate.view.layout import apply_layout, apply_format, LayoutConfig
# Load a view
view = load_view("architecture.archimate")
# Apply automatic layout
result = apply_layout(view)
# Or apply formatting only (without repositioning)
result = apply_format(view)
# Export as SVG
svg = view.to_svg(filepath="diagram.svg")
# Save the laid-out view
save_view(view, "laid_out.archimate")
Features
- Two layout algorithms: Force-directed (general-purpose) and hierarchical (organizational structures)
- Respect ArchiMate layers: Business → Application → Technology ordering enforced
- Connection routing: Orthogonal polylines with intelligent label placement
- SVG export: Self-contained SVG with all 30+ ArchiMate element types and standard colors
- Undo/rollback: Revert layout changes with
undo_layout(view) - Configuration: Customize spacing, margins, alignment, element exclusion, and routing style
Performance
| View Size | Force-Directed | Hierarchical |
|---|---|---|
| 100 elements | <200ms | <50ms |
| 300 elements | <2s | <500ms |
| 500 elements | <5s | <1s |
Learn More
Limitations
- No GUI, no diagram renderer
- Not designed for interactive or real-time use — batch/scripting oriented
Documentation
- AI.md — machine-readable reference for AI-assisted tooling and developer onboarding
- Tutorial — step-by-step guide for new users with runnable code examples
ArchiMate v3.x Compliance
pyArchimate now supports ArchiMate 3.x specification compliance with the following features:
Supported Features
- ✅ BusinessInteraction elements: Full support for creating, importing, and exporting BusinessInteraction elements
- ✅ Influence strength metadata: Complete round-trip preservation of influence relationship strength (both
.archimateand OpenGroup formats) - ✅ Relationship documentation: Full preservation of relationship documentation/description text during import and export
Known Gaps
See Gap Analysis Documentation for detailed analysis of specification alignment and areas for future enhancement (P2/P3).
Metamodel
Metadata
Release files for pyArchimate 1.14.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyarchimate-1.14.0.tar.gz | 166.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyarchimate-1.14.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 348.8 kB
Release files / pyarchimate-1.14.0.tar.gz
| Download URL | pyarchimate-1.14.0.tar.gz |
|---|---|
| Size | 166.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7458436c54cd3de5b818dfe47220e470c1989a0f3cf1062aa01803be7539af2c
|
|
BLAKE2b-256 checksum How to use checksums |
8e26b279ae0412da3ceda466da866c490c983588158a17ecd1328667eb6fd7ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / pyarchimate-1.14.0-py3-none-any.whl
| Download URL | pyarchimate-1.14.0-py3-none-any.whl |
|---|---|
| Size | 182.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce9f8e2580e83ffbd01a938709ba7bc68ef5a98d8eea5da992eb0ee3798a1fde
|
|
BLAKE2b-256 checksum How to use checksums |
c91bcf00cec686ce41aed2161273b8b99fa71d28ef98c0ea5e27723b7e5bbd1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency log