diff --git a/latest/_images/architecture.jpg b/latest/_images/architecture.jpg new file mode 100644 index 0000000..1741fb3 Binary files /dev/null and b/latest/_images/architecture.jpg differ diff --git a/latest/api.html b/latest/api.html index 453cc50..bf8f6aa 100644 --- a/latest/api.html +++ b/latest/api.html @@ -60,7 +60,7 @@ - + @@ -171,19 +171,34 @@ + + + - + + --> @@ -333,19 +348,34 @@ + + + - + + --> @@ -432,19 +462,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/compas_ifc.entities.base.html b/latest/api/compas_ifc.entities.base.html index 495189a..b414d87 100644 --- a/latest/api/compas_ifc.entities.base.html +++ b/latest/api/compas_ifc.entities.base.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/compas_ifc.entities.generated.html b/latest/api/compas_ifc.entities.generated.html index f9cd5fa..3093a08 100644 --- a/latest/api/compas_ifc.entities.generated.html +++ b/latest/api/compas_ifc.entities.generated.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.ToString.html b/latest/api/generated/compas_ifc.entities.base.Base.ToString.html index f3af77f..0059987 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.ToString.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.ToString.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.__init__.html b/latest/api/generated/compas_ifc.entities.base.Base.__init__.html index ae4977f..a042ad1 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.__init__.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.__init__.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.all_attribute_names.html b/latest/api/generated/compas_ifc.entities.base.Base.all_attribute_names.html index 55545f3..fdcc346 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.all_attribute_names.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.all_attribute_names.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.attribute_info.html b/latest/api/generated/compas_ifc.entities.base.Base.attribute_info.html index dc168ad..8455073 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.attribute_info.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.attribute_info.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.copy.html b/latest/api/generated/compas_ifc.entities.base.Base.copy.html index e5560dc..9300f5d 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.copy.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.copy.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.from_json.html b/latest/api/generated/compas_ifc.entities.base.Base.from_json.html index 2dd21ce..7ae4d9f 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.from_json.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.from_json.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.from_jsonstring.html b/latest/api/generated/compas_ifc.entities.base.Base.from_jsonstring.html index 9dc71ef..be58976 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.from_jsonstring.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.from_jsonstring.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.html b/latest/api/generated/compas_ifc.entities.base.Base.html index 44c19d4..7c13cd5 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.id.html b/latest/api/generated/compas_ifc.entities.base.Base.id.html index 7387dac..d08f2f7 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.id.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.id.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.is_a.html b/latest/api/generated/compas_ifc.entities.base.Base.is_a.html index 692d811..5021bef 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.is_a.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.is_a.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.print_attributes.html b/latest/api/generated/compas_ifc.entities.base.Base.print_attributes.html index 8d9c2b9..9903cf7 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.print_attributes.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.print_attributes.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.print_properties.html b/latest/api/generated/compas_ifc.entities.base.Base.print_properties.html index f73f744..97f0847 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.print_properties.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.print_properties.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.print_spatial_hierarchy.html b/latest/api/generated/compas_ifc.entities.base.Base.print_spatial_hierarchy.html index c68ef1b..751223e 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.print_spatial_hierarchy.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.print_spatial_hierarchy.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.sha256.html b/latest/api/generated/compas_ifc.entities.base.Base.sha256.html index 8c838f6..c9ed99f 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.sha256.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.sha256.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.show.html b/latest/api/generated/compas_ifc.entities.base.Base.show.html index e1fa3d7..337edf0 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.show.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.show.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.to_dict.html b/latest/api/generated/compas_ifc.entities.base.Base.to_dict.html index 4ff902e..2da03b8 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.to_dict.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.to_dict.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.to_json.html b/latest/api/generated/compas_ifc.entities.base.Base.to_json.html index 0784aec..1fab08c 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.to_json.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.to_json.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.to_jsonstring.html b/latest/api/generated/compas_ifc.entities.base.Base.to_jsonstring.html index d8f94cc..009df4c 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.to_jsonstring.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.to_jsonstring.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/api/generated/compas_ifc.entities.base.Base.validate_data.html b/latest/api/generated/compas_ifc.entities.base.Base.validate_data.html index c6bf785..74786aa 100644 --- a/latest/api/generated/compas_ifc.entities.base.Base.validate_data.html +++ b/latest/api/generated/compas_ifc.entities.base.Base.validate_data.html @@ -170,18 +170,33 @@ + + + + --> @@ -336,18 +351,33 @@ + + + + --> @@ -434,19 +464,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • diff --git a/latest/architecture.html b/latest/architecture.html index 6967e8c..a97d97a 100644 --- a/latest/architecture.html +++ b/latest/architecture.html @@ -8,7 +8,7 @@ - Archtiecture — COMPAS IFC + Software Architecture — COMPAS IFC @@ -172,18 +172,33 @@ + + + + --> @@ -287,6 +302,10 @@ + + @@ -334,18 +353,33 @@ + + + + --> @@ -432,19 +466,25 @@
  • Introduction
  • Architecture
  • Tutorials +
  • +
  • Examples
  • -
  • API Reference
  • +
  • API
  • License
  • @@ -489,7 +529,7 @@ - + @@ -506,9 +546,53 @@
    -
    -

    Archtiecture

    -

    This section is still under construction. Please check back later.

    +
    +

    Software Architecture

    +

    In a nutshell, COMPAS IFC is built around a three-layer structure, purposefully designed for different group of users concerned with different level of granularity of the IFC data.

    +
      +
    • Top-layer: This layer provides simple usage interfaces for interacting with a BIM model. It abstracts the complexities of the IFC format, allowing non-experts to manipulate IFC data with ease.

    • +
    • Middle-layer: This layer grants access to individual IFC entities and their properties. It is designed for advanced users who need to work with the geometry and metadata of IFC entities at a more granular level.

    • +
    • Bottom-layer: This layer deals with the raw IFC data and schema processing. It concerns the most technical users such as contributors to the software itself regarding issues such as performance, memory usage, etc.

    • +
    +

    The architecture is designed to separate concerns, allowing users to choose the level of complexity they need, from simple model manipulations to detailed data handling.

    +
    +COMPAS IFC architecture +
    +

    COMPAS IFC architecture

    +
    +
    +
    +

    Top-layer

    +

    The Top-layer of COMPAS IFC centers on the Model class, providing a user-friendly interface for IFC data interaction. This class offers intuitive APIs for simplified BIM model manipulation.

    +

    Key features of the `Model` class:

    +
      +
    1. Simple file operations: Load, save, and create IFC files effortlessly.

    2. +
    3. Built-in visualization methods: For easy model inspection.

    4. +
    5. High-level querying: For straightforward element retrieval and manipulation.

    6. +
    7. Abstraction of IFC complexities: Enabling effective BIM model work without deep IFC knowledge.

    8. +
    +

    This approach lowers the entry barrier for IFC file handling, allowing users to focus on their tasks rather than underlying data structures. For more details on the Model class, see the Tutorials section.

    +
    +
    +

    Middle-layer

    +

    The Middle-layer of COMPAS IFC provides a comprehensive suite of native Python classes for interacting with individual IFC entities and their properties. These classes are automatically generated from the official IFC schemas, ensuring a complete and up-to-date mapping of IFC classes and types.

    +

    Key features of the Middle-layer include:

    +
      +
    1. Strongly typed classes: Each class is strongly typed, enabling modern IDEs (such as those using Pylance) to provide extensive type hints and analysis. This enhances the development experience by improving code completion, reducing development time, and minimizing the need for constant documentation lookups.

    2. +
    3. Robust extension mechanism: COMPAS IFC includes a powerful extension mechanism that allows for the enhancement of key classes to simplify their usage and empowers users to create custom extensions for tailored functionality. For instance:

      +
        +
      • The IfcProduct class is extended with a geometry property that parses complex IFC geometric representations into COMPAS-based geometry.

      • +
      • The IfcElement class is augmented with parent and children properties, simplifying navigation of the IFC spatial hierarchy.

      • +
      +
    4. +
    +

    These features provide a powerful and flexible interface for working with IFC data at a granular level, suitable for advanced users who require detailed control over IFC entities and their properties.

    +

    For more information on the extension mechanism, please refer to the API: extensions section. For a comprehensive overview of the class mapping, see the API Reference: Full class mapping.

    +
    +
    +

    Bottom-layer

    +

    Lastly, in the Bottom-layer, COMPAS IFC interacts with the IfcOpenShell library to parse and manage IFC data. This layer is primarily of interest to contributors and advanced users who needs to modify the lower-level functionalities for tasks such as performance optimization, memory usage reduction, etc.

    +
    @@ -524,6 +608,22 @@

    Archtiecture

    +
    +