Skip to main content

A library to create & manage Archimate files

Project description

pyArchimate package

License Python Version PyPI codecov test Release

Quality Gate Bugs Security Rating Maintainability Docs

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyarchimate-1.8.0.tar.gz (127.6 kB view details)

Uploaded Source

Built Distribution

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

pyarchimate-1.8.0-py3-none-any.whl (142.5 kB view details)

Uploaded Python 3

File details

Details for the file pyarchimate-1.8.0.tar.gz.

File metadata

  • Download URL: pyarchimate-1.8.0.tar.gz
  • Upload date:
  • Size: 127.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyarchimate-1.8.0.tar.gz
Algorithm Hash digest
SHA256 1349dab5354107e26cd8026905d54607601f1af25cbc4970c25543b7c2b26fee
MD5 10c2b44fec7cbafd3fa7bc0acba01774
BLAKE2b-256 ff1ebad0274b37b5929e4cc7e48ff96dc937df0c3160fc5db9e120a0bc4e9e77

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyarchimate-1.8.0.tar.gz:

Publisher: release.yml on pyArchimate/pyArchimate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyarchimate-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: pyarchimate-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 142.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyarchimate-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5dbf49f36db2385dcb651b095d18ee4fe1fe8de0fc1e07efa6912b4a3db805f7
MD5 93cbd61eac65458c4aae75322a4b9fa3
BLAKE2b-256 e04b971d185bff60cf9bf981ada776fa72e924f230263ad5229f7eb73a1ba870

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyarchimate-1.8.0-py3-none-any.whl:

Publisher: release.yml on pyArchimate/pyArchimate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page