From cffc8b519caf65c71308ba444770b98fa2d8acd8 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 27 Sep 2023 18:21:20 +1000 Subject: [PATCH] New introduction section in IOS docs --- src/ifcopenshell-python/docs/conf.py | 2 +- .../docs/ifcopenshell-python.rst | 3 +- .../docs/ifcopenshell-python/hello_world.rst | 222 ------------------ src/ifcopenshell-python/docs/ifcopenshell.rst | 26 +- .../docs/ifcopenshell/images/intro.png | Bin 0 -> 135621 bytes src/ifcopenshell-python/docs/index.rst | 20 +- src/ifcopenshell-python/docs/indices.rst | 6 + src/ifcopenshell-python/docs/introduction.rst | 89 +++++++ .../docs/introduction/images/ifc-concepts.png | Bin 0 -> 21973 bytes .../images/ifc-concepts.svg | 0 .../docs/introduction/images/ifc-graph.png | Bin 0 -> 29060 bytes .../images/ifc-graph.svg | 0 .../docs/introduction/images/ifc-tree.png | Bin 0 -> 51462 bytes .../images/ifc-tree.svg | 0 .../docs/introduction/introduction_to_bim.rst | 37 +++ .../docs/introduction/introduction_to_ifc.rst | 220 +++++++++++++++++ 16 files changed, 373 insertions(+), 252 deletions(-) create mode 100644 src/ifcopenshell-python/docs/ifcopenshell/images/intro.png create mode 100644 src/ifcopenshell-python/docs/indices.rst create mode 100644 src/ifcopenshell-python/docs/introduction.rst create mode 100644 src/ifcopenshell-python/docs/introduction/images/ifc-concepts.png rename src/ifcopenshell-python/docs/{ifcopenshell-python => introduction}/images/ifc-concepts.svg (100%) create mode 100644 src/ifcopenshell-python/docs/introduction/images/ifc-graph.png rename src/ifcopenshell-python/docs/{ifcopenshell-python => introduction}/images/ifc-graph.svg (100%) create mode 100644 src/ifcopenshell-python/docs/introduction/images/ifc-tree.png rename src/ifcopenshell-python/docs/{ifcopenshell-python => introduction}/images/ifc-tree.svg (100%) create mode 100644 src/ifcopenshell-python/docs/introduction/introduction_to_bim.rst create mode 100644 src/ifcopenshell-python/docs/introduction/introduction_to_ifc.rst diff --git a/src/ifcopenshell-python/docs/conf.py b/src/ifcopenshell-python/docs/conf.py index 0d981bfc71..befbaae79b 100644 --- a/src/ifcopenshell-python/docs/conf.py +++ b/src/ifcopenshell-python/docs/conf.py @@ -36,7 +36,7 @@ sys.path.insert(0, os.path.abspath('..')) # -- Project information ----------------------------------------------------- project = "IfcOpenShell" -copyright = "2020-2022, IfcOpenShell Contributors" +copyright = "2011-2023, IfcOpenShell Contributors" author = "IfcOpenShell Contributors" # The full version, including alpha/beta/rc tags diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python.rst b/src/ifcopenshell-python/docs/ifcopenshell-python.rst index 0861a2b374..9eebe129d4 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python.rst @@ -2,7 +2,8 @@ IfcOpenShell-Python =================== IfcOpenShell-Python provides Python bindings to the core IfcOpenShell C++ -system, as well as high level analysis and authoring functions. +system, as well as high level analysis and authoring functions. All the +capabilities of the C++ core are available in Python. .. toctree:: :hidden: diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/hello_world.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/hello_world.rst index 05289bbbd0..61931b8794 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/hello_world.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/hello_world.rst @@ -1,228 +1,6 @@ Hello, world! ============= -What's inside an IFC? ---------------------- - -An IFC model is a collection of elements (e.g. doors, windows, construction -tasks, materials, etc) with relationships to other elements in a graph-like -database. Together, these elements and their relationships describe the digital -built environment. - -.. image:: images/ifc-graph.svg - -Each element has a type known as an **IFC Class**. These classes define the -attributes that the element may store. For example, the **IfcWall Class** is -allowed to store a **Name** and **Description** attribute. - -This IFC database can be stored in many formats. The most common is the ``.ifc`` -format, which stores data in plain text. If you open a ``.ifc`` file in a text -editor, you'll see something like this: - -:: - - #1=IFCPROJECT('3Cbhu4euf1hfgM_SHZbeqM',$,'My Project',$,$,$,$,$,#4); - #2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); - #3=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); - #4=IFCUNITASSIGNMENT((#2,#3)); - #5=IFCCARTESIANPOINT((0.,0.,0.)); - -In this example there are 5 elements in the graph. The element with the ID of -**#1** has an **IFC Class** of **IfcProject**. This element has 9 -comma-separated attributes. IFC defines how many attributes each **IFC Class** -is allowed to have, attribute names, the order of attributes, data type, -optional or mandatory status (i.e. cardinality), and more. - -:: - - IFC Class Quoted string value Null value ID reference - ↓ ↓ ↓ ↓ - #1=IFCPROJECT('3Cbhu4euf1hfgM_SHZbeqM',$,'My Project',$,$,$,$,$,#4); - ↑ ↑ - Element ID Comma-separated list of attributes - -By selecting elements by their **IFC Class**, and reading their attributes, you -can navigate from one element to another. The relationships between elements are -called **IFC Concepts** and create meaning in our industry. For example, if a -**IfcWall** element has an attribute that references an **IfcBuildingStorey** -element in a particular way, it will mean that the wall is located in the -ground floor of the building. - -.. image:: images/ifc-concepts.svg - -The official IFC documentation describes hundreds of **IFC Classes**, ranging -from walls, door, to tasks, cost items, parametric materials, and structural -analysis constraints. There are also hundreds of **IFC Concepts**, which may -describe how a wall is in a storey, a construction task might occur one after -another, or how an surface bounds a space for energy analysis. - -It takes time to learn the many **IFC Classes** and **IFC Concepts** available. -Once you do, you will be able to richly describe our built environment -digitally. IfcOpenShell can help you navigate these IFC elements, read their -attributes, and explore relationships. Your journey begins here. - -.. seealso:: - - If you are already familiar with IFC and just want to learn how to use - IfcOpenShell, you can jump to the `Core functionality crash course`_. - -Begin learning IFC ------------------- - -IFC has three versions published by ISO: **IFC2X3** from 2007, **IFC4** from -2017, and **IFC4X3** in draft form. Each version improves on the previous -version, and will have different **IFC Classes** with different attributes and -different **IFC Concepts**. - -You can access the official documentation here: - -- `Official IFC2X3 documentation homepage `__ -- `Official IFC4 documentation homepage `__ -- `Official IFC4X3 documentation homepage `__ -- `List of all IFC2X3 classes `__ -- `List of all IFC4 classes `__ -- `List of all IFC4X3 classes `__ - -.. tip:: - - It is recommended to use IFC4. However, the IFC4X3 documentation is a lot - more friendly to newcomers. - -The official ISO documentation is written for a technical audience and may be -overwhelming. This guide will take you slowly through the core concepts, and -leave you with the knowledge you need to discover more. - -Before digging into theory, let's explore an existing IFC model. You can -download this sample IFC for this guide. - -.. container:: blockbutton - - `Download sample IFC `__ - -If you open up the model with a text editor, you will see text similar to this: - -:: - - ISO-10303-21; - HEADER;FILE_DESCRIPTION(('ViewDefinition [, QuantityTakeOffAddOnView, SpaceBoundary2ndLevelAddOnView]'),'2;1'); - FILE_NAME('AC20-FZK-Haus.ifc','2016-12-21T17:54:06',('Architect'),(''),'','',''); - FILE_SCHEMA(('IFC4')); - ENDSEC; - - DATA; - #3= IFCORGANIZATION($,'Nicht definiert',$,$,$); - #12= IFCOWNERHISTORY(#7,#11,$,.ADDED.,$,$,$,1482339244); - #13= IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); - #14= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); - - ... - - #62= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.00000000000E-5,#59,#60); - #66= IFCPROJECT('0lY6P5Ur90TAQnnnI6wtnb',#12,'Projekt-FZK-Haus','Projekt FZK-House create by KHH Forschuungszentrum Karlsruhe',$,$,$,(#62,#374),#49); - #77= IFCPROPERTYSINGLEVALUE('GS_TimeStamp',$,IFCTIMESTAMP(9685146),$); - #85= IFCPROPERTYSET('1mnk_H9cG6eU2r9ped0WRu',#12,'GSPset_TimeStamp',$,(#77)); - - ... - - #15033= IFCSHAPEREPRESENTATION(#15026,'Axis','Curve2D',(#15031)); - #15037= IFCPRODUCTDEFINITIONSHAPE($,$,(#15016,#15024,#15033)); - #15042= IFCWALLSTANDARDCASE('2XPyKWY018sA1ygZKgQPtU',#12,'Wand-Int-ERDG-4',$,$,#14983,#15037,'BC6F0F70-6195-495E-A2-FC-239713029DB1',$); - #15046= IFCMATERIAL('Leichtbeton 102890359',$,$); - - ... - - #15231= IFCRELDEFINESBYPROPERTIES('3Q0nMR5elnJFWzAhgkZqe1',#12,$,$,(#15042),#15229); - #15234= IFCWALLTYPE('2AEMyYvIjlsz7LRzqYHy64',#12,'Leichtbeton 102890359 240',$,$,$,(#15244,#15248,#15250,#17288,#17290,#17292,#18637,#18639,#18641,#19015,#19017,#19019,#20770,#20772,#20774),'8A396F22-E52B-6FDB-D1D5-6FDD2247C184',$,.NOTDEFINED.); - #15237= IFCDIRECTION((1.,0.,0.)); - #15239= IFCDIRECTION((0.,0.,1.)); - - ... etc - -The first thing you should notice is the line that defines that this is an -**IFC4** version. This determines what **IFC Classes** and **IFC Concepts** are -available. - -:: - - FILE_SCHEMA(('IFC4')); - -You'll notice certain **IFC Class** keywords jump out at you: things like -**IFCSIUNIT** which defines the length unit of metres, or **IFCPROJECT** which -defines the project, or **IFCPROPERTYSINGLEVALUE** which defines a property of -something, or **IFCWALLSTANDARDCASE** which defines a wall, or **IFCMATERIAL** -which defines a material, and so on. - -Let's see how to fetch this data with code. Let's start with loading the model. -Import the IfcOpenShell module, then use the ``open`` function to load the -model into a variable called ``model``. The first piece of information we want -to check is what IFC schema version we are using. We assume the model you are -learning with is IFC4. We'll then fetch all entities that use the **IfcSlab** -class. - -.. code-block:: python - - import ifcopenshell - model = ifcopenshell.open('/path/to/your/model.ifc') - print(model.schema) # May return IFC2X3, IFC4, or IFC4X3. - print(model.by_type("IfcSlab")) # Will return a list of IFCSLAB entities, like below: - # [ - # #34509=IfcSlab('1pPHnf7cXCpPsNEnQf8_6B',#12,'Bodenplatte',$,$,#34464,#34505,'E4D9CD4B-CA43-4735-94-BD-1FD4376BD455',.BASESLAB.), - # #59290=IfcSlab('2RGlQk4xH47RHK93zcTzUL',#12,'Slab-033',$,$,#59253,#59286,'DA0A17AC-B773-47AC-99-C5-D390C73AD5CC',.FLOOR.), - # #59553=IfcSlab('07Enbsqm9C7AQC9iyBwfSD',#12,'Dach-1',$,$,#59508,#59549,'E142B455-80E4-4B96-83-EC-E1589CA998DB',.ROOF.), - # #59753=IfcSlab('2IxUUNUVPB6Ob$eicCfP2N',#12,'Dach-2',$,$,#59716,#59749,'BD6D9414-37DF-40A8-88-40-301A32A9A5B5',.ROOF.) - # ] - -.. tip:: - - Try changing ``model.by_type("IfcSlab")`` to fetch different types of - entities based on their **IFC Class**. - -An overview of all IFC classes ------------------------------- - -There are hundreds of **IFC Classes**. You don't need to know them all, but -we'll help describe the general breakdown so you know where to find the -appropriate class for what you're after. - -**IFC Classes** are defined using an **Object Oriented** tree hierarchy. Child -**IFC Classes** inherit the attributes defined by the parent **IFC Class**. -This means that **IFC Classes** with common attributes are grouped together in -the tree. - -For example, because all **IfcObject** classes can have a **GlobalId** -attribute, that means that because **IfcWall** is a subtype of **IfcObject**, -it can also have a **GlobalId** attribute. - -.. image:: images/ifc-tree.svg - -Important IFC concepts ----------------------- - -There are hundreds of **IFC Concepts** that allow you to describe relationships -between **IFC Classes**. In this guide, we'll focus on the five most common -**IFC Concepts** to get you started. - -Concept 1: the project context ------------------------------- - -Concept 2: spatial decomposition --------------------------------- - -Concept 3: object typing ------------------------- - -Concept 4: attributes and property sets ---------------------------------------- - -Concept 5: material assignment ------------------------------- - -Self-learning IFC: how to learn more ------------------------------------- - -Core functionality crash course -------------------------------- - If you're reading this, we assume you already know IFC and just want to quickly get started with IfcOpenShell. diff --git a/src/ifcopenshell-python/docs/ifcopenshell.rst b/src/ifcopenshell-python/docs/ifcopenshell.rst index 38c930ee91..e5bdd50069 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell.rst @@ -1,12 +1,19 @@ IfcOpenShell ============ -IfcOpenShell is an open source (LGPL-3.0-or-later) software library for working -with the Industry Foundation Classes (IFC) file format. Extensive geometric -support is implemented for the IFC releases IFC2x3 TC1 and IFC4 Add2 TC1. -Support for parsing is provided for IFC4x1, IFC4x2, and the IFC4x3 release -candidates. Extending with support for arbitrary IFC schemas is possible at -compile-time when using C++ and at run-time when using Python. +IfcOpenShell is an open source (LGPL-3.0-or-later) C++ software library for +working with the Industry Foundation Classes (IFC) file format. + +Extensive geometric support is implemented for the IFC releases IFC2x3 TC1 and +IFC4 Add2 TC1. Support for parsing is provided for IFC4x1, IFC4x2, and the +IFC4x3 release candidates. Extending with support for arbitrary IFC schemas is +possible at compile-time when using C++ and at run-time when using Python. + +.. seealso:: + + It is not necessary to be a C++ developer to use IfcOpenShell. Please see + other sections such as :doc:`ifcopenshell-python`, :doc:`ifcconvert`, and + more. .. toctree:: :hidden: @@ -17,10 +24,3 @@ compile-time when using C++ and at run-time when using Python. ifcopenshell/geometry_iterator ifcopenshell/geometry_settings ifcopenshell/boolean_process - -Indices and tables ------------------- - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/src/ifcopenshell-python/docs/ifcopenshell/images/intro.png b/src/ifcopenshell-python/docs/ifcopenshell/images/intro.png new file mode 100644 index 0000000000000000000000000000000000000000..04acfcaee465cab226ad2e4dd54d527d2df1bef7 GIT binary patch literal 135621 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

Ty+WKY)p$Z6$RBFYxlrWBC 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 literal 0 HcmV?d00001 diff --git a/src/ifcopenshell-python/docs/index.rst b/src/ifcopenshell-python/docs/index.rst index 4aca839ad3..eb9f2d700f 100644 --- a/src/ifcopenshell-python/docs/index.rst +++ b/src/ifcopenshell-python/docs/index.rst @@ -1,17 +1,14 @@ -Let's learn IfcOpenShell -======================== +Let's learn IfcOpenShell! +========================= -IfcOpenShell is a suite of developer libraries and utilities to manipulate OpenBIM data. - -.. note:: - - This documentation is incomplete. Would you like to help write more? `Get in touch! `__ +.. image:: ifcopenshell/images/intro.png .. toctree:: :hidden: :maxdepth: 1 :caption: Main: + introduction ifcopenshell ifcopenshell-python ifcconvert @@ -47,11 +44,4 @@ IfcOpenShell is a suite of developer libraries and utilities to manipulate OpenB C++ API Reference Python API Reference - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` + indices diff --git a/src/ifcopenshell-python/docs/indices.rst b/src/ifcopenshell-python/docs/indices.rst new file mode 100644 index 0000000000..d46b839f66 --- /dev/null +++ b/src/ifcopenshell-python/docs/indices.rst @@ -0,0 +1,6 @@ +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/src/ifcopenshell-python/docs/introduction.rst b/src/ifcopenshell-python/docs/introduction.rst new file mode 100644 index 0000000000..77c00a4a94 --- /dev/null +++ b/src/ifcopenshell-python/docs/introduction.rst @@ -0,0 +1,89 @@ +Introduction +============ + +**IfcOpenShell** is an open source software library for software developers and BIM powerusers working with Industry Foundation Classes (`IFC `_). + +In addition to a C++ and Python API, **IfcOpenShell** comes with an ecosystem of tools, notably including **IfcConvert** (an application to convert IFC models to other formats), the **BlenderBIM Add-on** (an add-on to Blender providing a graphical IFC authoring platform), and many other libraries, CLI apps, and more. Support is also provided for auxiliary standards such as BCF, bSDD, and IDS. + +Things you can do +----------------- + +**IfcOpenShell** is designed to be a complete BIM authoring platform. Its +capabilities have a similar scope to other BIM libraries, modeling platforms, +costing programs, scheduling software, CAD packages, and simulation software. +It is too numerous to list in full, but an example of what is possible include: + +- Viewing models, including spaces, properties, and relationships +- Edit and extract attributes and properties +- Moving objects, and changing their geometry +- Create new objects using library elements +- Manage classification systems, document and library references +- Generating 2D drawings, schedules, and creating sheets +- Investigating and editing structural analysis models +- Connecting and managing distribution systems and ports +- Creating construction schedules, critical path analysis, and generating sequence animations +- Creating cost schedules, using formulas, and deriving quantities from model elements +- Clash detection and managing issues for model coordination + +... and much, much more. + +What makes IfcOpenShell special? +-------------------------------- + +IfcOpenShell has a huge amount of unique features and capabilities not found in any other technology. + +- IfcOpenShell is the oldest and most mature open source IFC library available. It's developed since 2011 by a community of hundreds of developers and trusted to deliver many AEC technologies that power our industry. IfcOpenShell is also taught in numerous universities and cited in hundreds of academic publications. +- Lots of platforms and package management options are available: Windows, Mac, Mac ARM (M1, M2), Linux, Web Assembly (WASM), Docker, AWS Lambda, Google Colab, and more. +- Develop in C++, Python, or JavaScript via Pyodide. +- All tools can be used either as a developer library, through a command line interface, or using a rich graphical interface. Whether you're deploy headless server tools for your own pipeline, writing your own apps, or an end-user, there's something for you. +- Supports IFC2X3, IFC4, and IFC4.3. Custom schemas (such as experimental or draft schemas) may be loaded at run-time instead of having to recompile. +- Built-in IFC validation is possible from basic syntax validation to more detailed "Where Rule" checks. This is the same validation that powers the official buildingSMART validation engine. +- Read and write IFC-SPF, IFCJSON, IFCXML, IFCHDF5, MySQL, and SQLite. +- High level API for hundreds of tasks. Perform complex authoring like copying objects, cost calculation, or 4D simulation with one line of code. Imagine a complete native IFC authoring and editing platform where every function is available to you as a library. +- Convert parametric geometry into explicit geometry for any CAD system from booleans to complex sweeps. Geometry has been battle-tested over many years to accommodate complex geometric edge cases with an extensive test suite. +- Geometry may be converted into voxels and analysed through voxels to resolve complex non-manifold geometry and precision issues. This analysis may be used from things like head height calculations, formwork analysis, to egress distances. +- Generate and annotate 2D drawings from 3D geometry with ease. Preserve drawing semantics and link model data to and from drawing symbols. Drawings may be richly annotated with text, line styles, hatches, symbols, and more and are used to deliver commercial drawings for projects. +- Clash detection, model comparison, and conversion to over 10 other formats (DAE, GLB, OBJ, SVG, and more). Integrate with technologies like IDS, BCF, and bSDD, and more. +- Extensive documentation, user guides, academic courses, and a vibrant user community to help you begin your journey. + +IfcOpenShell utilities +---------------------- + +IfcOpenShell is a modular ecosystem of tools that work together, where each tool focuses on a particular task. + +.. csv-table:: + :header: "Name", "Description" + + "**IfcOpenShell**", "The core library for C++ developers. The library includes the ability to parse schemas, tessellate and process implicit geometry." + "**IfcOpenShell-Python**", "Python bindings to the core IfcOpenShell C++ system, as well as high level analysis and authoring functions." + "**IfcConvert**", "A command-line application for converting IFC geometry into file formats such as OBJ, DAE, GLB, STP, IGS, XML, SVG, H5, and IFC itself." + "**BlenderBIM Add-on**", "A graphical add-on that lets you analyse, author, and modify IFC with Blender." + "**BCF**", "BIM Collaboration Format (BCF) is a standard to manage and exchange coordination topics between disciplines collaborating on a project by changing XML files or querying an API." + "**BIMServer-Plugin**", "A plugin to the open source BIMServer CDE to allow you to use IfcOpenShell to parse, view, and audit models." + "**BIMTester**", "A utility that allows you to write Gherkin-based tests for models." + "**bSDD**", "A Python library to query the buildingSMART Data Dictionary API to search for standardised classifications and properties." + "**Ifc2CA**", "Converts IFC models to FEM structural analytical models to be used in Code_Aster." + "**Ifc4D**", "A series of utilities for converting to and from various 4D software like MS Project, PowerProject, and Oracle P6." + "**Ifc5D**", "A collection of utilities of manipulating cost-related data to and from formats, reports, and optimisation engines." + "**IfcCityJSON**", "A converter for CityJSON files and IFC. It currently only supports one-way conversion from CityJSON to IFC." + "**IfcClash**", "A CLI utility and library that lets you perform clash detection on one or more IFC models. Clashes are defined in terms of clash sets with filters using the IFC query syntax." + "**IfcCSV**", "View and edit IFC data using spreadsheets or tabular datasets, such as CSV, ODS, XLSX, Pandas DataFrames, and regular Python lists." + "**IfcDiff**", "A CLI utility and library that lets you compare the changes between two IFC models." + "**IfcFM**", "A highly standards-compliant tool (e.g. COBie 2.4, COBie 3.0, AOH-BSEM) to convert FM data in IFC databases to spreadsheets and other machine readable formats, such as ODS, XLSX, CSV, Pandas, XML, and JSON." + "**IfcMax**", "A 3ds Max importer plugin able to import the IFC file format." + "**IfcPatch**", "A CLI utility and library that lets you run and distribute predetermined modifications on an IFC file, known as a patch recipe. Useful in deploying a data pipeline or batch-fixing external models." + "**IfcSverchok**", "A node based visual programming add-on for Blender to interact with IFC and Sverchok." + "**IfcTester**", "Author and read Information Delivery Specification (IDS) files. You can validate IFC models against IDS and generate reports in multiple formats. It works from the command line, as a web app, or as a library." + "**VoxelisationToolkit**", "Converts .ifc geometry into voxels, and lets you perform voxel based geometric analysis." + +.. note:: + + **IfcOpenShell** and all of its libraries are licensed under LGPL-3.0-or-later. Two exceptions to this are the **BlenderBIM Add-on** and **IfcSverchok**, which are both licensed under GPL-3.0-or-later. + +.. toctree:: + :hidden: + :maxdepth: 1 + :caption: Contents: + + introduction/introduction_to_bim + introduction/introduction_to_ifc diff --git a/src/ifcopenshell-python/docs/introduction/images/ifc-concepts.png b/src/ifcopenshell-python/docs/introduction/images/ifc-concepts.png new file mode 100644 index 0000000000000000000000000000000000000000..454327678278a2b3ff758ec75166fa44497d30d7 GIT binary patch literal 21973 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 literal 0 HcmV?d00001 diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/images/ifc-concepts.svg b/src/ifcopenshell-python/docs/introduction/images/ifc-concepts.svg similarity index 100% rename from src/ifcopenshell-python/docs/ifcopenshell-python/images/ifc-concepts.svg rename to src/ifcopenshell-python/docs/introduction/images/ifc-concepts.svg diff --git a/src/ifcopenshell-python/docs/introduction/images/ifc-graph.png b/src/ifcopenshell-python/docs/introduction/images/ifc-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..06e7f88268bb491e1f298f4b0650c5e6d865ed27 GIT binary patch literal 29060 zcmXtA1yof{v<9TRyGuHxk?xk3PU%LF?(ULqDe00{Qd&y7yE~$sAcv5Z5LI{2I?8s_ z!qUd;TMdp^enThYz(9#OSIbj|(nfc);$^7sdR(51;^pA~>#sVrM6FvSxz-*@A)JiN z&cmC*NOa6X>VP{zw6PNfdyhAp>F+H@1;d~q>=qk~hS@b{hlhrg80ptJL(sRjaq4n! z@9bIL8?>5C`&+OY^1>g^*6aR*gS&Y?^__Pzd>^LBq#0nHoK2^`vi{`d=5qX(1`A?T z-_g$JYAb@Td*|=;L`3W7r-j-&(_MPCw|-Ce4M8=&rv1@Q`YkSlUJ&6C5o-AFoi@x# zy9zX>rBi5i9|!(D^TP&pz41rMY`SSbeK0DlX<-@}$<5(&dNiM}eM0X~*4EZ;)ws@A z{{Fkq)#e`>0Vf?P#7}SUtEQt{Hv-W!I*n^JH8uIG>x(6|F9N2cODYt`#=nBCh>cDi zZ4Qf3L?M**^c0RAgpJ@zf_uJ~p(Tqkw;b#=4h{_X!$5eUHoN@ve7dJL{@h?Yf6=pz zw9A@8f=0H<$;wV&nq1?1X)(sfZZ}jo261*Ul39$DTB!vWC|y|=7Z_-Avl)hF?TzxU zwqaFWYXH*|g>1RQPdb$)+u8*sE|b&jqUm%s*q~=r$y7g;Ra?Es#$7)5p}n0dcw~CC z`(l58Q`*J_#mn7e-{HZnY22ncLMQ1roB=6UYp6C;O7wAO*J6l%&pY+>M4OYUOk`y1 zFDPh4$DG3Se1j5N9WbAFNOSo;OsJKEY}~gG0>%skn&2QZqHX!xn)j&HMD5*-jEoS9 z%!X5*Q~>8=O%{6&7|_ju+UKcm)rh0rozHv&G|5~{5;9ersMlA z&n>4D6Lbs=Rdu=FzCj_QAm8?fgoK30MpV|JLG0~Wifc%Q_+@1!23AxYF+2#H+ zqxnAd*T%npbA5QWdd=BG;|8o_NMj1_3-9~4aI&(4VqAno1Y!mTIex@McwvE1n#n#} zTlkjtwts}p>*sH81PP&4u2&W0)vy#ZzMscUPIAQOB&e8?F(e13FzfhBJ&eUl`rJh( zCMGgG$Zm3F-EG3Ds!f(1sjbe|R8^s>rzt$Md!WeoaS`XD#|25p;+j9+V)U8eTot;U z%zI^5#g2yB*yC;c{^FH+eHEsD`$ic}$kWco$K@Ipotara_=jFiiamX3V@6U8yj11E zq*-#?&_3|e4Fu10d?1r_LZYMquTmc{Bb_^r87h$K`)6-o-%3#Wu8t^zu1+w?ZAbfq zi{nr(U;VB-GZ?%ihLly+CG722_~hDH^gV>!9MoKXH1t+Ry#8b1O}aP@d|>yc2FZ-X z>s={-#XoysVqzx3DmYu05nJuag0T|PAw)#r^P60u{vA(>kB{e6j*N=x+IHG6%zwSR z)mnUL&g+*2h!cALcP;AwUB|0VVpn-OH1tV~n{X4g{X05TdYytqDS2aK3Mi;I z>prKD?YNTSxmG~m46RoHGPGJ3o3&a4~dOWRl#Y( zPJ~5_>lb&Fp#yoz@ic%njX?qVN0YRwGbZvC%5UasC2|xWE^?8z?YO8jxfNtd9W}av z?-9DHK?U)dK}(71$ba?X3=TL%A+?9o3cuXmJiY(vebUu4Ohk+d_l0|gcf%Rtcu_l0 zEPrkPa(5#|%OXCso$%+g6GD5b7u)n1l)_ifC|#wXZLcn*=KiraA!4G{#T>oNVG@zD zvWg)u1tLq=S7HhZ$oDtgPCj-YtX9$pWP*8m=Hq}#8Md^`f7zl)JCC^%M$%-qtHLzk}_j^sox%fyKW^H zA`xebY6O=$`zedSq^^;_6GkUCFb?_h4x3Pi{`yU}4xv=$$HdT67}nv2grWh_4=b1o z+LdygxRfn)P_T$3FxIln&rtjtq}Fww$-bjByy2$5!fH)E2AD#KeC|DQoDmMJXUCe* zwqx4*{)vSab7F9KSbQys-2HB;C)4fJ$k-mWWTJp=ysLeP?Lro-&vfLz!>PXq>sCG` zTYkO3TUATMHb)A{Hjf+JuC-P5a!Im0zNUQ`5c0?#wp`;s0Z!x;gs_@7{(< zg0ZL_0)mf#)@5tqc}k7HA3i(Vvd>c69+fZzRXk+0!_q=DqBs`ezW;U?v84rmv?Xd* zJ2hT6F_J*)#G8ySvmXkQR4)9RT!%REp^!oUVKc@jxbu}cA>-O!cBb=xft41oqV z&l=u}O6`8yuWQ<=G{n8x7CwBJeM2{#digbyD}pM6Q>Ts71WUW6iqRbguhN6VQ?%R% zw9dRqW7B1_lijiI9~$Mtglf9FNDB)%xt2vF3-=A>hLB*RqR6m5hrT7~H>#{HT)N}Y z{)pc1X=t{p@P!EzF$fZZf-lE$YDMn^rjWJ=Is+LCqDbo3RTjO%*L!$kHN$rC7NSsc zOKhnSCnk+h5oSrUfPHE7l*2bjJ4X4NU#3LQ>#dy zK~tA|>TqFUV(E%oqNE!b6jN-uajs!iYB1N}!`S*|A1V^xH}0?h6)Ocb1d0^WZ4rrx^z?*s@-z%YP4oPj(mWz~w-C<{ zYmSGy9}8k!a)iL4j)f}rx@u`imzbARHzqGS34ZJvXK);g96f6jfhvTBZq1w`jq^&( zD|N_cRX_^oO&ZY^CB1{N?J$GA?c!ypK?nwSP*f_B3wOR=t(F zYTtL=VrL_)jG>4TmR;1GSo+J}*yYV{2@BuE^c&`t7W=QHwBq#9uU|NJQ$aty-z$ij z@H-J;2np0syWdzJW_1TQ4ZUJ7zfYxr+TSNQyZ#qeoh#f;ML9k)g!tKFBse>U3zQgZ z0blX3l%&+RPzdr?WK=^ynzwcxi46I+l$cn{y?8HvoL~w0o zhqbQiU92dFA3Voy%TFyD5=}3L#O2W~yg9Ex8`z=#R(-FB?Z~m7`UN8WNQ<*5YPUCu z^Ng7S>sZlMB&jqlgqkKPBs@*wYx-TqPZMn1&v^yUtHa(jA(79gjL*4Fo9B2g@1}$8 zN`^MOR;7!K*8?Evh9}v}auHlI81nPtgLZQh9l6Lc4aPb)mkd$aW>{R+T7}@HKiefE zhUQ44&v`$?oODD6)HcfTiK9Vq5-{*L&h*aS{yBKm8B)>Hi|!Zwu)cpBWWj3C`6C%2 z6qyh@Rj@6;Ozxx}9R|e}5muS5ce)DmAKS_e2R=m1|{3!CTjM2``=*{pUwBW#K zLIbmw{GfvYIV!86+pbt~ko3Ujg;LW*l8V%XA3gt#e(YzBEo|^-SbCjRDnnEQHkr~B zTNL#z0bkaqA0G)=R3Fxe(Ue63LWYc9<4gYi*`!Z>&B6i^QWhr5US0Bw;=S9H^h@mh z<7OqE!N&Tc*3!I?!kW7PX@EakQ5*l$Y9Au!l~;9pNO1-fO9heEs6K~98jXQ;Vdtqn zlX`M+bv&A$U))2r3EOBf7pyBs)sL8p3S{1C@6y4|^RxS7U3bq1a&k6wos5i{riR`F zoZ-Ccj~<+O5k_eWX3g2}H<7|N#O!CS;fTG7?buAlFa3`@ZW0H>JGG9?P6Tw=4E*IW zSPMB20pL=6I+wt*3Kn%U*ZeL^6~@pU@^IKxufnR^Ga3|O=cqiow^0_xvUDb?A}2hn zyyeZ%hFEp%T`Lu;xj&QBaV!1=cZC0R6edo65;FBq#z^5qKy9i-HOovt@$?K3E9zdE zftA+R8_)M?(;?`n6~EsL=>!kXyGLIIO%iCbsxHzw>{=fHQ0Nq$V06($Bkq(x*KWV?>4 z=sCMlWJkQnGxxfd@YE2$>xC$zlKfW=>hE?JN_o45M_`2KoGis&E}6F@WM#G5-Ix(O zj^Na^2^5Oor41?2F){`WetH(@XZlBwRElh7X7+4xo&BJzciR#7CRwiQn+nNU^@EK7 zl49V9L%An^3?gXJvmS*F=RAZSLaCaB^SpFPY%^wlNwFp*sj0qpP$%y0lr&s8K3@O2 zi#ulXKgN;9CzLMp-t>V+6-HTIJ-E%lz_HB*2D}`ztRg65wiq54e`!Cqe^ymp$AE@f=`ARb!GnzS7dSsKy*4MTk5&3%k&%dfd@)^n7(EyxzM*Y{ zqGAtYoUPDM0t3pQ%5Cuybq^XRQXS$zEqnP{E5;*%*E}`nLxspt$FF5|0S^&x@JJ%v zjwXqv{U#ws01}F##bEp^2TUs6x*r;dH1IL5FRRLQ*qnBMq3zNt%a@y)n{P|b$DWQm zUY3zfOiUTGh6e{B!+PkSNL~29GI}|G->?cS{R6EQf&lyLnHvelPf^<3p2D18$De{R z$RMQ^9#OVp%BOy*6f3Z!*t9o6M1f=umjhN;B!za#2+mKjzg6u+ei?PxQ`Eg^4n^xe zoq7FvUEPR+?sI_WWMt;4jCEXA7I9&5Q3E;3(}!>E-o4X@vmiCT;o#t~o&N#p<9U70 z%96^wz+1#B7$W>7r8nC!y4-u)kkCi1DKrNPQCPk(Kur2dB{xcXKMXzNkXcpBOyH2p zw`LOp;yqO*gLh7kEM~JuS(Pyx{`k0&hE zpJF&&UOuq-Xox!J{7f_I9=0y)2*s^*96JN62pyZ7mJqis4W;sj9x}5>QdLSw9Xq6d zd3R@^Yk%*yEDTZ0>5_`BO@#5fSQkam{`qT}o`cJ;9G?{O-&P=n;8e$Pv@GR% zT8=b|S+%9%1wPZdP>uZ(@*7IWe_2pJqnOixU2&?Ge{vhF2ubOX&T3qB>3j zVnKI^Vs_J%>8!=_Xa;k zGvuk@H)sBY1a)467NgwmQ|SeMX+2VjN#DBfK?i>Eugakt3O)li8zYpY=cr z^61INB*;H8nI>U}jC##vvHw)8cx#%4(>i+hh9|5XwU@|Jm^s;8^Y~C#?;%!s*d1%$ zm8oV1vE{2!|NJxl>)-FlKAM`i_FnEAf2YgiO$WL>DzKzb$TUyiABs5(OnkK; zh-<;}%7cTj;7S`P}1# z+53pB-gx4yK*r0^auN^_a0iWk@8FR(A!iYSOs&@MseJD?u`q>Qp2`|l>H1VZfr_mxQUHJRQI-B(eExt~imE4v@ue0(h0=a8l2FU<%IaF#)c2yRVLl9x z{rilpZN1G?TsKxtt)An%HhYxJ8L8KD^tI!if)^v@CDb|RCU(|!ocg_f$Br;eGG))| z8)brHjnEC1dkSx6_&^*V?}jVLA{Ei@CFvLfQqj&ApM6^TrZ9};#&f*2_B$Lz82sf~ z=s|)z$7>X6RVm*V{pJp_l0l>Wv{)^tEq0bAwEnF8Eo*(kygT=$`Mmu6cKIc-gTQw$ z4^bbh$2%OzviLorQ*d|uI8$P?_~w3!No>PisA0Nk5+O13anMadw|Re}t4o`G*L9*R=$&Ki9WxVX8g)9^_8QSc=M1=^GMSwmsq+xasCiFEo5@@3{Ky~U^D_HxY1tLv(oDUB$PTngd{&VR z$a6C(&LRS#;h$0hu5594&>Y|%Sfp@-R{fqxauA(XALaTrGn#M7iJh!Gpil%MuB=MJ zs_cHO-;)#fcsBTJV)bTtqa=Fz7f)Ac2QAK%R`VFO~s*2V@-H61E&=ZM+>JPd?qrNJ*c#Cni(N?b3#_7C^F|cpO zr_oPXIA%1v(tIl&uT`kC?lZsn3`c%wfQ~~aOcz&eQkGi{!T7QK@Xt-B*1dMho=-_e zA^0J=yxC{=O`lY#7Ow*fEQ;gzq*HN7m|xQt`AG|wziU=Bb?QF+y+tRE=JEASYc|PO z$M@8ZBu2*O*U;%LqsXr+3vbHBl(4qR8w^g+ynCBT`2~TOMi2RPT2+KqBuBIdf|07w zJQ>$BpHuQlYR~wVxu8dh6=>^w-HYsge2nZm)T4Y zKK*czrWLu*Zi&JzFnzd56BKuh5KX*)OGAa$`1!;7R;bF}MAh>opLDOqx|$2Ev$pL3 z$0wr+JreWK2Di^X7?@G%y7t|ta|)I=@h3d&9MWZaJOZR>qGLJhe_D`k?~jRK`R6ug zriZtb-a{4^m26&THqD*Q>Nv?$+@UbLnpNal#mwtEnCu4|)SUdqU(kdX zm23`;Hi;=s6^GPdW$$k(mWyjy>d(kRUq{k$Qdpg`IiGd*FWG1kvIrlR60MPAq$D$U zGI-Db$z0hwP}}oSL*xkfEGT?K@lkbtSGD>xUUgD+qQgNL zOcTZ%j9jW((|`7bg@q=)iM@`*0y6F;a`-&voGh(vRA;j2_y2H+7vw3^9b5F!1p*n^ zL)-tn`0fvJdEee*d}-uv-Z=@~>66+>p-p!8^yujtjs0`JJOEm%o?5jM$IBVJXhJ@y zel)VcZ{4|Jki)~nrVE9#yxvE=_ctfgmWVB!oWJe&v@67J1>7M%{*wnJa!;BHRjo}w z_xG~z;kp@9s(;Kk19F8?PnN0d>8Y=OpW0_I+T)cU7i0X^Dq(m0nV3ik%g@_6 z)9Pm@Z|?{#fC#OoonFy2FB5)C9Fg7j5?1(ii?GECx+`yz-Dl_%v7i$s_tQf{xhH+0 zCd$*I+v)jO<8d0FD`FaD#Q?{AT~q{Iwq@?jtp{;APpbER$LM)&cmDa1nT$h(@uvqBp5&!BaQhS#7tct#tF8a^ z_=h_4bZ>G$Mc=@#2lLI;eQ5{cygI~Tu9kW#!fW7A5aN`*MHkTf(j@yV5~n%0W($;sQP)>Ng$9~{VB zPUaG#vmNrhW21k6C8%F>-h$U;(vF_&kDX~rU^Tr}mOgVAa9?iw$aCKeGqVc(ed3Zj!qhUt$2Z7Nlzm9e)y?z~xHigw7nxj8%Ix|xWU7Z1^-a?_Ll*6LS zyuPMiT3 zFppv;x4DTESRN5LI6At4&7JJFjTA9T$_7G%((;0!&bOj6N=gCWzMWl|2pCvlzE#<9 zMnXhH2O7#CRv(hxB0h!bZc%QXWrhzN+P9Wkr(Y72j|gB?m*!*LRlgqCO}n40#j@!du* z{yWP&i5KQ$TU*EbBM-d}52U1l-qhc!ohHV|t=B;|)8mu-E=Mn`_SkrM1vI?`>%r=DdMUyCTP`JyekAB zt5-#g^S5RVlhp-&`3$7is7icN$1Wbtig^B#k>X$asN!@^JJ^LE>_Po8Hm~{Yo6mXo z-f}%05b@T0?;@Lv;?)D@Py|E70_u~n^jP()uJM{Bg%qrY_2oJ#Jt|n!{2G6fP3J7y#TnZiPk(ZtowZ{E)J!50|y|A%|;3(PGO0~+V7VJ9&%8TJtXZs9}x3OHj zJc=4j+Pq{Rt5!vJ;>f^`xFDJWSv@mcSArnvZESx~n6HeiA`sIe`X?8OKrHy@R8=(> zaeCg`XOvD7g@CPTxA;S}1eL_`<`L$#Ku0vDaNl1YY%6ASTa2zInrOu!qf9i&D^aPH6}UZ=2tagjH%IN#Ku%?l)ySlc zb?b}KZR#{hAo>pdDrtUI2iIpw_}&Ft)$gu#=J$B>#K;c!ZGu@Ks-M}LsAL??qWXB9 z82tNoZ+LHI8gW5qq4{u|#-1J%iQqk}(8cBDojqawOy#=MrDuW5|IWM9V$U1Ep}jso zRs_ct1Y4H}lio5bxFgXlcQx_DHii9dM>K*vGWRaAxd$VB=)-uWaB_%Hd-K zwetIRH&w&n9D9M&O}Auls83*shpy9bY2rtRmCo&P4DZ-TsMO)g%e$Ok?g6H6KTOZx zg2vf$xeO)MxRVx9CK*iD7bpclyc<%q#!znpUG z_z4Yxg}SP$Di%YWgx#yp1=tC|T{x&`#>?5#!Ty6k`B=5KYNy-FEKLrs=xYxOWAhue zJz8pn0rzv|H&jtk$xgN3bZ&9KxFSfY)Qj1cPc^y@{Vc0yJnl+*5JY4p}t>?2pFu6&<|@fNjyxy71!Ti_vqonU9DTX)VcDveMg zc`s70UGJ%>D@Yr|L#IDotrcM)*eWisrnZ!L@U^>JEX&Qc$KxYUG_eq}m)mhL@F+B! zX$)QKHpR!M1s|p^k+ZIzQC24=CY@i+f8N5w7WpVm^vm<6q8?Gxv$b{4y;ZR9LwaPC z{YjdTt6cUUD*Nw1T%Sk0NYsY?BVtG<*y`G2hM*XQeoGCHYc~Qzc;`kYWOR0xpw(>4 zchgE7JiJbIYttiz>_{AHRz5?{M-#Govy=Vak(jS_Awdf5>CJe5A1Y8?pcX4uuh14; z_jOMC%Pbt2bQ@r02M3`ZT=$m{K(!WKOUkphO5`SmgE78Mt95_6Vb&YV>B_(vrkNRd z)9JGsmd0(SS|la(jself?ihmz@9l+qW}|)2LI=-TTxykGh`!gq^SH~)%ZXKE2#~@V zj$Z`%312@-g4H9u>$}acpzF%$HsZRsK%#_2i%=mbiVhu{EdbM>P*CeLYu`*P6gYkO z+!v2Qb^h2p>}=O`@`%Sc`%H7;rl2S_$X0|Q&aA0XeMJ0ZwD3Or>%cE!p?j|BF-}ZM5 z{1Ts?6tv4~&^_KMvZnVLTG7D1bno&*Lg=A8!*v-h`p{wEA@*mLC>w zefqS!Mb5_u(^tkVODg;VQcW-^k#AtV*pFzDg zhs)^<&T4@v`P+~6Cc7RU9`1MdC=i`v!XkP3a1bQSc1+sMc}p#Tw=`Y(M#JlLkF3d} zt79e1kc=2eZe3X4Zd8j%F~o8TCP1&%69oj2Xh*w`1i>v0M zLqkCF6z=r(0kJ^B(ULB!pC5sQk)IZqucf7ilLv2sn~DQ#m$fxgZ#7-6NV9nd5eeyh zHZ-PrZ723*xi#PGBO^r7>_x<+g^}?J?%O!xosL7`ZxdbQHh0Wm!w8Ed?U@KFvQd@) z{CTPUFkmb}g%ZXFIxI9$s-UaF^-xZ@M46mx_AZzFJd_lIHu`h-y6M}sBhKPc!!I+q zPEP0X2?+s`i$kp40Q+#|Y))*x1=DP4XC1jVuKen)8ctmSGG}q6!r4hr7@-ZuTY~g- ztyX6ou^u6fwo_0nLD%_VZI_b}1=!1=SKw(-z#K(2+F=l5GN?Yp*RVnO7lk;Ae<)IQ zns~zOizbXPCnWSM{9s@}s>^L3yu3!yyt&@RbJdlf4{TfA!A_eDk3_Sxlj1KzKI=d% zCyj$+NRIrHg8S(E4gWqqUOBDN8V0t&Jc`juTuKU79Wg{+x81yQd9+fuY@6k~1M$(3 z$|Y(4q+h7JvLaw6#vOW>F}4H_C26y zVhSuPv(DZtXB{)SCs(s8E4#VBHnNP&aup|Zoc z;ZbqBxr~hB-^&ZstjP2Q^&NSMv2k(50ErFui?XV!n4^qki%m{1!*Af*8zy*x!bLJ{ z_vr!k??tQrhsh_)a4I-7+x&Yt0m7`D92R>)4Y7g=wl7z7S#5g^_VkpSyzb~zQ&Tl2 zBZjxw7%GRGyW89A(}z5Jt4*xHav>(ION93HSk4t%{y_8lci*=U)j17S)k3lga=-?q zWVuj?0OluO7?{~2reX)xUyV&hwx5E7e@i&|DJInZxOHgIm2#Ftq*cm}eF{TOwIL!V zjMSv1rL1((O;0o0i|;zSIv4$^Fv;OF|QL-p8{vPvS?9%Kc`S06QZg>Rd zmo4XwD=UQzp*O1q1$VpMLOxJ&{aAy7)9CvPMe@ZGC()JB6I9Za{Iso0y^MokW6gDV z;WaN|Dr9iKk&ex!^D~}}2PnpinX@FC%z`@y1-MF_&_ zjgNMVZLIjnP^)frH2h$L3lXE=Z9l(6gNW-7GVG*!E^Y@&_0_}WB|nj?jysx-1RE6a za*XHq7+MqpqpGSltbgeX87G1c?d_+11q~Ml0kOI~iJyQ-Ca8Sh%ws!%-mKpm{pEep zCfZEC&wIU&t=N%8x3#VGdU)>(Xb|UH(x_9xVb74j?>I41=CWJ%s}hB!xuu774TCnC zNHlOXCFZ?C*5Z``OjuKM=f%Xt63tgW8yAKEZU$)Od(v;RSX=@2`Ju>h{XLRR^2MsA zdyqzdgU|7~7ZA=75XNUGv6_ezfCTYdCH2iK$p_r4MjJo&)7V`RcSbYl*-WJI@9ys0 z&kt~57Zxw6#1lVkAGqU-?P9E1x#s3hvV5{odwFT8 zn359e)5G->Rpqs)rV{s*`t)yR@ozOh*j^iRu+(6BL_r!2MRN@X){|Qp0Wls%MsMW1 z`s9--*(AryQT-#qwLsG4)|n9Rgc{B!2w*~!u`JE^+arSjm~dU3#Oa|5u3fsnb8Y|~ zV2r)Fd?#ASXh1l16-eXBCFjqAS*AO=GZi-u+7Kj6_bbdUBC0^jLejR(>r6cn5LS|_62 z*W_elOC$0LEA$*eKU5l;clu}5S{a!=0CB1qwv+R6B14P5c8fBK@~=S&5)@6KxcG}@ zQF$JD9L#5PQ-Eb(CtF8nW1ef|Q;I>R*@+%l{2DfgsL~|bjT?QmTNvohnFYev(qdWo ze3yI5NvFD5z-s!}-Qu-4fFO60FXc8Xe;`mR>6{(w7^-P6qq`I)6>x?gO)5F_dxRoQ zzBhh)BSAV09spo{K!m=?L{S6#WM^p)gVi_tp#??5W}_Yhx?pSWud7@i7B$gQ4dZ=YR(ey;4D^ zdra8>rA||aviJb8RA=IiNI&ZF#LpIX`{nD-uMt?knM)Rc%=-!@+#bhmxF}n2Rm4aH6D+<@`4oZ0s$JGrAg1Xs4eXbl8X$5C3`^{oK}n zr@tzy51Yv>$#T7Qy-{p_=c;;+uGL>&eq6bLbo6LSkglrsd#8rcZp^&iuaS|=)WOOg z6^+$_nBNl_8xf{axTpG+;@G-HaKFFx2dqd;x^@E>H+A9Y_?u1%3yY)AeBlV2eR5`v ze4uI;*I^0;D+| z?t?t=8UP|{dKTDHE>*7O#lMril}bi~pWYgkzQ(yi6x=MRSiTWA44+?u!=%+)PpO#%h^?)yaV{RTp1qwt z9!>UhRBqpcTKYYX>09Scx9QMSxZN2?YQmV_{?91rhtK!QQR?upAgA% zl8fAS)|~wpy;1Bp*VGA#=jZMMKYbr?GaGG#0t3ZbY79V|gui#VJ~jV&Z?S|2`Re*E z*TeH+4bbh$umow3-pWf&WZVV6a9gRDZY5JTskF&$trv1z3U(RVGeb49&Y=U8X_}7(y9{PX^ z+n$zDzpyXvFDqUUg+m~&f$78P;*U1KJ1VyMY9lc*uRfY)J$snd{7bF3KdjB5n&eZ@ zxAxV15!Lzl_&^ad8tjJIMwEX)HxIlvD9|cSX4G%r!kN*~0G2MAn4Q>EDi-~F1jxeM zbu_mL$s@u%zDrsHs0_K*&7h^*8*e9pMI$D!sY3--)KTX9)M?gJGFn%cs$AizelR+Vow#AN#~$Iv992K3yrWU=H%*_tK|S+*b`_vp+_X74ni< zy9T1Ju8z&&VRf==4f0KVQWDZyhnsL+oeMaR5V0OB&Y;*f(XRhqkJktBWwD8D)_w(A z6dio5C)`-P*8AKf;8eZ%Lk@DeQZ~a>1wQ)}#^50R-m0{_<=I0V*~HR-mgW1>5b|)E z;IDOFr$Q$CL(?Xi9nH;Y`0JdpbGy#*YtAiDi^*TVqFY(*O8}jvYu)icWj(iN+d1MF zoL)GF(q{MuFqI9LauttchyxB)9z3jsj3vJDbUE7jbB{F0^&G$p68^i8I&j2%_D&CE z^N16ldkj{?j;hO+gUssHb_|l%FBbCG^+O;V@x~IyG~Ytw@6EozGVo`|>Mu4K?+tWVO}mp%*#Im$ z*{NI#^=lgdNIrxJ+1qJJN?8G)8z@gteoWn2O3AGgH_if{Hd6jtf_W9(VKsg*|V6lYC({8^^}@Qm$`DNX=wC<^E&y}B~h}I=4)Oq3d;z|P(rY91wL(GHc}?O z?=96*5yPQ%-}t$4?I9{9#!eA==5fx?7un2ObD`8wzv8|9`rU6s!bDZxSxA7}8+@V7U#8FV}jpuM)U5|i_3J9Taq9*$&UAY3Pw>)^GYQ;+S z=%Fjce!>InTWg2^ELu#d6F{gbWOKn4SLztAp6GLxK}h8*vpL)_F&X~Ek4mZbPaXTE zqs~C`ySJYTWOO^CJ56^duyWxYFFH{GN>I^oX)HMt;(+QE9vxk0jUJjKS7eeki4SNh z8}zua)po!Buj%#U^ohzAyL*BOy`PIGT>gm5FEAgXFRmF9wqh6e-cL!+rVOSPWvU16=IOzUP~Xb@A{gQ9>_Y0xm&UU`%+BOP zo|@xT{a3Jd={N*yGxd?vyC?ty4`H?r4gg=~gxh+Ct zIM~Uw7SLjk4aQU~`UzEUDUH2v>7ED}i3q8}P=aKmcIN!{;sJS&Ncc6bJz93NfAgZj zh7LD>A)c2U9tyyg&f~vkSwgDcp(1k%cl8dDDH>l>JJWV$?46fhk&fc0q1&dEf&9kR($Po zKZ%Wt9Ru*pKk94z59cS{pEqbUE3^S`c98o1E45IFw1|PIs7aDFmpM3D#qM`wYdc?y z#iW_vyv-?db$!L=IR*bQot3>-sE0UA832gh%F-FS;Uo9E16SS{LhTZIpYk_hJzaps zB;WW<4P+)n{p=wm;cy}xTC5;g-nH10xAx2DB7mF9BQMfsIu$&Ff$0>1D=n{_qyxAC z3BZT&s3@$qhdK&MDykrGIEAzX6I#>?K5nmr0|W zsh_5O?gwI01XdVYmxv)6R*6#TP`pMSr*F;@9Zd^Z@5jr3{I3!RIF!}PT+;QI+~-Qf z>h4zpRcMbQ6u0vB_O|g!cdrp%z0>`iij4fpOI@&~co=fZP_QNFny8tg!S}4=6A>5# zoej(;YJ^WU?MPv9F$ZBqKAiu#lF}=~3pN%`X6PR>VK&oI0pR^zpQFGFaAl=QUd8$b zn!0e^!~u!^-`@aOF#kl!5n-|OqZI5NUZ0bnAR_1h>Rsoxo*IR<+vDP#GIp>D8lJ6+ zFniwG!dA%UBkJpu;;q^B0~eS~s1SXnk$7+$Gboh}zhURaxBK(Q`s-a%p)W|LT{|d; zPF>R|xl~lIPYTX>Mkgj>dIoU=NyThK!u?@MT*}=1*C-JQR#0iZc~6Mjhq55j~HY*-!@fhIlI4{omBX7&P*bhy8M{TdF=QHdSMBSd!p@wl8Q6^HwiDOhf> zgA{ig4Jw$)Z)IsF12#jGZ@$)1S69ePdX2=u1ATLRk2f7L$6#LXblj&1Ixq|-+;UV6 zC_t{Ujn9T<0ETOXLOxaUGZhtYoNHjCX3xAa3kx`s$G+eJB^84o3vgtlZtT?M@q=45 zfpEek9r9CBUddduD-o&tO6BK&gKcPJHJ0;;K)@+e;!utx!YxNHpRJZQF~N*&J_?I% zY#bK?ZH`ur3&Ea?Ht*cL#v$zaTknTwlF-o5ylGXTm!Y+qdH0uds+z`Xieb1)s|*ydfNw3~np z2)$a6V}cucL@19YOBfa}+yzYfmOOs1zSzfCp0m<5DM`0>p{7$nd}$L zq>?e}W<4P1$#5BV_)zh?9FG=TTUq%!$Yd5V0K1gY<6JFZUJWc3?@u3uen&R=89!xA zr?J`FX8)nEddxt#+xc0B^({nN;&s10>ok;!^;Y!s$8O$5rBaR&;gQ9G^TX=!y{6z? z=tJ&EcyuJ@91rlGDCG!Ixx@k*edDZllhTHevlH@|d2xLvyN&W61;(E`Nu-3t47r)~ zN}BIz0)nVzZ0Q>_D!Z?Z`#c|?`?IP`5GBK_XO3Lh;{$HpTqW0^MaLAQ${e|%!5D&DZYg4cU( zv)^RiUA$moz%oIn5Zt3NyX`l#48?o;K147B#Q?(>MQKN)AeHbj@nL z*zmF3LH>F__@FL-*spe_WAy`q zg5{?gm8jtdG`z7KsV_>X#bfDjRqe*V2+KdhgoPs7JzOuk0X8Eq+w88+e=Mg1$hMFv z%m&Z^!T?_DWgd?_flggRy~eZGxo-4`>|04WlHpjJO)1!W%YL7@atznD5H_90X7NCC z<2RK%yln!!HSpe;!IvdUorPvmI+}D(>O2$~R*YC|doIvnUwN+He|bU!yv*0d5F$)m zScn?S#YR0{kg|=&_iLK!CBf;*b6z@l+jkCfLH-pSx*UM?<&7C~eFFgu3nC?`$4=LM zBi8@S0F%)2g``_3WD^u5K;D(V2|)=0Ia2bY@zK5uzfNWbB{gTXUsc*j=zh%-m}fOvX!H1P&#d*FzRsITuL=imGP_W}qR{G?pwL4m0owH>i^ zc~uz{@#BC;BCkf-B^4)1BV2M=lbnkgWmkz*8rY!u)#upgJ$H4yadWF<#OhJADI>3MefuRjsyG6BeA&A0AXC-Vh*t6|U2U~Tp$+wdS>RefOY zkX}nt{fF`^CoyAtcbDq%GjwP)e#rS|-)jOdeOZ*n1bs@6xUk=munTJ!lJvVHif7?Kd&7B5h92p14HJ+2awhoEbFc> zeSm?<5paayXgKMvQg-~k00S+vE~UU@edpM)fhAm6Xjj>13jtI_F+gvEbE>gVaA*{O zpaAfa9RAx~iYsVsVV@pu=y`UE zD;LLS{vazANNeylEp9W0$3*qqbCokbdH-AS8K0W^4H!)b2uVrFw0a|qoso2nZQ&_U zI|{ykhi6P>hEXOAZLyqpMy_eC@aTH0}gEMa5v6;gfkEP?*ewmFFE$4k4x0o zz;gG~_p-4&Esj)Jls%IMR`NY*kQB6)I39!U9llP$*p+ctPo7 z0<7@*!1<%xC7p*-N*biQQ@Tq^xf{bmr7S2Ff9=I;CkwauHRP38cw z!r12r8C_$!AS?h#+F6{Ms@e%BExc~S(dJ6BKLgJJ?z8l&WX$k*%$c7QUc@K%>EEKE zajPfV32Ms(_x=hv{d&75T3K0Y9EkKYr*TnxE z7o~REC9ga2dy<~xwfkI1#djKp<_0_(fNmPFZQd6;S!|(D4 z4Lt(_VIlV;f>Jsmh7uXN$x?NuCgDSht2Bb2_vdZ(00Z1Hl zsUQbR;*cTrs$)|}OH_nx48wq-IpHFZV*^08XZx4Eon9jW0D!t7gZXnUrX|w^hJ=J> z+4Fl6BqAo)_^gVf&KIxqf#T{vIpiX5dVSSS6=Pvwe-B`nI7Xb2K=TfRLv9UxdPO%2sw@z(-8e+2pDp(DS%47MD&XssX7Y2 zaKT>Y_l%5}X6EJ+MXD36mh6vSp#D3((LQ9n8aVbR$3pda`Z9l5-(%o%o`GtR3c1t{A$qIFKw7@?-x;4$NO3+CR<-M`#vgAS3Q}Iq=#NS@#;#J zHZc)PhB9b*?Ckis?MQz+EG_9S$LCOh=kt0!ZnlyvriaJ5lSkUziEK_S&ucyiCn$|5q-*D-V*(gGIRxX?<9;$^2CuWID4TfZ`0sj+caNNl;yf9jq4W z1SI!{2Cm_MqL~p~++0E4s^_9K9RuG8*-Uy} z9WFUPtw|oB{Ru(04X7e~KZCBOhUkU5g>ki zeYbWPn;EcBI9-3N%IOoyVo=2HcpNFK_aR302TKm8Hu-PR|H|o9&aVmzf}xKkLG|Z&@hifmeIGU^#GrE*k_d^^5brIadsUYIkQ zymo#bE04#Ps2uXcxeg($W-qU~1}_>6a#8Bq>}-2A?et8V^WTP?fa9*SU2Ir3(xKfx>DI=-7o)U0~C-Ej84)JYHX>JaD28*-d2jNFmL@XC(QJsEQ# z_EbgtTl5ttXOs6o!C3M+!!6z|PEO8&gA8sCuO4{4W_R>%hW^70Q5spJ14fFS-x7j- z(Fd?!MO;z&9{uC)q4PfP&|%wyh^kAC2P-YPcCDs*NLTJIgEN!rPw&QnDxCMSkLIV@ zUmiofn+IaxDA4TfS@rH$=+MY`kgC|&__g1*&U2S+oE~+W?q6o}yI-#c9L{8oT9}TO z=7}C<>{QBks=lE~?CWlX8y}<_M zEn^JKyeNXDauD_of5j|$GL`j6v{sfS9yu^DV72sfjjC4b3C1?y=^t!#Oiaq8v#G44 zB-{#{PGIN?TX$CA&G_VGPcS4P^dA};+NzKjjyu9(H>janov+Xmc~fD~)Y3$GZpHy3 zv6!2v&KGeEVzf}npy92a4r!OK4=1u^eBleK%dt=Ng2de=P!8`N+M@ZBG(-c*6{SmU zvChkFeS<-B>Qj9|DQc8U&08m1dyE#+`H$2n*p6x^Y@8%Tu-FRc%~rpA;1#3mZCPa{ zOPU+8N$nIl9XF&sn-;pYJ1SM|*Os$m9EP?{qY)7@A|Wr^Jki z_*MUbhTs>f_}sVc>JJz1#;2xwttcEl14P;ukdItWZ?3uT;mAqTvfFYDsk;)G*_|&Y zWWSi5DivCT#M>S{HzD%nJz9$1}zSe|vKkUf7H!i!VMc2eE68SI9RhtO0UI%-YqCGYt zCqhgET4OUzA2bg~7>vwFu|gc@s#M#-i&;&w&xLz)FfsQdP;>Vjh$KOgbCez5ocD%rlMo7T5 z9rFv5GD!Y18b8L~`8|lMMz5rvP7_qnS7G)3K!75Ykb=9qt3+hr%AU0`uG5fi0D)ptSuaM4?!ATogniTF8;JU;Y5&?)TKYH*bb}i|5IAc2CV~C!`ElC2%tnqfoDwdwb_q_x$Z&{<#?Tmo+d(hB~wb=`wSV5dURqRP4l1 z$$w7w;xkf0-*!w9O#7spfczr3 z2b!F!Nj~#^WKo7O*-yFjK(rmjfA}d(2JR#54PyL9s6@3Ih5U>5b5xG2(ik5{X3 ze{?dm$~R$FPi&og4p01;9Yn9(Y*BFi6ovgS=*m2NKVQQ;EfRcR5oA%UGqzN5F8UL{ zR{e6$X^$e}C*7}CukcNVGn}k!rpJhdfSU$v0qdUrgixJbgsx$is(#pn(pX%yTii|s^1?Hj)hsi;^n zJ3f9Y;EhT z4E#K}$8tm@RPY*(7Fbh?F(B>;2vA160*^TInZrgw7NlcG^-EJXYHBVNrApn9-nCMl zWbeUo<%1=+tsbwDEMD|&Ha)4_ppY8lVa+dJG^@;BKu?}v8_O$3<=Xro^`|S^Uw>7o zJDED^JQ>Txn~x!Wxh$gFv-}ehv|SjlrX0OF0t>J2h1{t5cV~OH&cIw{?+z}zyL6fs zHX_8;ez6JWjDUS$`lY{>jVT&ne7ZTc7;AJAt+z*RRBMPeDw9R1Bk%jP#kf zGVNxdHO71VXF`CD|Dv-Q27kcqgI$c5%Qgf8TGpU_^Y=U14@CvK|9(aK#Dl%4<>ye(uUUd+!+;oW%Q2>}%y=k6Y0%dZ5uczwX#>`|-2%P#V8?&GHdn9JbbcJN zxiBe3GEDy?Hfrq4)bSEO-^d?VGM`^!(iRTbz~!yPRt7Mj75V?vOjUHcS{4bt&|47L z_&r6%|MCN|%DY@DzIS$=xJWNldA)>mbxB34DVTqM?GBO*r@ONMT3P+Loy+u5WoKm& zH{o5b+$}REyO8dl_rE;~V_=BXETMGtcmz?QksE`?kK61YxmZRq15c4^4!^Gi_%W`g2>WA8W^f~+5$!LDGJhiuy7PXGIz1i=DdTbE8`{pj-=Pwy6}Nb32_7=ykb6BxEH|{i zHebu&el#CGUfanOjqGS+5*&KQRMqwr;}`W8Nx&bi#@QLnXDEnf4>I}EUJ|dh+T6Qv zXDB>d7VeT8>f0qDh>1{1gS&JZH##~x{NY@2^;iJKzmf^7xjKi+Keymt3Oycnq?C4} zHMek!M+KHvC}k#){?O7f^v>UO5?Vm9M>AjdmQ$n}|2U2#dhjciGvgSa=n@q3@Dz<4 z98innv^_(Q-kZUJq0#TMD0|Y~ht0jzxNLbvWAp{}(f2bF@M|wa_J8vlBAopUbzxRe zi2lu7$Zc76gjag%CjS#s|prS z-r;<>E)B{ASI3vd`_YjgeHAxJ#z_pVuq5>{UEIGN*!&x22p%B6Pyz`VJye`h z`A=yop!)-53gyj5_~m4y-0$?HQ$flMPmiQo*W5JU z&TZv#fW!{nFSvSff@tG?tG2|R+Eg|f$i__KPDDL6JvYI z*J+lJrpDHMIOoohl3HI~?s~Gzx*m{`Qm3`JR??^^LQni2GZ9VNf0*tnhz`w1f@0IT z;2WqiB}%1h^v#J@9xpx+>G_cUw!&{Ozs{lvDsWtGSkhR|{}R^K9MuV6-fs&vraP{J zn%}fB8ZoNUd2M-daJF*QX?V~;;)`{*MzbI=EH?ipKCYty;j5yX69W^Bbbm@`q%M)Q z1Y^N5Z@$S_BL7GTMWTz5vHC@x-t7W0BU9O3R)gJdH=Jyl|5Voc@yn@&B~I;5kg3}5 z1UY^`#4{~ugR8#hPwfKqW<=tLV z1Wg;^i%6>=p@;^7&}sUX13N~hw=s$U3bJ1Aza#yRORW==9ifS|bkl^u6kU63KTsgp zSZNdOi%W)tM*Pkl@17`!-keL=kN3`_{3ahAzxkneUlrUq zS{mV6d^KAA>LMR>hhs_#N6n2*0%XrW)FixL?op-aZQ+xZNH`$U2U}@GJ*SG-i2G$q zOVsC=HYN&=h^|jsQsb&YSSk~5i6(RfB4r_~-+V9?CK@DVnW#7uY^(q(7rr+$7PWqM zBlqvhX`Hj%$MM}>|8Sbzzcl5>;~U?f_40g7ylhG{1w2R%*-i2nxh@euSMeE(Iza-! zL{}S#^GOP2A0?EUDMsrJo%yC(e-Ug^^a>FclJs=k-D4iY3(|Z!`B1stGgCX3t%YV= zl@R?23RKY`fEF<=T~xE=mgYVQAI#T~*)K94Wu_>5JOhpk3k%gXn*JT50})Rcw3JXQF!X`1H!Q5rSDtX&CziZa0t__Xz=s#A>c8$c+%;VfsuaB-T<*%t`J6k zcsSSQPv)=F2-B(G@|8;f$uN%*MP)1p`%XAW85v#Xzo~c77pxE#4g#6-+;?NLS%*38 zBA&pHEnB8`q^D=7tLGGQ@Jf{G_`pqB*;<=VBE}I3FoTNbnNxK+z?=Pgx+Ezsb$V@> z{lQW8>KJ3e<~a)OMOI zB)=*rD1v4Cm*wo_NcjvJrL<)!2S`atC&p+$ANp;l*Ixt?go&<)r8x|0**c8_k6lar zUi5fE?n!^DF5ZGc0v&l*|H!;XPD6%wE6JFMZRV3LcfI!ZrvGHd0Pl|=$cMX3&6 zC{Jx|Z@!<8)9#+ev&3V1n`rrCOUU&YE|P|%J%0NeTIl!*Zn~hgNr=FSm8ES|@7?A4 z!iCuJ*)2L&q*OUUnTjN@3G&DC{08FlxJd1Cys+=FLnVZIigQh`N|9XY8wzuROskzcVsUMmw8md-g!XexU% zEhAMl(boeDs%pDO1YBzDwwM6YVOlvwhVumsd2ot3ZhCtB$4U5L>U0RBj>v)Qp@M{e=>2WwmLNq|EmD70B1mRvY6!{xrl^+xXN zo%QSV5rmhIhOF3&+xqIP2tnhNMr`L-D~`qvq7_w$w?rgSpo|y9+?u<7y6<%gB12!8 zY^=}7Ouz-!Bw%A4qJLb`3wXXqgPk@auRwPh9@s1Zef(J74`@30^H)g>9oCGQ*(nl* z5{Z=t*&JLveQOVQ@fjJB(krYI&Tk{jrEQLZ@s#THlYbsnrpe>izHs92vo<-NrLizjnfnqpsBO=1;CJzksU17k~X~X?hmAYM9Rz|l60zZZ{ zj(+6tfdjjMemJs#0jpf1{pL>K89lGv?%HxnIkX_kjSq|-LF4DIQ@81KdjT{;pg`*Q z-_j}(Jx0C{zJ+l;Aja3W4yjjeA~$^HLdtdptT9L4>?}wdO8u3%LfRA2Ln-$ zfx%hjE%GOWw$k&i&oWU2MmxJOkdMOTR>Z^~v_1vb@o=D_i8D9aY|F|@Cg(mC;lv=g zPZb*xzZ@c~6{f4HF}lpLAk%C=EGe9RAnKcgU)9x!W_tBal79hEr|E8Z*Y?7aC)xVLnR$@44O4A2 z4hpuAGqu!<7ghwsC=YAB5~ekjOpK7DKLTIwPf>Bw*g{W6GV*G)tLHl@LgOgp7Y6U{ zBrDVyh!nGsAbB(q07C3mYT`W!Ti`R+jG+TJ$qdSp;- zZ?Ez>F}N=jHK8LwOnY{=`g#p9!yYwPSmLDBgYo7XJNVo+gZcdX*e}mpSF7g8DQ8tE z71#vg1No8>hYR?XTy@y9Al-+1gBgE;vK^RraO`VS=1gaax>urkUzW$)4x-!+Ra!$O^&DXYF z)=R{rW4USR)7pRkR*N{p(w&^VS*nJyh$0;3X-pZ7!a<7nd-N^JZ3F^Lw87|v7E2y$ zoB|PHED9{h-AaJgdLPmr!oyl_qt;8}L`Ebx32RjxNFa@6J>c(58a3&OFE2TC+lZvu z4f1woDu}O=TyD6eZf>goG^tc2YQ1jpyY1>4M4TsN3rxh8jCi_a{gfjbx|}Bgkq+{> z{EG4=S@Er}uv}82(dvepM8Xsi8c{3>qOk$_HM`+YyD=djg3nb|Mj4s%$^LHRd(+4R z9UVU&HZX^Dk@B6P!JlWS^eipM(-q7R5Pv_-8T!3|Fe)llIaAOfBSR=JQuAY-va-bS z2_-2d-E!ZA5WMTl={WGIh* zk%2)kXALQiLZ!sXr{%0!ut!EmEZEt{YDmG4wj2?k9ZHJG6(K1oDDWm}-8o}Y?)_Eu zH`}+Nd1_iXO!R3>e*E?8?!+3c9#mAg!ETs84fe*X|6+m%VR+@d3?B1f2nKJ*A98j}bv}aSIuaHYn^Y zXgXwq;=R8x77h=MGBV0$7EvTbs_hr>gc|H`BK-lF+r9gA+E34j`8f>X017qoSciw- z-SymG3+i+1P+8dP*qP@(?&;}5MU|W_Q@gG+LpEq_f=-x0-9V3NIi*Eg0E1Ku&-WfuoLPap53PW($!J!4Gq5?M@b`z4go z%YU{rjV%eM!|aoMJFZ00L@*VVy5{6c>)9fxO2etE4ff2a*?ipvtmuZ&urR( zvukTsWaMm@QrYjli`gXRC`H>@Fip=ZONHi~feXkHr`Cc+P02TVB;Ios=RNc6bCZ*MNO&QTlQcAcU)kT zPsw@F;7)Ent;bO?$3&^>Go=*fL6VhA$ERc~ao^42a%kz=Fvu`(U6=q)k9D zPQvvCx>x|Ta>qN^ayU3<9q7}9<}P?cH!MFzXfWjSi9fbvAU(CHuR`<5q7LJILHilwK*y#D>6qU^5J(q=8c~H7)zz zw%7;*zIGx>p1MCvb=UKvZ!`ye&~l76Job~AulQOL1BYRQ!e4s(?u|jusWMzo%dsB2 zHRzT?IYPC)o%ru*spWr*9Cw$CC|h2Q4nYG(Z$cSXLqj81tS~65lyiY;^|<2&CuzQ& zK&`D!a6V_`$G~8E=%JYw>2p;JKQ1i9UaBOSgo9(wT3|uLl+|?NsPnm0|7l|Yn;lz> zh#?NTHh=Uw`|>IJ;hu8y1WU-RT%Gm@7|MhuE9~c?r4UsAkh`&iv|&9JkB<`^w=s~< zA*@G=8#WkHN^s+#cz;jH#L_nyiCa{_bh^?e;VTYFmyyA@+y4$Cyl(G1cf3v?hI$oU zi&Re1*K!s@tbBaHYchMTC{rhx`ELbC`T8psBO6Od^gn*DrQ34FK$HQWH39zUi^CF= zIrT6ojQCq)I!+;=dTOqHe(>_zapmWOos|OpdFP`}@r{hSQtITi`lep{Co2z+WO}-8 zo3p>fqjBR-l+3p}(CrUYOf1Rz#rZ+tpuW318tYMFD~}_LupDwZQGY2wV+7?_pk{*D z=~B^@Ypd#d_;C0(5o~JIDd5vvtZ_kTK$jzOD;eHnH$e>^=@TKVE)?uGC^@EAz$3C? zW(+|ZThQY-BU9d>AV^?zZ+HSe&Z)UC0vv|N5p>_hs21hB#%XcE#x8PH3Ufl61-e0< z9db6g2<6DI9NzII&B;}9kV5&7J~JdJgl%guMsUn#!G#GXDh8(lD) z2AvqaHKugm`xJ9yn*u6NUkVCVqoV{buXca9!^I~E{kp#)E>?_3_SH;O@iba-N0FE$qL+_;R-*;)B`cA4~}y#4s|)MW?- zBWz-GC@-Z}EA2U6%VO5*bGL;w^Em|O7t-K2*FrPF61u<4oa>V)%m?S65N1U4#Iv}# zocPP)^Rc|j$Fdf37mrWXtch0&pZJKp$}cE4%I$KdSoO|>;vsc8cV{h zZ|`}J0YQyTDAB0exIOqtwQGr zm|-`QMH-)lB-$B=Iixd%0=h3o_kUk({dg-QQJMuz;mN}M%hXKX?!K{iGwWDLazS9@ zpZ8+^KtT`PsI^R?=cOuT$B}-gGVKdl)L>PXq`w+K?^DWvEl$7&_Mn^~T)dPFFSI8D z2?Pwr9(#Boi7VBihN4pmn5IO4NpkYOKoLk|drK{fgM>~%j2^ZzDCxK=UXN)dTS_c7 z!HgVM#fCN*qgGD@4;w@&VQ5J4_wQdv>%$yBHTJM<&et52L$XNlu=&{QvSUL-oUHL1 z3h2K*&v;w7RnEbM$A3`$ z|Gx#KCUBA9p)}!)-XQHhmuLGbaFJHqhCe3dZEkJ7vil9- zDA(IG)&x+HgCyM}w+H}T&?HN)>c&?T^vuGKH8-(Ci}~=jj+=|Sd;5&pzSoGu$oR4U zPL39b3J7G^v|9vQ#%CT9-|>LvfS@G;%HsR{U8f8Wn}XiGiw6yE>&v0%cgAXn>~j*w?ppcI7P z+veCSf!3LAq22%86tOH z_Drm-Ghe@=hYYcF_#Pg35D*afLbMy5T?VI&jXNMrOJA+F#!n|QaJyxPs}M0Byt_*_ zzs#o8=TBHo!v;LrtI;b)AO!kglBdJ7=(Xw4;%ImWO33O8JuLsr93HOP9x>$Dd<+Q> zVYY>Xw0oa7Rr{R{RG9zP7xu1VXJIPmsYT0HA|zdCv}^`=EG7hlRB*j+yDKR0bS#+V zYh`7wp`eGm$Na?)&JByUxX9f+aVZ;65r{}IiWvb3yrK}biXrAR4pC+_)0llDDOtGs z_%Cw>%sw`R<-u6`8_*xbsc>k<IIyv@ZfVXI{~fFD?FAkE5L5Iqi3EL(RX=>F__;8B{c?6fsnuiu@2Btk z^Dt-O&svRNIcqeCm#iMn?tfvrIwZrhF3I@SEys?NBR8(tv-sF?Aj_Qr-$ZPBzFfFn zqO~?WZT#qHw;ZnWxj55F=-(KsZH(e4&Tc4Azg2uXoRJt5-Do0XreI9Gx%C_>&! LD@j#Bje`FNVZP&m literal 0 HcmV?d00001 diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/images/ifc-graph.svg b/src/ifcopenshell-python/docs/introduction/images/ifc-graph.svg similarity index 100% rename from src/ifcopenshell-python/docs/ifcopenshell-python/images/ifc-graph.svg rename to src/ifcopenshell-python/docs/introduction/images/ifc-graph.svg diff --git a/src/ifcopenshell-python/docs/introduction/images/ifc-tree.png b/src/ifcopenshell-python/docs/introduction/images/ifc-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0a1ec32da38b9f4de8a72c1ac35102e79b1a18 GIT binary patch literal 51462 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%0DVoGRl-Bs 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 +- `Official IFC4 documentation homepage `__ +- `Official IFC4X3 documentation homepage `__ +- `List of all IFC2X3 classes `__ +- `List of all IFC4 classes `__ +- `List of all IFC4X3 classes `__ + +.. tip:: + + It is recommended to use IFC4. However, the IFC4X3 documentation is a lot + more friendly to newcomers. + +The official ISO documentation is written for a technical audience and may be +overwhelming. This guide will take you slowly through the core concepts, and +leave you with the knowledge you need to discover more. + +Before digging into theory, let's explore an existing IFC model. You can +download this sample IFC for this guide. + +.. container:: blockbutton + + `Download sample IFC `__ + +If you open up the model with a text editor, you will see text similar to this: + +:: + + ISO-10303-21; + HEADER;FILE_DESCRIPTION(('ViewDefinition [, QuantityTakeOffAddOnView, SpaceBoundary2ndLevelAddOnView]'),'2;1'); + FILE_NAME('AC20-FZK-Haus.ifc','2016-12-21T17:54:06',('Architect'),(''),'','',''); + FILE_SCHEMA(('IFC4')); + ENDSEC; + + DATA; + #3= IFCORGANIZATION($,'Nicht definiert',$,$,$); + #12= IFCOWNERHISTORY(#7,#11,$,.ADDED.,$,$,$,1482339244); + #13= IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); + #14= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); + + ... + + #62= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.00000000000E-5,#59,#60); + #66= IFCPROJECT('0lY6P5Ur90TAQnnnI6wtnb',#12,'Projekt-FZK-Haus','Projekt FZK-House create by KHH Forschuungszentrum Karlsruhe',$,$,$,(#62,#374),#49); + #77= IFCPROPERTYSINGLEVALUE('GS_TimeStamp',$,IFCTIMESTAMP(9685146),$); + #85= IFCPROPERTYSET('1mnk_H9cG6eU2r9ped0WRu',#12,'GSPset_TimeStamp',$,(#77)); + + ... + + #15033= IFCSHAPEREPRESENTATION(#15026,'Axis','Curve2D',(#15031)); + #15037= IFCPRODUCTDEFINITIONSHAPE($,$,(#15016,#15024,#15033)); + #15042= IFCWALLSTANDARDCASE('2XPyKWY018sA1ygZKgQPtU',#12,'Wand-Int-ERDG-4',$,$,#14983,#15037,'BC6F0F70-6195-495E-A2-FC-239713029DB1',$); + #15046= IFCMATERIAL('Leichtbeton 102890359',$,$); + + ... + + #15231= IFCRELDEFINESBYPROPERTIES('3Q0nMR5elnJFWzAhgkZqe1',#12,$,$,(#15042),#15229); + #15234= IFCWALLTYPE('2AEMyYvIjlsz7LRzqYHy64',#12,'Leichtbeton 102890359 240',$,$,$,(#15244,#15248,#15250,#17288,#17290,#17292,#18637,#18639,#18641,#19015,#19017,#19019,#20770,#20772,#20774),'8A396F22-E52B-6FDB-D1D5-6FDD2247C184',$,.NOTDEFINED.); + #15237= IFCDIRECTION((1.,0.,0.)); + #15239= IFCDIRECTION((0.,0.,1.)); + + ... etc + +The first thing you should notice is the line that defines that this is an +**IFC4** version. This determines what **IFC Classes** and **IFC Concepts** are +available. + +:: + + FILE_SCHEMA(('IFC4')); + +You'll notice certain **IFC Class** keywords jump out at you: things like +**IFCSIUNIT** which defines the length unit of metres, or **IFCPROJECT** which +defines the project, or **IFCPROPERTYSINGLEVALUE** which defines a property of +something, or **IFCWALLSTANDARDCASE** which defines a wall, or **IFCMATERIAL** +which defines a material, and so on. + +Let's see how to fetch this data with code. Let's start with loading the model. +Import the IfcOpenShell module, then use the ``open`` function to load the +model into a variable called ``model``. The first piece of information we want +to check is what IFC schema version we are using. We assume the model you are +learning with is IFC4. We'll then fetch all entities that use the **IfcSlab** +class. + +.. code-block:: python + + import ifcopenshell + model = ifcopenshell.open('/path/to/your/model.ifc') + print(model.schema) # May return IFC2X3, IFC4, or IFC4X3. + print(model.by_type("IfcSlab")) # Will return a list of IFCSLAB entities, like below: + # [ + # #34509=IfcSlab('1pPHnf7cXCpPsNEnQf8_6B',#12,'Bodenplatte',$,$,#34464,#34505,'E4D9CD4B-CA43-4735-94-BD-1FD4376BD455',.BASESLAB.), + # #59290=IfcSlab('2RGlQk4xH47RHK93zcTzUL',#12,'Slab-033',$,$,#59253,#59286,'DA0A17AC-B773-47AC-99-C5-D390C73AD5CC',.FLOOR.), + # #59553=IfcSlab('07Enbsqm9C7AQC9iyBwfSD',#12,'Dach-1',$,$,#59508,#59549,'E142B455-80E4-4B96-83-EC-E1589CA998DB',.ROOF.), + # #59753=IfcSlab('2IxUUNUVPB6Ob$eicCfP2N',#12,'Dach-2',$,$,#59716,#59749,'BD6D9414-37DF-40A8-88-40-301A32A9A5B5',.ROOF.) + # ] + +.. tip:: + + Try changing ``model.by_type("IfcSlab")`` to fetch different types of + entities based on their **IFC Class**. + +An overview of all IFC classes +------------------------------ + +There are hundreds of **IFC Classes**. You don't need to know them all, but +we'll help describe the general breakdown so you know where to find the +appropriate class for what you're after. + +**IFC Classes** are defined using an **Object Oriented** tree hierarchy. Child +**IFC Classes** inherit the attributes defined by the parent **IFC Class**. +This means that **IFC Classes** with common attributes are grouped together in +the tree. + +For example, because all **IfcObject** classes can have a **GlobalId** +attribute, that means that because **IfcWall** is a subtype of **IfcObject**, +it can also have a **GlobalId** attribute. + +.. image:: images/ifc-tree.png + +Important IFC concepts +---------------------- + +There are hundreds of **IFC Concepts** that allow you to describe relationships +between **IFC Classes**. In this guide, we'll focus on the five most common +**IFC Concepts** to get you started. + +Concept 1: the project context +------------------------------ + +Concept 2: spatial decomposition +-------------------------------- + +Concept 3: object typing +------------------------ + +Concept 4: attributes and property sets +--------------------------------------- + +Concept 5: material assignment +------------------------------ + +Self-learning IFC: how to learn more +------------------------------------ + +