diff --git a/src/blenderbim/docs/users/modeling/basic_modeling/adding_doors_windows.rst b/src/blenderbim/docs/users/modeling/basic_modeling/adding_doors_windows.rst deleted file mode 100644 index 384d9f2a98..0000000000 --- a/src/blenderbim/docs/users/modeling/basic_modeling/adding_doors_windows.rst +++ /dev/null @@ -1,113 +0,0 @@ -Adding Doors and Windows -======================== - -This section covers how to add and customize doors and windows in your BIM model using the BlenderBIM Add-on. - -Adding a Door -------------- - -1. Select the wall where you want to place the door. -2. Set the 3D cursor on the wall at the desired door location. -3. Click on the "Create Door" tool in the BlenderBIM toolbar. -4. In the top bar, you'll see "[No IfcDoorType Found] | Name [TYPEX] | + Add IfcDoorType". -5. Edit [TYPEX] to use a door type name of your choice (e.g., DOOR001). -6. Click "+ Add IfcDoorType". The top bar will update with additional options. -7. Click "Add" (or press SHIFT+A) to create a door with its own type. -8. Adjust the door's width and height using the parameters in the top bar. - -Adding a Window ---------------- - -1. Select the wall where you want to place the window. -2. Set the 3D cursor on the wall at the desired window location. -3. Click on the "Create Window" tool in the BlenderBIM toolbar. -4. In the top bar, you'll see "[No IfcWindowType Found] | Name [TYPEX] | + Add IfcWindowType". -5. Edit [TYPEX] to use a window type name of your choice (e.g., WINDOW001). -6. Click "+ Add IfcWindowType". The top bar will update with additional options. -7. Click "Add" (or press SHIFT+A) to create a window with its own type. -8. Adjust the window's width and height using the parameters in the top bar. - -Modifying Doors and Windows ---------------------------- - -.. note:: - Some functionality is not implemented. - -You can modify doors and windows using various tools: - -- Resize: Adjust the width and height parameters in the top bar. -- Move: Use Blender's standard move tools to reposition the door or window. -- Flip: Change the opening direction using the flip tool (if available). - -.. note:: - After moving a door or window, you need to recalculate the void in the wall. To do this: - -- Select the wall containing the moved door or window and the door/window. -- Click on the "Apply Void" (:kbd:`Shift` + :kbd:`O`) button in the top bar or use the appropriate shortcut. -- This ensures that the opening in the wall is correctly positioned after moving the door or window. - - -Door and Window Properties --------------------------- - -.. note:: - This functionality is not implemented. - -After adding a door or window, you can customize its properties: - -1. Select the door or window in the 3D viewport. -2. Go to the ... panel. -3. Find the ... section. -4. Here you can set various properties such as fire rating, u-value, or any custom properties required for your project. - -Customizing Door Properties -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. note:: - This functionality is not implemented. - -You can customize various properties of the door: - -- Dimensions (width, height, thickness) -- Opening direction -- Door type (e.g. single swing, double swing, sliding) -- Material - -Window Customization -^^^^^^^^^^^^^^^^^^^^ - -.. note:: - This functionality is not implemented. - -Customize window properties such as: - -- Dimensions -- Window type (e.g. fixed, casement, sliding) -- Glazing options -- Frame material - -Creating Multiple Doors or Windows ----------------------------------- - -To create multiple doors or windows of the same type: - -1. Select the desired door or window type from the dropdown menu in the top bar. -2. Set the 3D cursor on a wall where you want to place the new door or window. -3. Click "Add" (or press SHIFT+A) for each new door or window you want to create. -4. Adjust the position and parameters for each new element as needed. - -Calculating Quantities ----------------------- - -After creating doors and windows, you can calculate quantities: - -1. Select the door(s) or window(s) you want to measure. -2. Press Q or click "Calculate All Quantities" in the top bar. - -This will update the quantity information for the selected elements. - -See Also --------- - -- :doc:`creating_walls` -- :doc:`../advanced_modeling/material_assignment` diff --git a/src/blenderbim/docs/users/modeling/basic_modeling/index.rst b/src/blenderbim/docs/users/modeling/basic_modeling/index.rst index 9b9686fa74..a032b3ff97 100644 --- a/src/blenderbim/docs/users/modeling/basic_modeling/index.rst +++ b/src/blenderbim/docs/users/modeling/basic_modeling/index.rst @@ -15,8 +15,8 @@ Fundamental techniques for IFC modeling. .. container:: card - :doc:`adding_doors_windows` - Techniques for adding and customizing doors and windows. + :doc:`openings/index` + Techniques for adding and customizing doors, windows and other openings. .. container:: card @@ -36,7 +36,7 @@ Fundamental techniques for IFC modeling. :maxdepth: 1 creating_walls - adding_doors_windows + openings/index modeling_slabs_roofs defining_rooms_spaces diff --git a/src/blenderbim/docs/users/modeling/basic_modeling/openings/door.rst b/src/blenderbim/docs/users/modeling/basic_modeling/openings/door.rst new file mode 100644 index 0000000000..ac5e9ebf61 --- /dev/null +++ b/src/blenderbim/docs/users/modeling/basic_modeling/openings/door.rst @@ -0,0 +1,154 @@ +Door +==== + +A door is a wall opening that allows passage between spaces, controlled access for people and goods. + +In IFC, it's represented by the IfcDoor entity, which is a subtype of IfcBuildingElement. +Doors play a crucial role in building design, affecting circulation, accessibility, and space functionality. + +This section covers how to add and customize doors in your BIM model using the BlenderBIM Add-on. + +Adding a Door +------------- + +1. Select the wall where you want to place the door. +2. Set the 3D cursor on the wall at the desired door location. +3. Click on the "Create Door" tool in the BlenderBIM toolbar. +4. In the top bar, you'll see "[No IfcDoorType Found] | Name [TYPEX] | + Add IfcDoorType". +5. Edit [TYPEX] to use a door type name of your choice (e.g., DOOR001). +6. Click "+ Add IfcDoorType". The top bar will update with additional options. +7. Click "Add" (or press SHIFT+A) to create a door with its own type. +8. Adjust the door's width and height using the parameters in the top bar. + +Placing a Door and Changing its Swing Direction +----------------------------------------------- + +1. Select the wall: + - (Optional) Use the "Create Wall" tool to add a wall in your scene. + - Select the wall where you want to place the door. + + Selecting the wall is crucial as it ensures that the void relation between the door and the wall is automatically created. + +2. Add a Door: + - Use the "Create Door" tool from the toolbar. + - Press SHIFT+A or click "Add" to place the door on the selected wall. + +**Applying Void** + +If you forgot to select the wall before placing the door, you'll need to manually create the void relation: + + - Select both the wall and the door. + - Click "Apply Void" (Shift+O) button. + +.. important:: + If you need to use "Apply Void", do this before making any modifications to the door, + as there are limitations with this function that may affect door orientation. + + Usually, the Regen function will recalculate all the openings with existing void relationships. + +3. Adjust Door Position (if needed): + - With the door selected, use Blender's move tools to adjust its position along the wall. + +4. Regenerate the Wall Geometry: + - Select the wall. + - Press Shift+G to regenerate the wall geometry, incorporating the door opening. + + .. note:: + This step ensures the wall geometry is updated to include the door opening. + + Moving the Door using Blender tools doesn't actually change the IFC model. + Future versions need to improve UX in that regard. + Synchronisation between the Blender scene and IFC model is an issue that has the highest priority. + +5. Change Door Swing Direction: + - Select only the door. + - Press Shift+F to flip the door. It rotates the door by 180 degrees and moves the pivot point. + - Locate the "Parametric Geometry" panel in the `Scene Properties > Geometry and Materials` subtab. + - Find the "Door" section within this panel. + - Change the "Operation Type" to "SINGLE_SWING_RIGHT". + + .. note:: + The Shift+F shortcut is currently a hidden feature and not available as a button in the Door tool interface. + + You may need to experiment with the combination of changing the Operation Type and using Shift+F to achieve the desired orientation. + +6. Final Wall Geometry Regeneration: + - Select the wall again. + - Press Shift+G one more time to ensure all changes are properly applied. + +Additional Notes +---------------- + +- The Shift+F shortcut for flipping the door is not visible in the Door tool interface. + This functionality may be added as a visible button in future updates. +- Always use Shift+G (Regenerate) after making changes + to ensure the wall and door geometries are correctly updated. +- Avoid using Shift+O (Apply Void) as it may cause issues + with the door's orientation. + + +Modifying Doors +--------------- + +.. note:: + Some functionality is not implemented. + +You can modify doors using various tools: + +- Resize: Adjust the width and height parameters in the top bar. +- Move: Use Blender's standard move tools to reposition the door. +- Flip: Change the opening direction using the flip tool (Shift+F). + +.. note:: + After moving a door, you need to recalculate the void in the wall. To do this: + +- Select the wall containing the moved door. +- Click on the "Regen" (:kbd:`Shift` + :kbd:`G`) button in the top bar or use the appropriate shortcut. +- This ensures that the opening in the wall is correctly positioned after moving the door. + +If Regen operation doesn't achive the required result, use Apply Void function: + +- Click on the "Apply Void" (:kbd:`Shift` + :kbd:`O`) button in the top bar or use the appropriate shortcut. +- This ensures that the opening is linked to the wall. + + +Door Properties +^^^^^^^^^^^^^^^ + +.. note:: + This functionality is not implemented. + +After adding a door, you can customize its properties: + +1. Select the door in the 3D viewport. +2. Go to the ... panel. +3. Find the ... section. +4. Here you can set various properties such as fire rating, u-value, or any custom properties required for your project. + +.. note:: + This functionality is not implemented. + +You can customize various properties of the door: + +- Dimensions (width, height, thickness) +- Opening direction +- Door type (e.g. single swing, double swing, sliding) +- Material + + +Creating Multiple Doors +----------------------- + +To create multiple doors of the same type: + +1. Select the desired door type from the dropdown menu in the top bar. +2. Set the 3D cursor on a wall where you want to place a new door. +3. Select the wall +4. Click "Add" (or press SHIFT+A) for each new door you want to create. +5. Adjust the 3D cursor, position and parameters for each new door as needed. + +See Also +-------- + +- :doc:`../creating_walls` +- :doc:`../../advanced_modeling/material_assignment` diff --git a/src/blenderbim/docs/users/modeling/basic_modeling/openings/index.rst b/src/blenderbim/docs/users/modeling/basic_modeling/openings/index.rst new file mode 100644 index 0000000000..d374d98904 --- /dev/null +++ b/src/blenderbim/docs/users/modeling/basic_modeling/openings/index.rst @@ -0,0 +1,66 @@ +Openings +======== + +This section covers the creation and management of openings in BlenderBIM. +Openings are crucial elements in building design, serving various purposes such as passage, ventilation, and lighting. + +.. only:: builder_html and (not singlehtml) + + .. container:: toc-cards + + .. container:: card + + :doc:`door` + Learn how to add and customize doors in your BIM model. + + .. container:: card + + :doc:`window` + Discover the process of creating and modifying windows. + + .. container:: card + + :doc:`opening` + Create openings without fillings for special architectural features. + +Overview +-------- + +In the context of Building Information Modeling (BIM) and the Industry Foundation Classes (IFC) +standard, openings are represented through a combination of elements: + +1. Voids: Represented by IfcOpeningElement, these are the actual cut-outs in the wall. +2. Fillings: These are the elements that occupy the voids, such as doors (IfcDoor) or windows (IfcWindow). +3. Relationships: These are abstract objects that connect fillings to voids and voids to elements in which they're created. + +BlenderBIM provides tools to create and manage these elements: + +- Door Creation Tool: For adding doors to walls. +- Window Creation Tool: For adding windows to walls. +- Wall Creation Tool > Void Application: For creating openings without fillings + (currently achieved by creating a door or window and removing it + or by using "Add Void" feature of the Create Wall tool or any element). + +These tools allow you to: + +- Create openings with precise dimensions and positions. +- Modify opening properties and geometries. +- Manage the relationships between walls, voids, and fillings. + +The following pages provide detailed guides on working with each type of wall opening in BlenderBIM. + +.. container:: global-index-toc + + .. toctree:: + :hidden: + :caption: Wall Openings + :maxdepth: 1 + + door + window + opening + +See Also +-------- + +- :doc:`../creating_walls` diff --git a/src/blenderbim/docs/users/modeling/basic_modeling/openings/opening.rst b/src/blenderbim/docs/users/modeling/basic_modeling/openings/opening.rst new file mode 100644 index 0000000000..c804baebe0 --- /dev/null +++ b/src/blenderbim/docs/users/modeling/basic_modeling/openings/opening.rst @@ -0,0 +1,64 @@ +Opening Without Filling +======================= + +An opening without a filling is a void in a building element, +typically a wall, that doesn't contain a door or window. + +These openings can serve various purposes such as ventilation, pass-throughs, service penetrations, or architectural features. + +In IFC, it's represented by the IfcOpeningElement entity, which is a subtype of IfcFeatureElementSubtraction. + +This section covers how to create openings without fillings in your BIM model using the BlenderBIM Add-on. + + +Creating an Opening Without Filling +----------------------------------- + +Currently, there isn't a dedicated tool for creating openings without fillings. +However, every door or window is a filling for an opening element, so it's created implicitly. + +It means, you can achieve an opening without a filling by creating a door or window and then removing it and its type. + +Here's the process: + +1. Select the wall where you want to create the opening. +2. Set the 3D cursor on the wall at the desired opening location. +3. Use either the "Create Door" or "Create Window" tool from the toolbar, + depending on the shape you need for your opening. +4. Follow the steps to create a door or window as described in their respective sections. +5. After creating the door or window, select it in the 3D viewport and press Delete. +6. In the Outline panel, find the "Type" field and press Delete. + +This process will leave you with an opening element without a filling. + +.. note:: + Future versions of BlenderBIM may include a dedicated tool for creating openings without fillings, which would simplify this process. + +Additionally, you can create an opening by using the "Add Void" button in Create Wall tool. +This tool will add an Opening IFC element to the Outline and its 3D representation in the 3D Vieport. +Blender move and scale tools will allow you to modify the opening. +After you finished with modifications, you can press the check mark to complete the void. + +Modifying Openings +------------------ + +You can modify openings using various tools: + +- Resize: Adjust the width and height parameters in the top bar. +- Move: Use Blender's standard move tools to reposition the opening. + +.. note:: + The opening is hidden object. To show it, press the "eye" button hear the "Add Void" in the Create Wall tool. + +.. note:: + After moving an opening, you need to recalculate the void in the wall. To do this: + + - Click on checkmark near the "Add Void" in the Create Wall tool. + + +See Also +-------- + +- :doc:`../creating_walls` +- :doc:`door` +- :doc:`window` diff --git a/src/blenderbim/docs/users/modeling/basic_modeling/openings/window.rst b/src/blenderbim/docs/users/modeling/basic_modeling/openings/window.rst new file mode 100644 index 0000000000..1b09426272 --- /dev/null +++ b/src/blenderbim/docs/users/modeling/basic_modeling/openings/window.rst @@ -0,0 +1,145 @@ +Window +====== + +A window is an opening that allows light and air to enter a building, providing ventilation and views to the outside. + +In IFC, it's represented by the IfcWindow entity, which is a subtype of IfcBuildingElement. +Windows play a crucial role in building design, affecting natural lighting, ventilation, energy efficiency, and aesthetics. + +This section covers how to add and customize windows in your BIM model using the BlenderBIM Add-on. + +Adding a Window +--------------- + +1. Select the wall where you want to place the window. +2. Set the 3D cursor on the wall at the desired window location. +3. Click on the "Create Window" tool in the BlenderBIM toolbar. +4. In the top bar, you'll see "[No IfcWindowType Found] | Name [TYPEX] | + Add IfcWindowType". +5. Edit [TYPEX] to use a window type name of your choice (e.g., WINDOW001). +6. Click "+ Add IfcWindowType". The top bar will update with additional options. +7. Click "Add" (or press SHIFT+A) to create a window with its own type. +8. Adjust the window's width and height using the parameters in the top bar. + +Placing a Window and Changing its Configuration +----------------------------------------------- + +1. Select the wall: + - (Optional) Use the "Create Wall" tool to add a wall in your scene. + - Select the wall where you want to place the window. + + Selecting the wall is crucial as it ensures that the void relation between the window and the wall is automatically created. + +2. Add a Window: + - Use the "Create Window" tool from the toolbar. + - Press SHIFT+A or click "Add" to place the window on the selected wall. + +**Applying Void** + +If you forgot to select the wall before placing the window, you'll need to manually create the void relation: + + - Select both the wall and the window. + - Click "Apply Void" (Shift+O) button. + +.. important:: + If you need to use "Apply Void", do this before making any modifications to the window, + as there are limitations with this function that may affect window orientation. + + Usually, the Regen function will recalculate all the openings with existing void relationships. + +3. Adjust Window Position (if needed): + - With the window selected, use Blender's move tools to adjust its position along the wall. + +4. Regenerate the Wall Geometry: + - Select the wall. + - Press Shift+G to regenerate the wall geometry, incorporating the window opening. + + .. note:: + This step ensures the wall geometry is updated to include the window opening. + + Moving the Window using Blender tools doesn't actually change the IFC model. + Future versions need to improve UX in that regard. + Synchronisation between the Blender scene and IFC model is an issue that has the highest priority. + +5. Change Window Configuration: + - Select only the window. + - Locate the "Parametric Geometry" panel in the `Scene Properties > Geometry and Materials` subtab. + - Find the "Window" section within this panel. + - Change the "Operation Type" to the desired configuration (e.g., "DOUBLE_PANEL"). + +6. Final Wall Geometry Regeneration: + - Select the wall again. + - Press Shift+G one more time to ensure all changes are properly applied. + +Modifying Windows +----------------- + +.. note:: + Some functionality is not implemented. + +You can modify windows using various tools: + +- Resize: Adjust the width and height parameters in the top bar. +- Move: Use Blender's standard move tools to reposition the window. +- Flip: Change the opening direction using the flip tool (if available). + +.. note:: + After moving a window, you need to recalculate the void in the wall. To do this: + +- Select the wall containing the moved window. +- Click on the "Regen" (:kbd:`Shift` + :kbd:`G`) button in the top bar or use the appropriate shortcut. +- This ensures that the opening in the wall is correctly positioned after moving the window. + +If Regen operation doesn't achieve the required result, use Apply Void function: + +- Click on the "Apply Void" (:kbd:`Shift` + :kbd:`O`) button in the top bar or use the appropriate shortcut. +- This ensures that the opening is linked to the wall. + +Window Properties +^^^^^^^^^^^^^^^^^ + +.. note:: + This functionality is not implemented. + +After adding a window, you can customize its properties: + +1. Select the window in the 3D viewport. +2. Go to the ... panel. +3. Find the ... section. +4. Here you can set various properties such as thermal transmittance (U-value), solar heat gain coefficient, or any custom properties required for your project. + +.. note:: + This functionality is not implemented. + +Customize window properties such as: + +- Dimensions +- Window type (e.g. fixed, casement, sliding) +- Glazing options +- Frame material + +Creating Multiple Windows +------------------------- + +To create multiple windows of the same type: + +1. Select the desired window type from the dropdown menu in the top bar. +2. Set the 3D cursor on a wall where you want to place the new window. +3. Select the wall +4. Click "Add" (or press SHIFT+A) for each new window you want to create. +5. Adjust the 3D cursor, position and parameters for each new window as needed. + +Calculating Quantities +---------------------- + +After creating windows, you can calculate quantities: + +1. Select the window(s) you want to measure. +2. Press Q or click "Calculate All Quantities" in the top bar. + +This will update the quantity information for the selected elements. + +See Also +-------- + +- :doc:`../creating_walls` +- :doc:`../../advanced_modeling/material_assignment` \ No newline at end of file diff --git a/src/blenderbim/docs/users/modeling/images/file_new-ifc-project-submenu.png b/src/blenderbim/docs/users/modeling/images/file_new-ifc-project-submenu.png new file mode 100644 index 0000000000..f2fc788817 Binary files /dev/null and b/src/blenderbim/docs/users/modeling/images/file_new-ifc-project-submenu.png differ diff --git a/src/blenderbim/docs/users/modeling/images/outliner.png b/src/blenderbim/docs/users/modeling/images/outliner.png new file mode 100644 index 0000000000..b388ba7502 Binary files /dev/null and b/src/blenderbim/docs/users/modeling/images/outliner.png differ diff --git a/src/blenderbim/docs/users/modeling/images/project-info_unsaved.png b/src/blenderbim/docs/users/modeling/images/project-info_unsaved.png new file mode 100644 index 0000000000..50d988f92b Binary files /dev/null and b/src/blenderbim/docs/users/modeling/images/project-info_unsaved.png differ diff --git a/src/blenderbim/docs/users/modeling/images/project_wizard.png b/src/blenderbim/docs/users/modeling/images/project_wizard.png new file mode 100644 index 0000000000..2aa55a209a Binary files /dev/null and b/src/blenderbim/docs/users/modeling/images/project_wizard.png differ diff --git a/src/blenderbim/docs/users/modeling/starting_new_project.rst b/src/blenderbim/docs/users/modeling/starting_new_project.rst index 503e98f9c8..b37aae0351 100644 --- a/src/blenderbim/docs/users/modeling/starting_new_project.rst +++ b/src/blenderbim/docs/users/modeling/starting_new_project.rst @@ -1,4 +1,143 @@ Starting a New IFC Project ========================== -[Content about starting a new IFC project, including advanced options] +To ensure the best start for your IFC project, follow these steps: + +Start a New Blender Session +--------------------------- + +- Close any open Blender windows. +- Launch a fresh instance of Blender. + +This ensures there are no lingering connections or data from previous projects. + +Create a New IFC Project +------------------------ + +There are two main methods to create a new IFC project: + +Using File Menu (Recommended) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: images/file_new-ifc-project-submenu.png + :alt: New IFC Project submenu options + + New IFC Project submenu options + +1. Go to File > New IFC Project. +2. Choose from the following options: + + - New Metric (m) Project: Creates a project using meters as the base unit. + - New Metric (mm) Project: Creates a project using millimeters as the base unit. + - New Imperial (ft) Project: Creates a project using feet as the base unit. + - New Demo Project: Creates a project with pre-populated demo content. + - New Project Wizard: Opens the Project Info panel for customized setup. + +3. If you chose one of the first four options, your project will be created immediately. +4. New Project Wizard is detailed below. + +Using New Project Wizard / Scene Properties +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: images/project_wizard.png + :alt: Project Wizard in `Scene Properties > Project Overview` subtab + + Project Wizard in `Scene Properties > Project Overview` subtab + + +1. You can access this method in two ways: + + - Go to `File > New IFC Project > New Project Wizard` + - Navigate to Scene `Properties > Project Overview > Project Info` + +2. In the Project Info panel: + + - Choose the IFC Schema (IFC2X3, IFC4, or IFC4X3). + - Select the Unit System (Metric or Imperial). + - Choose Length, Area, and Volume units. + - Select a Template (Blank or IFC4 Demo Template). + +3. Click the "Create Project" button. + +Cleaning the scene +------------------ + +- After creating a new project, BlenderBIM considers the presence of three default Blender objects: + a mesh (usually the default cube), a camera, and a light. +- If have scene setup like this, BlenderBIM will clean it up +- Any customizations you make to the Blender scene before finalizing the IFC project creation will be preserved. + +If you like, you can delete the default cube, camera and light manually. Or create your own objects. +This is only recommended for users proficient in Blender. Otherwise, use the File menu or Create Project button in New Project Wizard. + +Project Initialization +---------------------- + +.. figure:: images/outliner.png + :alt: A basic spatial tree in the Outliner + + A basic spatial tree in the Outliner + + +- A basic spatial tree will be created with `IfcProject > IfcSite > IfcBuilding > IfcStorey`. +- You can view this structure in the Outliner. +- The Project Info panel will update to show details about your new IFC project. + +Saving +------ + +.. figure:: images/project-info_unsaved.png + :alt: Project Info in Unsaved Mode + + Project Info in Unsaved Mode + + +After creating a new project, BlenderBIM enters an Unsaved Mode. It's important to understand how saving works in BlenderBIM: + +**Saving IFC Project**: + - Using the keyboard shortcut `Ctrl+S` or `File > Save IFC Project` will save only the `.ifc` file. + - The `.blend` file remains unsaved and unnamed after this operation. + +**Initial Save**: + - On your first save, you'll be prompted to choose a location and name for your `.ifc` file. + - This does not automatically save a `.blend` file. + +**Blend File Saving**: + - To save the `.blend` file, you need to use Blender's standard `File > Save` or `File > Save As...` options. + - This operation is separate from saving the IFC project. + +**File Menu Options**: + - `File > Save IFC Project` saves only the `.ifc` file. + - `File > Save IFC Project As...` allows you to save the .ifc file to a new location or with a new name. + - Standard Blender save options (`File > Save`, `File > Save As...`) only affect the .blend file. + +**Opening Projects**: + - `File > Open IFC Project` loads only the `.ifc` file. It does not automatically load a corresponding `.blend` file. + - To open a `.blend` file associated with an IFC project, you need to open it separately using Blender's standard open options. + +**Best Practices**: + - Always use `File > Open IFC Project` to load your BIM data. + - If you want to preserve Blender-specific settings or custom scene setups, save the `.blend` file separately. + - Be aware that opening a `.blend` file directly will not load the associated IFC data. + +**For BIM Workflows**: + - Focus on the `.ifc` file as the primary source of truth for your BIM data. + - Use `.blend` files if you need to preserve specific Blender setups or visual configurations, but remember these are secondary to the IFC data. + +Remember, in BlenderBIM, the `.ifc` file contains the critical BIM information. +The `.blend` file is primarily for Blender-specific settings and visual representations. +Always ensure your IFC project is saved before closing Blender or starting a new session. +If you need to preserve Blender-specific configurations, save the `.blend` file separately. + +Remember to save your work regularly using `File > Save IFC Project`. + +Next Steps +---------- + +- Begin modeling your building elements (walls, slabs, etc.). +- Set up project properties and classifications. +- Start defining spaces and zones within your building. + +.. seealso:: + - :doc:`/users/user_interface/property_editor/scene_editor/project_overview/project_info` + - :doc:`/users/user_interface/topbar` \ No newline at end of file diff --git a/src/blenderbim/docs/users/tutorials/files/project0-openings.ifc b/src/blenderbim/docs/users/tutorials/files/project0-openings.ifc new file mode 100644 index 0000000000..eb33028d5c --- /dev/null +++ b/src/blenderbim/docs/users/tutorials/files/project0-openings.ifc @@ -0,0 +1,797 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1'); +FILE_NAME('project0-openings.ifc','2024-06-30T22:10:31+03:00',(),(),'IfcOpenShell 0.0.0','BlenderBIM 0.7.9.240629-2efeb6e','Nobody'); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1ruz1KEL13bhGNm832EdyW',$,'My Project',$,$,$,$,(#14,#26),#9); +#2=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#3=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#4=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#5=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#6=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#7=IFCMEASUREWITHUNIT(IFCREAL(0.0174532925199433),#6); +#8=IFCCONVERSIONBASEDUNIT(#5,.PLANEANGLEUNIT.,'degree',#7); +#9=IFCUNITASSIGNMENT((#4,#2,#8,#3)); +#10=IFCCARTESIANPOINT((0.,0.,0.)); +#11=IFCDIRECTION((0.,0.,1.)); +#12=IFCDIRECTION((1.,0.,0.)); +#13=IFCAXIS2PLACEMENT3D(#10,#11,#12); +#14=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#13,$); +#15=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#16=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#14,$,.GRAPH_VIEW.,$); +#17=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#18=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.SECTION_VIEW.,$); +#19=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.ELEVATION_VIEW.,$); +#20=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#21=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.PLAN_VIEW.,$); +#22=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Profile','Model',*,*,*,*,#14,$,.ELEVATION_VIEW.,$); +#23=IFCCARTESIANPOINT((0.,0.)); +#24=IFCDIRECTION((1.,0.)); +#25=IFCAXIS2PLACEMENT2D(#23,#24); +#26=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Plan',2,1.E-05,#25,$); +#27=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Plan',*,*,*,*,#26,$,.GRAPH_VIEW.,$); +#28=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Plan',*,*,*,*,#26,$,.PLAN_VIEW.,$); +#29=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#26,$,.PLAN_VIEW.,$); +#30=IFCSITE('0Xtg1ZPoD0rRPF1tMl5YSn',$,'My Site',$,$,#53,$,$,$,$,$,$,$,$); +#36=IFCBUILDING('2RSy_igSr7cOzwKV$6TSyC',$,'My Building',$,$,#59,$,$,$,$,$,$); +#42=IFCBUILDINGSTOREY('13XU1BDMP7vuuo9YHmRDn6',$,'My Storey',$,$,#65,$,$,$,$); +#48=IFCRELAGGREGATES('35MbWAr2v8Rgzkp5E_0C$T',$,$,$,#1,(#30)); +#49=IFCCARTESIANPOINT((0.,0.,0.)); +#50=IFCDIRECTION((0.,0.,1.)); +#51=IFCDIRECTION((1.,0.,0.)); +#52=IFCAXIS2PLACEMENT3D(#49,#50,#51); +#53=IFCLOCALPLACEMENT($,#52); +#54=IFCRELAGGREGATES('1hI$oQh$nF1Asiy66InZ8A',$,$,$,#30,(#36)); +#55=IFCCARTESIANPOINT((0.,0.,0.)); +#56=IFCDIRECTION((0.,0.,1.)); +#57=IFCDIRECTION((1.,0.,0.)); +#58=IFCAXIS2PLACEMENT3D(#55,#56,#57); +#59=IFCLOCALPLACEMENT(#53,#58); +#60=IFCRELAGGREGATES('0gS31Nqp52YPpUkTK$vxte',$,$,$,#36,(#42)); +#61=IFCCARTESIANPOINT((0.,0.,0.)); +#62=IFCDIRECTION((0.,0.,1.)); +#63=IFCDIRECTION((1.,0.,0.)); +#64=IFCAXIS2PLACEMENT3D(#61,#62,#63); +#65=IFCLOCALPLACEMENT(#59,#64); +#66=IFCWALLTYPE('1bnwGflOH13wxYBt0xlf8$',$,'Wall200',$,$,(#71),$,$,$,.SOLIDWALL.); +#67=IFCMATERIAL('Unknown',$,$); +#68=IFCMATERIALLAYERSET((#70),$,$); +#69=IFCRELASSOCIATESMATERIAL('1sSOhhGqT6guxXfiedDADx',$,$,$,(#66),#68); +#70=IFCMATERIALLAYER(#67,0.200000002980232,$,$,$,$,$); +#71=IFCPROPERTYSET('2t$kEyDIPF0fumVijI4fMX',$,'EPset_Parametric',$,(#72)); +#72=IFCPROPERTYSINGLEVALUE('LayerSetDirection',$,IFCLABEL('AXIS2'),$); +#73=IFCWALL('2cKYIHmn9FAgfuNu$zAIQL',$,'Wall',$,$,#1225,#81,$,$); +#74=IFCRELCONTAINEDINSPATIALSTRUCTURE('3vtoU2OUT8JfLLZSpkM4RI',$,$,$,(#2476,#73,#2523,#313,#243,#657,#143,#4576,#1980,#2217),#42); +#75=IFCRELDEFINESBYTYPE('3L_4xCCwv1DQNLzDPvRUmb',$,$,$,(#313,#243,#143,#73),#66); +#76=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#77=IFCRELASSOCIATESMATERIAL('1xNNcKrF5Bcf2rkH$rSDFL',$,$,$,(#73),#76); +#81=IFCPRODUCTDEFINITIONSHAPE($,$,(#4614,#4638)); +#97=IFCPROPERTYSET('1M1KH38ALA2hlVsZbmcxAp',$,'EPset_Parametric',$,(#99)); +#98=IFCRELDEFINESBYPROPERTIES('1AUpuQO99DN88KVElfbCPB',$,$,$,(#73),#97); +#99=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#143=IFCWALL('1Bg6FSoNzDMwh2dHDeO2B3',$,'Wall',$,$,#1257,#149,$,$); +#144=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#145=IFCRELASSOCIATESMATERIAL('2UFkQRmAf3U9eTg6okdEuB',$,$,$,(#143),#144); +#149=IFCPRODUCTDEFINITIONSHAPE($,$,(#4641,#4665)); +#165=IFCPROPERTYSET('1bH3Sn1CL869TpIu9xfzRh',$,'EPset_Parametric',$,(#167)); +#166=IFCRELDEFINESBYPROPERTIES('1ykybQGDr5_fuE28Dg8YXp',$,$,$,(#143),#165); +#167=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#243=IFCWALL('2pDrphlTb7b9aZcTL0Gbig',$,'Wall',$,$,#1687,#249,$,$); +#244=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#245=IFCRELASSOCIATESMATERIAL('33kmRMW2jCeBaDJ2Yfhvck',$,$,$,(#243),#244); +#249=IFCPRODUCTDEFINITIONSHAPE($,$,(#4668,#4692)); +#265=IFCPROPERTYSET('1nC$MM6rzE19BVYAu09cNo',$,'EPset_Parametric',$,(#267)); +#266=IFCRELDEFINESBYPROPERTIES('125SpFQrD8vRdkyBialUqy',$,$,$,(#243),#265); +#267=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#313=IFCWALL('3$7_tHA_P1R8BpPsZ5bZgH',$,'Wall',$,$,#1555,#319,$,$); +#314=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#315=IFCRELASSOCIATESMATERIAL('35XEhKaoP0eBFZdT4INp67',$,$,$,(#313),#314); +#319=IFCPRODUCTDEFINITIONSHAPE($,$,(#2301,#2325)); +#335=IFCPROPERTYSET('1ZVwiveqLCRRKCxix4w1hj',$,'EPset_Parametric',$,(#337)); +#336=IFCRELDEFINESBYPROPERTIES('3tQJoqDvL7J8XIcLbIcdAw',$,$,$,(#313),#335); +#337=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#657=IFCWALL('1xyo9vNlHEW9wU7G$bVEu3',$,'Wall',$,$,#1733,#663,$,$); +#663=IFCPRODUCTDEFINITIONSHAPE($,$,(#4565,#4575)); +#679=IFCPROPERTYSET('1jNCD3JEr9LBTN8VtdUrBi',$,'EPset_Parametric',$,(#681)); +#680=IFCRELDEFINESBYPROPERTIES('3SV3QdcsX3VeWnzdbq_2MK',$,$,$,(#657),#679); +#681=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1200=IFCRELCONNECTSPATHELEMENTS('3sCc$O4yr59Bz_4XXWIY_u',$,$,'MITRE',$,#73,#143,(),(),.ATSTART.,.ATEND.); +#1221=IFCCARTESIANPOINT((4.05311584472656E-06,6.,0.)); +#1222=IFCDIRECTION((0.,0.,1.)); +#1223=IFCDIRECTION((-2.82129974493717E-07,-0.99999999999996,0.)); +#1224=IFCAXIS2PLACEMENT3D(#1221,#1222,#1223); +#1225=IFCLOCALPLACEMENT(#65,#1224); +#1253=IFCCARTESIANPOINT((2.36033611145103E-06,-1.37841561081986E-13,0.)); +#1254=IFCDIRECTION((0.,0.,1.)); +#1255=IFCDIRECTION((0.999999999999886,-4.76837158203071E-07,0.)); +#1256=IFCAXIS2PLACEMENT3D(#1253,#1254,#1255); +#1257=IFCLOCALPLACEMENT(#65,#1256); +#1388=IFCRELCONNECTSPATHELEMENTS('3jqkSGapfDxR1D76UVG8rS',$,$,'MITRE',$,#313,#73,(),(),.ATSTART.,.ATEND.); +#1523=IFCRELCONNECTSPATHELEMENTS('08oz6H1Fn4uhqB0SFzcdFe',$,$,'MITRE',$,#313,#243,(),(),.ATEND.,.ATSTART.); +#1551=IFCCARTESIANPOINT((3.00000381469727,5.99999856948853,0.)); +#1552=IFCDIRECTION((0.,0.,1.)); +#1553=IFCDIRECTION((-0.999999999999803,6.27832946520233E-07,0.)); +#1554=IFCAXIS2PLACEMENT3D(#1551,#1552,#1553); +#1555=IFCLOCALPLACEMENT(#65,#1554); +#1655=IFCRELCONNECTSPATHELEMENTS('2AWj4b0Pf9mBLmo5cqlcYd',$,$,'MITRE',$,#243,#143,(),(),.ATEND.,.ATSTART.); +#1683=IFCCARTESIANPOINT((3.,-2.98023223876953E-08,0.)); +#1684=IFCDIRECTION((0.,0.,1.)); +#1685=IFCDIRECTION((6.71544341912371E-07,0.999999999999775,0.)); +#1686=IFCAXIS2PLACEMENT3D(#1683,#1684,#1685); +#1687=IFCLOCALPLACEMENT(#65,#1686); +#1729=IFCCARTESIANPOINT((2.80000185966492,2.99999833106995,0.)); +#1730=IFCDIRECTION((0.,0.,1.)); +#1731=IFCDIRECTION((-0.999999999999924,3.89414367418765E-07,0.)); +#1732=IFCAXIS2PLACEMENT3D(#1729,#1730,#1731); +#1733=IFCLOCALPLACEMENT(#65,#1732); +#1735=IFCRELCONNECTSPATHELEMENTS('0keNMdmYPDDA5d6sO3T38q',$,$,'BUTT',$,#243,#657,(),(),.ATSTART.,.ATPATH.); +#1736=IFCWALLTYPE('2Jy8Q7wa51dxWiwGAEd4L_',$,'Wall100',$,$,(#1737),$,$,$,.SOLIDWALL.); +#1737=IFCPROPERTYSET('3UUDMBwILEQPV2CF4YelXZ',$,'EPset_Parametric',$,(#1738)); +#1738=IFCPROPERTYSINGLEVALUE('LayerSetDirection',$,IFCLABEL('AXIS2'),$); +#1739=IFCRELASSOCIATESMATERIAL('289NgCB1L14uOOjnI4vzXq',$,$,$,(#1736),#1740); +#1740=IFCMATERIALLAYERSET((#1741),$,$); +#1741=IFCMATERIALLAYER(#67,0.100000001490116,$,$,$,$,$); +#1742=IFCRELDEFINESBYTYPE('3aUHiahkP9EuziQCIdTbta',$,$,$,(#657),#1736); +#1743=IFCMATERIALLAYERSETUSAGE(#1740,.AXIS2.,.POSITIVE.,0.,$); +#1744=IFCRELASSOCIATESMATERIAL('3zaQeOeqnDPAxr2_etA4sB',$,$,$,(#657),#1743); +#1825=IFCDOORTYPE('3b6c$eXW13TPR$3kuZMyNw',$,'FrontDoor',$,$,(#1826),(#1835,#1913,#1932),$,$,.DOOR.,.SINGLE_SWING_RIGHT.,$,$); +#1826=IFCPROPERTYSET('32ul6dTo5C5AIQ4i8Iqt7k',$,'BBIM_Door',$,(#1827)); +#1827=IFCPROPERTYSINGLEVALUE('Data',$,IFCTEXT('{"door_type": "SINGLE_SWING_RIGHT", "overall_height": 2.0, "overall_width": 0.8999999761581421, "lining_properties": {"lining_depth": 0.05000000074505806, "lining_thickness": 0.05000000074505806, "lining_offset": 0.0, "lining_to_panel_offset_x": 0.02500000037252903, "lining_to_panel_offset_y": 0.02500000037252903, "transom_thickness": 0.0, "casing_thickness": 0.07500000298023224, "casing_depth": 0.004999999888241291, "threshold_thickness": 0.02500000037252903, "threshold_depth": 0.10000000149011612, "threshold_offset": 0.0}, "panel_properties": {"panel_depth": 0.03500000014901161, "panel_width_ratio": 1.0}}'),$); +#1831=IFCCARTESIANPOINT((0.,0.,0.)); +#1832=IFCDIRECTION((1.,0.,0.)); +#1833=IFCDIRECTION((0.,0.,1.)); +#1834=IFCAXIS2PLACEMENT3D(#1831,#1833,#1832); +#1835=IFCREPRESENTATIONMAP(#1834,#4990); +#1909=IFCCARTESIANPOINT((0.,0.,0.)); +#1910=IFCDIRECTION((1.,0.,0.)); +#1911=IFCDIRECTION((0.,0.,1.)); +#1912=IFCAXIS2PLACEMENT3D(#1909,#1911,#1910); +#1913=IFCREPRESENTATIONMAP(#1912,#5063); +#1928=IFCCARTESIANPOINT((0.,0.,0.)); +#1929=IFCDIRECTION((1.,0.,0.)); +#1930=IFCDIRECTION((0.,0.,1.)); +#1931=IFCAXIS2PLACEMENT3D(#1928,#1930,#1929); +#1932=IFCREPRESENTATIONMAP(#1931,#5077); +#1957=IFCRELDEFINESBYTYPE('1VQRQ88B9AZx2cvypoHkET',$,$,$,(#1980),#1825); +#1980=IFCDOOR('2l2No1_ZDCOg4QdMldCbMd',$,'Door',$,$,#4987,#2011,$,2.,0.899999976158142,$,$,$); +#2004=IFCCARTESIANPOINT((0.,0.,0.)); +#2005=IFCDIRECTION((1.,0.,0.)); +#2006=IFCDIRECTION((0.,1.,0.)); +#2007=IFCDIRECTION((0.,0.,1.)); +#2008=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2005,#2006,#2004,1.,#2007); +#2009=IFCMAPPEDITEM(#1835,#2008); +#2010=IFCSHAPEREPRESENTATION(#22,'Profile','MappedRepresentation',(#2009)); +#2011=IFCPRODUCTDEFINITIONSHAPE($,$,(#2010,#2018,#2025)); +#2012=IFCCARTESIANPOINT((0.,0.,0.)); +#2013=IFCDIRECTION((1.,0.,0.)); +#2014=IFCDIRECTION((0.,1.,0.)); +#2015=IFCDIRECTION((0.,0.,1.)); +#2016=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2013,#2014,#2012,1.,#2015); +#2017=IFCMAPPEDITEM(#1913,#2016); +#2018=IFCSHAPEREPRESENTATION(#15,'Body','MappedRepresentation',(#2017)); +#2019=IFCCARTESIANPOINT((0.,0.,0.)); +#2020=IFCDIRECTION((1.,0.,0.)); +#2021=IFCDIRECTION((0.,1.,0.)); +#2022=IFCDIRECTION((0.,0.,1.)); +#2023=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2020,#2021,#2019,1.,#2022); +#2024=IFCMAPPEDITEM(#1932,#2023); +#2025=IFCSHAPEREPRESENTATION(#28,'Body','MappedRepresentation',(#2024)); +#2026=IFCOPENINGELEMENT('0mUZjl5evF4fv8iY8r1YXS',$,'Opening',$,$,#4982,#2054,$,.OPENING.); +#2042=IFCCARTESIANPOINT((0.,0.,0.)); +#2043=IFCDIRECTION((1.,0.,0.)); +#2044=IFCDIRECTION((0.,0.,1.)); +#2045=IFCAXIS2PLACEMENT3D(#2042,#2044,#2043); +#2046=IFCREPRESENTATIONMAP(#2045,#4972); +#2047=IFCCARTESIANPOINT((0.,0.,0.)); +#2048=IFCDIRECTION((1.,0.,0.)); +#2049=IFCDIRECTION((0.,1.,0.)); +#2050=IFCDIRECTION((0.,0.,1.)); +#2051=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2048,#2049,#2047,1.,#2050); +#2052=IFCMAPPEDITEM(#2046,#2051); +#2053=IFCSHAPEREPRESENTATION(#15,'Body','MappedRepresentation',(#2052)); +#2054=IFCPRODUCTDEFINITIONSHAPE($,$,(#2053)); +#2055=IFCRELVOIDSELEMENT('2X_CjjM6H1DAAmZ8CDKzo_',$,$,$,#143,#2026); +#2061=IFCRELFILLSELEMENT('3779GWCxX4KhEhR$1o2ntW',$,$,$,#2026,#1980); +#2062=IFCDOORTYPE('10lQDy74b21RRacim$XXbc',$,'BackDoor',$,$,(#2063),(#2072,#2150,#2169),$,$,.DOOR.,.SINGLE_SWING_LEFT.,$,$); +#2063=IFCPROPERTYSET('3wW6ige9955A7ftbFSjRwa',$,'BBIM_Door',$,(#2064)); +#2064=IFCPROPERTYSINGLEVALUE('Data',$,IFCTEXT('{"door_type": "SINGLE_SWING_LEFT", "overall_height": 2.0, "overall_width": 0.8999999761581421, "lining_properties": {"lining_depth": 0.05000000074505806, "lining_thickness": 0.05000000074505806, "lining_offset": 0.0, "lining_to_panel_offset_x": 0.02500000037252903, "lining_to_panel_offset_y": 0.02500000037252903, "transom_thickness": 0.0, "casing_thickness": 0.07500000298023224, "casing_depth": 0.004999999888241291, "threshold_thickness": 0.02500000037252903, "threshold_depth": 0.10000000149011612, "threshold_offset": 0.0}, "panel_properties": {"panel_depth": 0.03500000014901161, "panel_width_ratio": 1.0}}'),$); +#2065=IFCCARTESIANPOINTLIST3D(((0.,0.,0.),(0.899999976158142,0.,0.),(0.899999976158142,0.,2.),(0.,0.,2.))); +#2066=IFCINDEXEDPOLYCURVE(#2065,(IFCLINEINDEX((1,2,3,4,1))),$); +#2067=IFCSHAPEREPRESENTATION(#22,'Profile','Curve3D',(#2066)); +#2068=IFCCARTESIANPOINT((0.,0.,0.)); +#2069=IFCDIRECTION((1.,0.,0.)); +#2070=IFCDIRECTION((0.,0.,1.)); +#2071=IFCAXIS2PLACEMENT3D(#2068,#2070,#2069); +#2072=IFCREPRESENTATIONMAP(#2071,#2067); +#2073=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.),(0.899999976158142,2.),(0.899999976158142,0.),(0.875,0.),(0.875,1.97500002384186),(0.025000000372529,1.97500002384186),(0.025000000372529,0.))); +#2074=IFCINDEXEDPOLYCURVE(#2073,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#2075=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2074); +#2076=IFCCARTESIANPOINT((0.,0.025000000372529,0.)); +#2077=IFCDIRECTION((0.,-1.,0.)); +#2078=IFCDIRECTION((1.,0.,0.)); +#2079=IFCAXIS2PLACEMENT3D(#2076,#2077,#2078); +#2080=IFCDIRECTION((0.,0.,-1.)); +#2081=IFCEXTRUDEDAREASOLID(#2075,#2079,#2080,0.025000000372529); +#2082=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.),(0.899999976158142,2.),(0.899999976158142,0.),(0.849999964237213,0.),(0.849999964237213,1.95000004768372),(0.0500000007450581,1.95000004768372),(0.0500000007450581,0.))); +#2083=IFCINDEXEDPOLYCURVE(#2082,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#2084=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2083); +#2085=IFCCARTESIANPOINT((0.,0.,0.)); +#2086=IFCDIRECTION((0.,-1.,0.)); +#2087=IFCDIRECTION((1.,0.,0.)); +#2088=IFCAXIS2PLACEMENT3D(#2085,#2086,#2087); +#2089=IFCDIRECTION((0.,0.,-1.)); +#2090=IFCEXTRUDEDAREASOLID(#2084,#2088,#2089,0.025000000372529); +#2091=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.799999952316284,0.),(0.799999952316284,0.100000001490116),(0.,0.100000001490116))); +#2092=IFCINDEXEDPOLYCURVE(#2091,(IFCLINEINDEX((1,2,3,4,1))),$); +#2093=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2092); +#2094=IFCCARTESIANPOINT((0.0500000007450581,0.,0.)); +#2095=IFCDIRECTION((0.,0.,1.)); +#2096=IFCDIRECTION((1.,0.,0.)); +#2097=IFCAXIS2PLACEMENT3D(#2094,#2095,#2096); +#2098=IFCDIRECTION((0.,0.,1.)); +#2099=IFCEXTRUDEDAREASOLID(#2093,#2097,#2098,0.025000000372529); +#2100=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.02500009536743),(0.949999988079071,2.02500009536743),(0.949999988079071,0.),(0.875,0.),(0.875,1.95000004768372),(0.0750000029802322,1.95000004768372),(0.0750000029802322,0.))); +#2101=IFCINDEXEDPOLYCURVE(#2100,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#2102=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2101); +#2103=IFCCARTESIANPOINT((-0.0250000022351742,-0.00499999988824129,0.)); +#2104=IFCDIRECTION((0.,-1.,0.)); +#2105=IFCDIRECTION((1.,0.,0.)); +#2106=IFCAXIS2PLACEMENT3D(#2103,#2104,#2105); +#2107=IFCDIRECTION((0.,0.,-1.)); +#2108=IFCEXTRUDEDAREASOLID(#2102,#2106,#2107,0.00499999988824129); +#2109=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.02500009536743),(0.949999988079071,2.02500009536743),(0.949999988079071,0.),(0.899999976158142,0.),(0.899999976158142,1.97500014305115),(0.0500000044703484,1.97500014305115),(0.0500000044703484,0.))); +#2110=IFCINDEXEDPOLYCURVE(#2109,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#2111=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2110); +#2112=IFCCARTESIANPOINT((-0.0250000022351742,0.0500000007450581,0.)); +#2113=IFCDIRECTION((0.,-1.,0.)); +#2114=IFCDIRECTION((1.,0.,0.)); +#2115=IFCAXIS2PLACEMENT3D(#2112,#2113,#2114); +#2116=IFCDIRECTION((0.,0.,-1.)); +#2117=IFCEXTRUDEDAREASOLID(#2111,#2115,#2116,0.00499999988824129); +#2118=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.849999964237213,0.),(0.849999964237213,0.0350000001490116),(0.,0.0350000001490116))); +#2119=IFCINDEXEDPOLYCURVE(#2118,(IFCLINEINDEX((1,2,3,4,1))),$); +#2120=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2119); +#2121=IFCCARTESIANPOINT((0.025000000372529,0.025000000372529,0.025000000372529)); +#2122=IFCDIRECTION((0.,0.,1.)); +#2123=IFCDIRECTION((1.,0.,0.)); +#2124=IFCAXIS2PLACEMENT3D(#2121,#2122,#2123); +#2125=IFCDIRECTION((0.,0.,1.)); +#2126=IFCEXTRUDEDAREASOLID(#2120,#2124,#2125,1.95000004768372); +#2127=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,-0.0400000028312206),(-0.120000004768372,-0.0400000028312206),(-0.120000004768372,-0.0200000014156103),(-0.0200000405311584,-0.0200000014156103),(-0.0200000405311584,0.))); +#2128=IFCINDEXEDPOLYCURVE(#2127,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#2129=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2128); +#2130=IFCCARTESIANPOINT((0.824999988079071,0.025000000372529,1.01499998569489)); +#2131=IFCDIRECTION((0.,0.,1.)); +#2132=IFCDIRECTION((1.,0.,0.)); +#2133=IFCAXIS2PLACEMENT3D(#2130,#2131,#2132); +#2134=IFCDIRECTION((0.,0.,1.)); +#2135=IFCEXTRUDEDAREASOLID(#2129,#2133,#2134,0.0200000014156103); +#2136=IFCEXTRUDEDAREASOLID(#2137,#2140,#2144,0.0200000014156103); +#2137=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2138); +#2138=IFCINDEXEDPOLYCURVE(#2139,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#2139=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.0400000065565109),(-0.120000004768372,0.0400000065565109),(-0.120000004768372,0.0199999958276749),(-0.0200000405311584,0.0199999958276749),(-0.0200000405311584,0.))); +#2140=IFCAXIS2PLACEMENT3D(#2141,#2142,#2143); +#2141=IFCCARTESIANPOINT((0.824999988079071,0.0600000023841858,1.01499998569489)); +#2142=IFCDIRECTION((0.,0.,1.)); +#2143=IFCDIRECTION((1.,0.,0.)); +#2144=IFCDIRECTION((0.,0.,1.)); +#2145=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#2081,#2090,#2126,#2135,#2136,#2099,#2108,#2117)); +#2146=IFCCARTESIANPOINT((0.,0.,0.)); +#2147=IFCDIRECTION((1.,0.,0.)); +#2148=IFCDIRECTION((0.,0.,1.)); +#2149=IFCAXIS2PLACEMENT3D(#2146,#2148,#2147); +#2150=IFCREPRESENTATIONMAP(#2149,#2145); +#2151=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.0500000007450581),(0.025000000372529,0.0500000007450581),(0.025000000372529,0.025000000372529),(0.0500000007450581,0.025000000372529),(0.0500000007450581,0.))); +#2152=IFCINDEXEDPOLYCURVE(#2151,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#2153=IFCINDEXEDPOLYCURVE(#2154,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#2154=IFCCARTESIANPOINTLIST2D(((0.899999976158142,0.),(0.899999976158142,0.0500000007450581),(0.875,0.0500000007450581),(0.875,0.025000000372529),(0.849999964237213,0.025000000372529),(0.849999964237213,0.))); +#2155=IFCDIRECTION((1.,0.)); +#2156=IFCCARTESIANPOINT((0.0600000023841858,0.0500000007450581)); +#2157=IFCAXIS2PLACEMENT2D(#2156,#2155); +#2158=IFCELLIPSE(#2157,0.814999964088202,0.849999964237213); +#2159=IFCCARTESIANPOINT((0.874999940395355,0.0500000007450581)); +#2160=IFCCARTESIANPOINT((0.0600000023841858,0.899999976158142)); +#2161=IFCTRIMMEDCURVE(#2158,(#2159),(#2160),.T.,.CARTESIAN.); +#2162=IFCCARTESIANPOINTLIST2D(((0.025000000372529,0.0500000007450581),(0.0600000023841858,0.0500000007450581),(0.0600000023841858,0.899999976158142),(0.025000000372529,0.899999976158142))); +#2163=IFCINDEXEDPOLYCURVE(#2162,(IFCLINEINDEX((1,2,3,4,1))),$); +#2164=IFCSHAPEREPRESENTATION(#28,'Body','Curve2D',(#2152,#2153,#2161,#2163)); +#2165=IFCCARTESIANPOINT((0.,0.,0.)); +#2166=IFCDIRECTION((1.,0.,0.)); +#2167=IFCDIRECTION((0.,0.,1.)); +#2168=IFCAXIS2PLACEMENT3D(#2165,#2167,#2166); +#2169=IFCREPRESENTATIONMAP(#2168,#2164); +#2194=IFCRELDEFINESBYTYPE('2ZOVPP0lz1gvTdee$h8jzp',$,$,$,(#2217),#2062); +#2217=IFCDOOR('1MSioZFD9Ebf659dK$TEWz',$,'Door',$,$,#2340,#2248,$,2.,0.899999976158142,$,$,$); +#2241=IFCCARTESIANPOINT((0.,0.,0.)); +#2242=IFCDIRECTION((1.,0.,0.)); +#2243=IFCDIRECTION((0.,1.,0.)); +#2244=IFCDIRECTION((0.,0.,1.)); +#2245=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2242,#2243,#2241,1.,#2244); +#2246=IFCMAPPEDITEM(#2072,#2245); +#2247=IFCSHAPEREPRESENTATION(#22,'Profile','MappedRepresentation',(#2246)); +#2248=IFCPRODUCTDEFINITIONSHAPE($,$,(#2247,#2255,#2262)); +#2249=IFCCARTESIANPOINT((0.,0.,0.)); +#2250=IFCDIRECTION((1.,0.,0.)); +#2251=IFCDIRECTION((0.,1.,0.)); +#2252=IFCDIRECTION((0.,0.,1.)); +#2253=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2250,#2251,#2249,1.,#2252); +#2254=IFCMAPPEDITEM(#2150,#2253); +#2255=IFCSHAPEREPRESENTATION(#15,'Body','MappedRepresentation',(#2254)); +#2256=IFCCARTESIANPOINT((0.,0.,0.)); +#2257=IFCDIRECTION((1.,0.,0.)); +#2258=IFCDIRECTION((0.,1.,0.)); +#2259=IFCDIRECTION((0.,0.,1.)); +#2260=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2257,#2258,#2256,1.,#2259); +#2261=IFCMAPPEDITEM(#2169,#2260); +#2262=IFCSHAPEREPRESENTATION(#28,'Body','MappedRepresentation',(#2261)); +#2263=IFCOPENINGELEMENT('1OTQbDu2P6yvZQBkgdoZ4i',$,'Opening',$,$,#2335,#2291,$,.OPENING.); +#2269=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.899999976158142,0.),(0.899999976158142,2.),(0.,2.))); +#2270=IFCINDEXEDPOLYCURVE(#2269,(IFCLINEINDEX((1,2,3,4,1))),$); +#2271=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2270); +#2272=IFCCARTESIANPOINT((0.,-0.600000023841858,0.)); +#2273=IFCDIRECTION((0.,-1.,0.)); +#2274=IFCDIRECTION((1.,0.,0.)); +#2275=IFCAXIS2PLACEMENT3D(#2272,#2273,#2274); +#2276=IFCDIRECTION((0.,0.,-1.)); +#2277=IFCEXTRUDEDAREASOLID(#2271,#2275,#2276,1.2); +#2278=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#2277)); +#2279=IFCCARTESIANPOINT((0.,0.,0.)); +#2280=IFCDIRECTION((1.,0.,0.)); +#2281=IFCDIRECTION((0.,0.,1.)); +#2282=IFCAXIS2PLACEMENT3D(#2279,#2281,#2280); +#2283=IFCREPRESENTATIONMAP(#2282,#2278); +#2284=IFCCARTESIANPOINT((0.,0.,0.)); +#2285=IFCDIRECTION((1.,0.,0.)); +#2286=IFCDIRECTION((0.,1.,0.)); +#2287=IFCDIRECTION((0.,0.,1.)); +#2288=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2285,#2286,#2284,1.,#2287); +#2289=IFCMAPPEDITEM(#2283,#2288); +#2290=IFCSHAPEREPRESENTATION(#15,'Body','MappedRepresentation',(#2289)); +#2291=IFCPRODUCTDEFINITIONSHAPE($,$,(#2290)); +#2292=IFCRELVOIDSELEMENT('3zm7LVx8r1uRxyw5zPJfhr',$,$,$,#313,#2263); +#2298=IFCRELFILLSELEMENT('3$HtXMAUr9mxpgBVdy1PUg',$,$,$,#2263,#2217); +#2299=IFCCARTESIANPOINTLIST2D(((-4.77004959975602E-08,2.38472921409993E-08),(3.,-2.54463117244086E-12))); +#2300=IFCINDEXEDPOLYCURVE(#2299,$,.F.); +#2301=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#2300)); +#2302=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(3.00000000000061,0.200000002980232),(3.00000000000061,0.),(0.,0.))); +#2303=IFCINDEXEDPOLYCURVE(#2302,$,.F.); +#2304=IFCDIRECTION((0.,0.,1.)); +#2305=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#2303); +#2306=IFCCARTESIANPOINT((0.,0.,0.)); +#2307=IFCDIRECTION((0.,0.,1.)); +#2308=IFCDIRECTION((1.,0.,0.)); +#2309=IFCAXIS2PLACEMENT3D(#2306,#2307,#2308); +#2310=IFCEXTRUDEDAREASOLID(#2305,#2309,#2304,2.79999995231628); +#2311=IFCCARTESIANPOINT((-4.77007233712357E-08,5.00684450344124E-07,0.)); +#2312=IFCDIRECTION((-0.707105100154877,0.707108497619629,0.)); +#2313=IFCDIRECTION((0.707108479916841,0.707105082452173,-0.)); +#2314=IFCAXIS2PLACEMENT3D(#2311,#2312,#2313); +#2315=IFCPLANE(#2314); +#2316=IFCHALFSPACESOLID(#2315,.F.); +#2317=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#2310,#2316); +#2318=IFCCARTESIANPOINT((3.,-2.54463117244086E-12,0.)); +#2319=IFCDIRECTION((0.707106113433838,0.707107424736023,0.)); +#2320=IFCDIRECTION((0.707107436837347,-0.70710612553514,0.)); +#2321=IFCAXIS2PLACEMENT3D(#2318,#2319,#2320); +#2322=IFCPLANE(#2321); +#2323=IFCHALFSPACESOLID(#2322,.F.); +#2324=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#2317,#2323); +#2325=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#2324)); +#2331=IFCCARTESIANPOINT((0.900551080703862,8.85584849896759E-08,3.59460216259322E-07)); +#2332=IFCDIRECTION((0.,0.,1.)); +#2333=IFCDIRECTION((1.,-2.11758236813575E-22,0.)); +#2334=IFCAXIS2PLACEMENT3D(#2331,#2332,#2333); +#2335=IFCLOCALPLACEMENT(#1555,#2334); +#2336=IFCCARTESIANPOINT((-4.44089209850063E-16,0.,0.)); +#2337=IFCDIRECTION((0.,0.,1.)); +#2338=IFCDIRECTION((1.,0.,0.)); +#2339=IFCAXIS2PLACEMENT3D(#2336,#2337,#2338); +#2340=IFCLOCALPLACEMENT(#2335,#2339); +#2395=IFCWINDOWTYPE('0BjGReZfT0ketTGn61yOwd',$,'FrontWindow',$,$,(#2396),(#2405,#2453,#2475),$,$,.WINDOW.,.SINGLE_PANEL.,$,$); +#2396=IFCPROPERTYSET('2qUT_6ss51lvcs1Vc7VNfs',$,'BBIM_Window',$,(#2397)); +#2397=IFCPROPERTYSINGLEVALUE('Data',$,IFCTEXT('{"window_type": "SINGLE_PANEL", "overall_height": 1.0, "overall_width": 1.0, "lining_properties": {"lining_depth": 0.05000000074505806, "lining_thickness": 0.05000000074505806, "lining_offset": 0.05000000074505806, "lining_to_panel_offset_x": 0.02500000037252903, "lining_to_panel_offset_y": 0.02500000037252903}, "panel_properties": {"frame_depth": [0.03500000014901161, 0.03500000014901161, 0.03500000014901161], "frame_thickness": [0.03500000014901161, 0.03500000014901161, 0.03500000014901161]}}'),$); +#2401=IFCCARTESIANPOINT((0.,0.,0.)); +#2402=IFCDIRECTION((1.,0.,0.)); +#2403=IFCDIRECTION((0.,0.,1.)); +#2404=IFCAXIS2PLACEMENT3D(#2401,#2403,#2402); +#2405=IFCREPRESENTATIONMAP(#2404,#3079); +#2449=IFCCARTESIANPOINT((0.,0.,0.)); +#2450=IFCDIRECTION((1.,0.,0.)); +#2451=IFCDIRECTION((0.,0.,1.)); +#2452=IFCAXIS2PLACEMENT3D(#2449,#2451,#2450); +#2453=IFCREPRESENTATIONMAP(#2452,#3122); +#2471=IFCCARTESIANPOINT((0.,0.,0.)); +#2472=IFCDIRECTION((1.,0.,0.)); +#2473=IFCDIRECTION((0.,0.,1.)); +#2474=IFCAXIS2PLACEMENT3D(#2471,#2473,#2472); +#2475=IFCREPRESENTATIONMAP(#2474,#3139); +#2476=IFCWINDOW('2PkSWmOu12nPo9GYkWy9DF',$,'Window',$,$,#2499,#2508,$,1.,1.,$,$,$); +#2495=IFCCARTESIANPOINT((0.,0.,0.)); +#2496=IFCDIRECTION((0.,0.,1.)); +#2497=IFCDIRECTION((1.,0.,0.)); +#2498=IFCAXIS2PLACEMENT3D(#2495,#2496,#2497); +#2499=IFCLOCALPLACEMENT(#65,#2498); +#2500=IFCRELDEFINESBYTYPE('2qg4Ggr1DAuetHCJc4WRY9',$,$,$,(#2476,#2523),#2395); +#2501=IFCCARTESIANPOINT((0.,0.,0.)); +#2502=IFCDIRECTION((1.,0.,0.)); +#2503=IFCDIRECTION((0.,1.,0.)); +#2504=IFCDIRECTION((0.,0.,1.)); +#2505=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2502,#2503,#2501,1.,#2504); +#2506=IFCMAPPEDITEM(#2405,#2505); +#2507=IFCSHAPEREPRESENTATION(#22,'Profile','MappedRepresentation',(#2506)); +#2508=IFCPRODUCTDEFINITIONSHAPE($,$,(#2507,#2515,#2522)); +#2509=IFCCARTESIANPOINT((0.,0.,0.)); +#2510=IFCDIRECTION((1.,0.,0.)); +#2511=IFCDIRECTION((0.,1.,0.)); +#2512=IFCDIRECTION((0.,0.,1.)); +#2513=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2510,#2511,#2509,1.,#2512); +#2514=IFCMAPPEDITEM(#2453,#2513); +#2515=IFCSHAPEREPRESENTATION(#15,'Body','MappedRepresentation',(#2514)); +#2516=IFCCARTESIANPOINT((0.,0.,0.)); +#2517=IFCDIRECTION((1.,0.,0.)); +#2518=IFCDIRECTION((0.,1.,0.)); +#2519=IFCDIRECTION((0.,0.,1.)); +#2520=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2517,#2518,#2516,1.,#2519); +#2521=IFCMAPPEDITEM(#2475,#2520); +#2522=IFCSHAPEREPRESENTATION(#28,'Body','MappedRepresentation',(#2521)); +#2523=IFCWINDOW('0qZS8BpZ56_g1bwBsKQXaD',$,'Window',$,$,#3929,#2554,$,1.,1.,$,.SINGLE_PANEL.,$); +#2547=IFCCARTESIANPOINT((0.,0.,0.)); +#2548=IFCDIRECTION((1.,0.,0.)); +#2549=IFCDIRECTION((0.,1.,0.)); +#2550=IFCDIRECTION((0.,0.,1.)); +#2551=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2548,#2549,#2547,1.,#2550); +#2552=IFCMAPPEDITEM(#2405,#2551); +#2553=IFCSHAPEREPRESENTATION(#22,'Profile','MappedRepresentation',(#2552)); +#2554=IFCPRODUCTDEFINITIONSHAPE($,$,(#2553,#2561,#2568)); +#2555=IFCCARTESIANPOINT((0.,0.,0.)); +#2556=IFCDIRECTION((1.,0.,0.)); +#2557=IFCDIRECTION((0.,1.,0.)); +#2558=IFCDIRECTION((0.,0.,1.)); +#2559=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2556,#2557,#2555,1.,#2558); +#2560=IFCMAPPEDITEM(#2453,#2559); +#2561=IFCSHAPEREPRESENTATION(#15,'Body','MappedRepresentation',(#2560)); +#2562=IFCCARTESIANPOINT((0.,0.,0.)); +#2563=IFCDIRECTION((1.,0.,0.)); +#2564=IFCDIRECTION((0.,1.,0.)); +#2565=IFCDIRECTION((0.,0.,1.)); +#2566=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2563,#2564,#2562,1.,#2565); +#2567=IFCMAPPEDITEM(#2475,#2566); +#2568=IFCSHAPEREPRESENTATION(#28,'Body','MappedRepresentation',(#2567)); +#2569=IFCOPENINGELEMENT('1xSbpUeeP8dByDa4kwYkMT',$,'Opening',$,$,#3282,#2597,$,.OPENING.); +#2585=IFCCARTESIANPOINT((0.,0.,0.)); +#2586=IFCDIRECTION((1.,0.,0.)); +#2587=IFCDIRECTION((0.,0.,1.)); +#2588=IFCAXIS2PLACEMENT3D(#2585,#2587,#2586); +#2589=IFCREPRESENTATIONMAP(#2588,#3149); +#2590=IFCCARTESIANPOINT((0.,0.,0.)); +#2591=IFCDIRECTION((1.,0.,0.)); +#2592=IFCDIRECTION((0.,1.,0.)); +#2593=IFCDIRECTION((0.,0.,1.)); +#2594=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#2591,#2592,#2590,1.,#2593); +#2595=IFCMAPPEDITEM(#2589,#2594); +#2596=IFCSHAPEREPRESENTATION(#15,'Body','MappedRepresentation',(#2595)); +#2597=IFCPRODUCTDEFINITIONSHAPE($,$,(#2596)); +#2598=IFCRELVOIDSELEMENT('1iTnJZi0jEHeXibNeq6Pzk',$,$,$,#143,#2569); +#2604=IFCRELFILLSELEMENT('2dhHghaxf2ngjRrgxGmGMX',$,$,$,#2569,#2523); +#3077=IFCCARTESIANPOINTLIST3D(((0.,0.,0.),(1.,0.,0.),(1.,0.,1.),(0.,0.,1.))); +#3078=IFCINDEXEDPOLYCURVE(#3077,(IFCLINEINDEX((1,2,3,4,1))),$); +#3079=IFCSHAPEREPRESENTATION(#22,'Profile','Curve3D',(#3078)); +#3080=IFCCARTESIANPOINTLIST2D(((0.,0.),(1.,0.),(1.,1.),(0.,1.))); +#3081=IFCINDEXEDPOLYCURVE(#3080,(IFCLINEINDEX((1,2,3,4,1))),$); +#3082=IFCCARTESIANPOINTLIST2D(((0.025000000372529,0.025000000372529),(0.974999964237213,0.025000000372529),(0.974999964237213,0.974999964237213),(0.025000000372529,0.974999964237213))); +#3083=IFCINDEXEDPOLYCURVE(#3082,(IFCLINEINDEX((1,2,3,4,1))),$); +#3084=IFCARBITRARYPROFILEDEFWITHVOIDS(.AREA.,$,#3081,(#3083)); +#3085=IFCCARTESIANPOINT((0.,0.0900000035762787,0.)); +#3086=IFCDIRECTION((0.,-1.,0.)); +#3087=IFCDIRECTION((1.,0.,0.)); +#3088=IFCAXIS2PLACEMENT3D(#3085,#3086,#3087); +#3089=IFCDIRECTION((0.,0.,-1.)); +#3090=IFCEXTRUDEDAREASOLID(#3084,#3088,#3089,0.00999999977648258); +#3091=IFCCARTESIANPOINTLIST2D(((0.,0.),(1.,0.),(1.,1.),(0.,1.))); +#3092=IFCINDEXEDPOLYCURVE(#3091,(IFCLINEINDEX((1,2,3,4,1))),$); +#3093=IFCCARTESIANPOINTLIST2D(((0.0500000007450581,0.0500000007450581),(0.949999988079071,0.0500000007450581),(0.949999988079071,0.949999988079071),(0.0500000007450581,0.949999988079071))); +#3094=IFCINDEXEDPOLYCURVE(#3093,(IFCLINEINDEX((1,2,3,4,1))),$); +#3095=IFCARBITRARYPROFILEDEFWITHVOIDS(.AREA.,$,#3092,(#3094)); +#3096=IFCCARTESIANPOINT((0.,0.0500000007450581,0.)); +#3097=IFCDIRECTION((0.,-1.,0.)); +#3098=IFCDIRECTION((1.,0.,0.)); +#3099=IFCAXIS2PLACEMENT3D(#3096,#3097,#3098); +#3100=IFCDIRECTION((0.,0.,-1.)); +#3101=IFCEXTRUDEDAREASOLID(#3095,#3099,#3100,0.0399999991059303); +#3102=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.949999988079071,0.),(0.949999988079071,0.949999988079071),(0.,0.949999988079071))); +#3103=IFCINDEXEDPOLYCURVE(#3102,(IFCLINEINDEX((1,2,3,4,1))),$); +#3104=IFCCARTESIANPOINTLIST2D(((0.0350000001490116,0.0350000001490116),(0.915000021457672,0.0350000001490116),(0.915000021457672,0.915000021457672),(0.0350000001490116,0.915000021457672))); +#3105=IFCINDEXEDPOLYCURVE(#3104,(IFCLINEINDEX((1,2,3,4,1))),$); +#3106=IFCARBITRARYPROFILEDEFWITHVOIDS(.AREA.,$,#3103,(#3105)); +#3107=IFCCARTESIANPOINT((0.025000000372529,0.0900000035762787,0.025000000372529)); +#3108=IFCDIRECTION((0.,-1.,0.)); +#3109=IFCDIRECTION((1.,0.,0.)); +#3110=IFCAXIS2PLACEMENT3D(#3107,#3108,#3109); +#3111=IFCDIRECTION((0.,0.,-1.)); +#3112=IFCEXTRUDEDAREASOLID(#3106,#3110,#3111,0.0350000001490116); +#3113=IFCINDEXEDPOLYCURVE(#3114,(IFCLINEINDEX((1,2,3,4,1))),$); +#3114=IFCCARTESIANPOINTLIST2D(((0.0350000001490116,0.0350000001490116),(0.915000021457672,0.0350000001490116),(0.915000021457672,0.915000021457672),(0.0350000001490116,0.915000021457672))); +#3115=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#3113); +#3116=IFCCARTESIANPOINT((0.025000000372529,0.10249999910593,0.025000000372529)); +#3117=IFCDIRECTION((0.,-1.,0.)); +#3118=IFCDIRECTION((1.,0.,0.)); +#3119=IFCAXIS2PLACEMENT3D(#3116,#3117,#3118); +#3120=IFCDIRECTION((0.,0.,-1.)); +#3121=IFCEXTRUDEDAREASOLID(#3115,#3119,#3120,0.01); +#3122=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#3090,#3101,#3112,#3121)); +#3123=IFCCARTESIANPOINTLIST2D(((0.0500000007450581,0.0500000007450581),(0.949999988079071,0.0500000007450581))); +#3124=IFCINDEXEDPOLYCURVE(#3123,$,$); +#3125=IFCCARTESIANPOINTLIST2D(((0.,0.100000001490116),(0.025000000372529,0.100000001490116),(0.025000000372529,0.0900000035762787),(0.0500000007450581,0.0900000035762787),(0.0500000007450581,0.0500000007450581),(0.,0.0500000007450581))); +#3126=IFCINDEXEDPOLYCURVE(#3125,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#3127=IFCCARTESIANPOINTLIST2D(((1.,0.100000001490116),(0.975000023841858,0.100000001490116),(0.975000023841858,0.0900000035762787),(0.949999988079071,0.0900000035762787),(0.949999988079071,0.0500000007450581),(1.,0.0500000007450581))); +#3128=IFCINDEXEDPOLYCURVE(#3127,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#3129=IFCCARTESIANPOINTLIST2D(((0.025000000372529,0.0900000035762787),(0.0600000023841858,0.0900000035762787),(0.0600000023841858,0.125),(0.025000000372529,0.125))); +#3130=IFCINDEXEDPOLYCURVE(#3129,(IFCLINEINDEX((1,2,3,4,1))),$); +#3131=IFCINDEXEDPOLYCURVE(#3132,(IFCLINEINDEX((1,2,3,4,1))),$); +#3132=IFCCARTESIANPOINTLIST2D(((0.974999964237213,0.0900000035762787),(0.939999938011169,0.0900000035762787),(0.939999938011169,0.125),(0.974999964237213,0.125))); +#3133=IFCCARTESIANPOINTLIST2D(((0.0600000023841858,0.0900000035762787),(0.939999997615814,0.0900000035762787))); +#3134=IFCINDEXEDPOLYCURVE(#3133,$,$); +#3135=IFCINDEXEDPOLYCURVE(#3136,$,$); +#3136=IFCCARTESIANPOINTLIST2D(((0.0600000023841858,0.125),(0.939999997615814,0.125))); +#3137=IFCINDEXEDPOLYCURVE(#3138,$,$); +#3138=IFCCARTESIANPOINTLIST2D(((0.0600000023841858,0.107500001788139),(0.939999997615814,0.107500001788139))); +#3139=IFCSHAPEREPRESENTATION(#28,'Body','Curve2D',(#3124,#3126,#3128,#3130,#3131,#3134,#3135,#3137)); +#3140=IFCCARTESIANPOINTLIST2D(((0.,0.),(1.,0.),(1.,1.),(0.,1.))); +#3141=IFCINDEXEDPOLYCURVE(#3140,(IFCLINEINDEX((1,2,3,4,1))),$); +#3142=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#3141); +#3143=IFCCARTESIANPOINT((0.,-0.600000023841858,0.)); +#3144=IFCDIRECTION((0.,-1.,0.)); +#3145=IFCDIRECTION((1.,0.,0.)); +#3146=IFCAXIS2PLACEMENT3D(#3143,#3144,#3145); +#3147=IFCDIRECTION((0.,0.,-1.)); +#3148=IFCEXTRUDEDAREASOLID(#3142,#3146,#3147,1.2); +#3149=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#3148)); +#3278=IFCCARTESIANPOINT((0.584973597534382,1.1920355547089E-07,0.999735832214355)); +#3279=IFCDIRECTION((0.,0.,1.)); +#3280=IFCDIRECTION((1.,3.17637355220363E-22,0.)); +#3281=IFCAXIS2PLACEMENT3D(#3278,#3279,#3280); +#3282=IFCLOCALPLACEMENT(#1257,#3281); +#3825=IFCCARTESIANPOINT((0.516215523878906,0.1000003440729,0.150617599487305)); +#3826=IFCDIRECTION((0.,0.,1.)); +#3827=IFCDIRECTION((1.,2.64697796016969E-22,0.)); +#3828=IFCAXIS2PLACEMENT3D(#3825,#3826,#3827); +#3829=IFCLOCALPLACEMENT(#1733,#3828); +#3925=IFCCARTESIANPOINT((0.0251655578613879,-1.19203548365463E-07,-0.000652790069580078)); +#3926=IFCDIRECTION((0.,0.,1.)); +#3927=IFCDIRECTION((1.,0.,0.)); +#3928=IFCAXIS2PLACEMENT3D(#3925,#3926,#3927); +#3929=IFCLOCALPLACEMENT(#3282,#3928); +#4563=IFCCARTESIANPOINTLIST2D(((-0.200000315904617,2.38489974435652E-08),(2.59999990463257,1.60534938231649E-07))); +#4564=IFCINDEXEDPOLYCURVE(#4563,$,.F.); +#4565=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#4564)); +#4566=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.100000001490116),(2.599999860617,0.100000001490116),(2.599999860617,0.),(0.,0.))); +#4567=IFCINDEXEDPOLYCURVE(#4566,$,.F.); +#4568=IFCDIRECTION((0.,0.,1.)); +#4569=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#4567); +#4570=IFCCARTESIANPOINT((0.,0.,0.)); +#4571=IFCDIRECTION((0.,0.,1.)); +#4572=IFCDIRECTION((1.,0.,0.)); +#4573=IFCAXIS2PLACEMENT3D(#4570,#4571,#4572); +#4574=IFCEXTRUDEDAREASOLID(#4569,#4573,#4568,2.79999995231628); +#4575=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#4574)); +#4576=IFCOPENINGELEMENT('2ONOUU2wnDmeCks0mZ2fsm',$,'Opening',$,$,#4611,#4600,$,$); +#4582=IFCINDEXEDPOLYGONALFACE((4,1,2)); +#4583=IFCINDEXEDPOLYGONALFACE((4,2,3)); +#4584=IFCINDEXEDPOLYGONALFACE((6,4,3)); +#4585=IFCINDEXEDPOLYGONALFACE((6,3,5)); +#4586=IFCINDEXEDPOLYGONALFACE((8,6,5)); +#4587=IFCINDEXEDPOLYGONALFACE((8,5,7)); +#4588=IFCINDEXEDPOLYGONALFACE((1,8,7)); +#4589=IFCINDEXEDPOLYGONALFACE((1,7,2)); +#4590=IFCINDEXEDPOLYGONALFACE((6,1,4)); +#4591=IFCINDEXEDPOLYGONALFACE((6,8,1)); +#4592=IFCINDEXEDPOLYGONALFACE((3,2,5)); +#4593=IFCINDEXEDPOLYGONALFACE((2,7,5)); +#4594=IFCCARTESIANPOINTLIST3D(((0.,-0.600000023841858,0.),(0.,0.599999964237213,0.),(1.20000004768372,0.599999964237213,0.),(1.20000004768372,-0.600000023841858,0.),(1.20000004768372,0.599999964237213,2.40000009536743),(1.20000004768372,-0.600000023841858,2.40000009536743),(0.,0.599999964237213,2.40000009536743),(0.,-0.600000023841858,2.40000009536743))); +#4595=IFCPOLYGONALFACESET(#4594,.T.,(#4582,#4583,#4584,#4585,#4586,#4587,#4588,#4589,#4590,#4591,#4592,#4593),$); +#4596=IFCSHAPEREPRESENTATION(#15,'Body','Tessellation',(#4595)); +#4597=IFCCARTESIANPOINT((0.,-0.600000023841858,0.)); +#4598=IFCBOUNDINGBOX(#4597,1.20000004768372,1.20000004768372,2.40000009536743); +#4599=IFCSHAPEREPRESENTATION(#17,'Box','BoundingBox',(#4598)); +#4600=IFCPRODUCTDEFINITIONSHAPE($,$,(#4599,#4596)); +#4606=IFCRELVOIDSELEMENT('1A9KBTxKv8RPeEBmwUU6NW',$,$,$,#657,#4576); +#4607=IFCCARTESIANPOINT((0.610417604446461,-7.13189951540016E-10,0.)); +#4608=IFCDIRECTION((0.,0.,1.)); +#4609=IFCDIRECTION((1.,2.64697796016969E-22,0.)); +#4610=IFCAXIS2PLACEMENT3D(#4607,#4608,#4609); +#4611=IFCLOCALPLACEMENT(#1733,#4610); +#4612=IFCCARTESIANPOINTLIST2D(((-1.14308562615406E-12,0.),(6.00000047683716,2.27373675443232E-13))); +#4613=IFCINDEXEDPOLYCURVE(#4612,$,.F.); +#4614=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#4613)); +#4615=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(6.00000063578308,0.200000002980232),(6.00000063578308,0.),(0.,0.))); +#4616=IFCINDEXEDPOLYCURVE(#4615,$,.F.); +#4617=IFCDIRECTION((0.,0.,1.)); +#4618=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#4616); +#4619=IFCCARTESIANPOINT((0.,0.,0.)); +#4620=IFCDIRECTION((0.,0.,1.)); +#4621=IFCDIRECTION((1.,0.,0.)); +#4622=IFCAXIS2PLACEMENT3D(#4619,#4620,#4621); +#4623=IFCEXTRUDEDAREASOLID(#4618,#4622,#4617,2.79999995231628); +#4624=IFCCARTESIANPOINT((-1.14308562615406E-12,0.,0.)); +#4625=IFCDIRECTION((-0.707107186317444,0.707106351852417,0.)); +#4626=IFCDIRECTION((0.707106363953904,0.707107198418945,-0.)); +#4627=IFCAXIS2PLACEMENT3D(#4624,#4625,#4626); +#4628=IFCPLANE(#4627); +#4629=IFCHALFSPACESOLID(#4628,.F.); +#4630=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#4623,#4629); +#4631=IFCCARTESIANPOINT((6.00000047683716,2.27373702548286E-13,0.)); +#4632=IFCDIRECTION((0.70710688829422,0.707106709480286,0.)); +#4633=IFCDIRECTION((0.707106691779577,-0.707106870593507,0.)); +#4634=IFCAXIS2PLACEMENT3D(#4631,#4632,#4633); +#4635=IFCPLANE(#4634); +#4636=IFCHALFSPACESOLID(#4635,.F.); +#4637=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#4630,#4636); +#4638=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#4637)); +#4639=IFCCARTESIANPOINTLIST2D(((6.56450534122083E-20,-4.06575814682064E-20),(2.99999761581421,3.5527136788005E-14))); +#4640=IFCINDEXEDPOLYCURVE(#4639,$,.F.); +#4641=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#4640)); +#4642=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(2.99999745686775,0.200000002980232),(2.99999745686775,0.),(0.,0.))); +#4643=IFCINDEXEDPOLYCURVE(#4642,$,.F.); +#4644=IFCDIRECTION((0.,0.,1.)); +#4645=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#4643); +#4646=IFCCARTESIANPOINT((0.,0.,0.)); +#4647=IFCDIRECTION((0.,0.,1.)); +#4648=IFCDIRECTION((1.,0.,0.)); +#4649=IFCAXIS2PLACEMENT3D(#4646,#4647,#4648); +#4650=IFCEXTRUDEDAREASOLID(#4645,#4649,#4644,2.79999995231628); +#4651=IFCCARTESIANPOINT((2.99999737739563,3.5527136788005E-14,0.)); +#4652=IFCDIRECTION((0.707107305526733,0.707106173038483,0.)); +#4653=IFCDIRECTION((0.707106214942162,-0.70710734743048,0.)); +#4654=IFCAXIS2PLACEMENT3D(#4651,#4652,#4653); +#4655=IFCPLANE(#4654); +#4656=IFCHALFSPACESOLID(#4655,.F.); +#4657=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#4650,#4656); +#4658=IFCCARTESIANPOINT((6.56450534122083E-20,-1.21972744404619E-19,0.)); +#4659=IFCDIRECTION((-0.70710688829422,0.707106709480286,0.)); +#4660=IFCDIRECTION((0.707106691779577,0.707106870593507,-0.)); +#4661=IFCAXIS2PLACEMENT3D(#4658,#4659,#4660); +#4662=IFCPLANE(#4661); +#4663=IFCHALFSPACESOLID(#4662,.F.); +#4664=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#4657,#4663); +#4665=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#4664)); +#4666=IFCCARTESIANPOINTLIST2D(((1.13686837721616E-13,-9.60564960905685E-13),(6.00000047683716,-2.38505890592933E-08))); +#4667=IFCINDEXEDPOLYCURVE(#4666,$,.F.); +#4668=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#4667)); +#4669=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(5.99999968210992,0.200000002980232),(5.99999968210992,0.),(0.,0.))); +#4670=IFCINDEXEDPOLYCURVE(#4669,$,.F.); +#4671=IFCDIRECTION((0.,0.,1.)); +#4672=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#4670); +#4673=IFCCARTESIANPOINT((0.,0.,0.)); +#4674=IFCDIRECTION((0.,0.,1.)); +#4675=IFCDIRECTION((1.,0.,0.)); +#4676=IFCAXIS2PLACEMENT3D(#4673,#4674,#4675); +#4677=IFCEXTRUDEDAREASOLID(#4672,#4676,#4671,2.79999995231628); +#4678=IFCCARTESIANPOINT((6.,-2.38505890592933E-08,0.)); +#4679=IFCDIRECTION((0.707107126712799,0.707106411457062,0.)); +#4680=IFCDIRECTION((0.707106423558582,-0.707107138814332,0.)); +#4681=IFCAXIS2PLACEMENT3D(#4678,#4679,#4680); +#4682=IFCPLANE(#4681); +#4683=IFCHALFSPACESOLID(#4682,.F.); +#4684=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#4677,#4683); +#4685=IFCCARTESIANPOINT((-1.13686837721616E-13,2.38417612763442E-07,0.)); +#4686=IFCDIRECTION((-0.707106292247772,0.707107186317444,0.)); +#4687=IFCDIRECTION((0.707107228221269,0.707106334151544,-0.)); +#4688=IFCAXIS2PLACEMENT3D(#4685,#4686,#4687); +#4689=IFCPLANE(#4688); +#4690=IFCHALFSPACESOLID(#4689,.F.); +#4691=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#4684,#4690); +#4692=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#4691)); +#4963=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.899999976158142,0.),(0.899999976158142,2.),(0.,2.))); +#4964=IFCINDEXEDPOLYCURVE(#4963,(IFCLINEINDEX((1,2,3,4,1))),$); +#4965=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#4964); +#4966=IFCCARTESIANPOINT((0.,-0.600000023841858,0.)); +#4967=IFCDIRECTION((0.,-1.,0.)); +#4968=IFCDIRECTION((1.,0.,0.)); +#4969=IFCAXIS2PLACEMENT3D(#4966,#4967,#4968); +#4970=IFCDIRECTION((0.,0.,-1.)); +#4971=IFCEXTRUDEDAREASOLID(#4965,#4969,#4970,1.2); +#4972=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#4971)); +#4978=IFCCARTESIANPOINT((1.81635584832026,2.99862485064717E-07,0.)); +#4979=IFCDIRECTION((0.,0.,1.)); +#4980=IFCDIRECTION((1.,3.17637355220363E-22,0.)); +#4981=IFCAXIS2PLACEMENT3D(#4978,#4979,#4980); +#4982=IFCLOCALPLACEMENT(#1257,#4981); +#4983=IFCCARTESIANPOINT((0.,1.05879118406788E-22,0.)); +#4984=IFCDIRECTION((0.,0.,1.)); +#4985=IFCDIRECTION((1.,-5.29395592033938E-23,0.)); +#4986=IFCAXIS2PLACEMENT3D(#4983,#4984,#4985); +#4987=IFCLOCALPLACEMENT(#4982,#4986); +#4988=IFCCARTESIANPOINTLIST3D(((0.,0.,0.),(0.899999976158142,0.,0.),(0.899999976158142,0.,2.),(0.,0.,2.))); +#4989=IFCINDEXEDPOLYCURVE(#4988,(IFCLINEINDEX((1,2,3,4,1))),$); +#4990=IFCSHAPEREPRESENTATION(#22,'Profile','Curve3D',(#4989)); +#4991=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.),(0.899999976158142,2.),(0.899999976158142,0.),(0.875,0.),(0.875,1.97500002384186),(0.025000000372529,1.97500002384186),(0.025000000372529,0.))); +#4992=IFCINDEXEDPOLYCURVE(#4991,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#4993=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#4992); +#4994=IFCCARTESIANPOINT((0.,0.025000000372529,0.)); +#4995=IFCDIRECTION((0.,-1.,0.)); +#4996=IFCDIRECTION((1.,0.,0.)); +#4997=IFCAXIS2PLACEMENT3D(#4994,#4995,#4996); +#4998=IFCDIRECTION((0.,0.,-1.)); +#4999=IFCEXTRUDEDAREASOLID(#4993,#4997,#4998,0.025000000372529); +#5000=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.),(0.899999976158142,2.),(0.899999976158142,0.),(0.849999964237213,0.),(0.849999964237213,1.95000004768372),(0.0500000007450581,1.95000004768372),(0.0500000007450581,0.))); +#5001=IFCINDEXEDPOLYCURVE(#5000,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#5002=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#5001); +#5003=IFCCARTESIANPOINT((0.,0.,0.)); +#5004=IFCDIRECTION((0.,-1.,0.)); +#5005=IFCDIRECTION((1.,0.,0.)); +#5006=IFCAXIS2PLACEMENT3D(#5003,#5004,#5005); +#5007=IFCDIRECTION((0.,0.,-1.)); +#5008=IFCEXTRUDEDAREASOLID(#5002,#5006,#5007,0.025000000372529); +#5009=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.799999952316284,0.),(0.799999952316284,0.100000001490116),(0.,0.100000001490116))); +#5010=IFCINDEXEDPOLYCURVE(#5009,(IFCLINEINDEX((1,2,3,4,1))),$); +#5011=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#5010); +#5012=IFCCARTESIANPOINT((0.0500000007450581,0.,0.)); +#5013=IFCDIRECTION((0.,0.,1.)); +#5014=IFCDIRECTION((1.,0.,0.)); +#5015=IFCAXIS2PLACEMENT3D(#5012,#5013,#5014); +#5016=IFCDIRECTION((0.,0.,1.)); +#5017=IFCEXTRUDEDAREASOLID(#5011,#5015,#5016,0.025000000372529); +#5018=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.02500009536743),(0.949999988079071,2.02500009536743),(0.949999988079071,0.),(0.875,0.),(0.875,1.95000004768372),(0.0750000029802322,1.95000004768372),(0.0750000029802322,0.))); +#5019=IFCINDEXEDPOLYCURVE(#5018,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#5020=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#5019); +#5021=IFCCARTESIANPOINT((-0.0250000022351742,-0.00499999988824129,0.)); +#5022=IFCDIRECTION((0.,-1.,0.)); +#5023=IFCDIRECTION((1.,0.,0.)); +#5024=IFCAXIS2PLACEMENT3D(#5021,#5022,#5023); +#5025=IFCDIRECTION((0.,0.,-1.)); +#5026=IFCEXTRUDEDAREASOLID(#5020,#5024,#5025,0.00499999988824129); +#5027=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,2.02500009536743),(0.949999988079071,2.02500009536743),(0.949999988079071,0.),(0.899999976158142,0.),(0.899999976158142,1.97500014305115),(0.0500000044703484,1.97500014305115),(0.0500000044703484,0.))); +#5028=IFCINDEXEDPOLYCURVE(#5027,(IFCLINEINDEX((1,2,3,4,5,6,7,8,1))),$); +#5029=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#5028); +#5030=IFCCARTESIANPOINT((-0.0250000022351742,0.0500000007450581,0.)); +#5031=IFCDIRECTION((0.,-1.,0.)); +#5032=IFCDIRECTION((1.,0.,0.)); +#5033=IFCAXIS2PLACEMENT3D(#5030,#5031,#5032); +#5034=IFCDIRECTION((0.,0.,-1.)); +#5035=IFCEXTRUDEDAREASOLID(#5029,#5033,#5034,0.00499999988824129); +#5036=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.849999964237213,0.),(0.849999964237213,0.0350000001490116),(0.,0.0350000001490116))); +#5037=IFCINDEXEDPOLYCURVE(#5036,(IFCLINEINDEX((1,2,3,4,1))),$); +#5038=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#5037); +#5039=IFCCARTESIANPOINT((0.025000000372529,0.025000000372529,0.025000000372529)); +#5040=IFCDIRECTION((0.,0.,1.)); +#5041=IFCDIRECTION((1.,0.,0.)); +#5042=IFCAXIS2PLACEMENT3D(#5039,#5040,#5041); +#5043=IFCDIRECTION((0.,0.,1.)); +#5044=IFCEXTRUDEDAREASOLID(#5038,#5042,#5043,1.95000004768372); +#5045=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,-0.0400000028312206),(-0.120000004768372,-0.0400000028312206),(-0.120000004768372,-0.0200000014156103),(-0.0200000405311584,-0.0200000014156103),(-0.0200000405311584,0.))); +#5046=IFCINDEXEDPOLYCURVE(#5045,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#5047=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#5046); +#5048=IFCCARTESIANPOINT((0.824999988079071,0.025000000372529,1.01499998569489)); +#5049=IFCDIRECTION((0.,0.,1.)); +#5050=IFCDIRECTION((1.,0.,0.)); +#5051=IFCAXIS2PLACEMENT3D(#5048,#5049,#5050); +#5052=IFCDIRECTION((0.,0.,1.)); +#5053=IFCEXTRUDEDAREASOLID(#5047,#5051,#5052,0.0200000014156103); +#5054=IFCEXTRUDEDAREASOLID(#5055,#5058,#5062,0.0200000014156103); +#5055=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#5056); +#5056=IFCINDEXEDPOLYCURVE(#5057,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#5057=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.0400000065565109),(-0.120000004768372,0.0400000065565109),(-0.120000004768372,0.0199999958276749),(-0.0200000405311584,0.0199999958276749),(-0.0200000405311584,0.))); +#5058=IFCAXIS2PLACEMENT3D(#5059,#5060,#5061); +#5059=IFCCARTESIANPOINT((0.824999988079071,0.0600000023841858,1.01499998569489)); +#5060=IFCDIRECTION((0.,0.,1.)); +#5061=IFCDIRECTION((1.,0.,0.)); +#5062=IFCDIRECTION((0.,0.,1.)); +#5063=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#4999,#5008,#5044,#5053,#5054,#5017,#5026,#5035)); +#5064=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.0500000007450581),(0.025000000372529,0.0500000007450581),(0.025000000372529,0.025000000372529),(0.0500000007450581,0.025000000372529),(0.0500000007450581,0.))); +#5065=IFCINDEXEDPOLYCURVE(#5064,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#5066=IFCINDEXEDPOLYCURVE(#5067,(IFCLINEINDEX((1,2,3,4,5,6,1))),$); +#5067=IFCCARTESIANPOINTLIST2D(((0.899999976158142,0.),(0.899999976158142,0.0500000007450581),(0.875,0.0500000007450581),(0.875,0.025000000372529),(0.849999964237213,0.025000000372529),(0.849999964237213,0.))); +#5068=IFCDIRECTION((1.,0.)); +#5069=IFCCARTESIANPOINT((0.0600000023841858,0.0500000007450581)); +#5070=IFCAXIS2PLACEMENT2D(#5069,#5068); +#5071=IFCELLIPSE(#5070,0.814999964088202,0.849999964237213); +#5072=IFCCARTESIANPOINT((0.874999940395355,0.0500000007450581)); +#5073=IFCCARTESIANPOINT((0.0600000023841858,0.899999976158142)); +#5074=IFCTRIMMEDCURVE(#5071,(#5072),(#5073),.T.,.CARTESIAN.); +#5075=IFCCARTESIANPOINTLIST2D(((0.025000000372529,0.0500000007450581),(0.0600000023841858,0.0500000007450581),(0.0600000023841858,0.899999976158142),(0.025000000372529,0.899999976158142))); +#5076=IFCINDEXEDPOLYCURVE(#5075,(IFCLINEINDEX((1,2,3,4,1))),$); +#5077=IFCSHAPEREPRESENTATION(#28,'Body','Curve2D',(#5065,#5066,#5074,#5076)); +ENDSEC; +END-ISO-10303-21; diff --git a/src/blenderbim/docs/users/tutorials/files/project0-walls.ifc b/src/blenderbim/docs/users/tutorials/files/project0-walls.ifc new file mode 100644 index 0000000000..16fa49b8e3 --- /dev/null +++ b/src/blenderbim/docs/users/tutorials/files/project0-walls.ifc @@ -0,0 +1,261 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1'); +FILE_NAME('project0.ifc','2024-06-29T07:16:23+03:00',(),(),'IfcOpenShell v0.7.0-c7830e9e5','BlenderBIM 0.0.240602-47704b1','Nobody'); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCPROJECT('1ruz1KEL13bhGNm832EdyW',$,'My Project',$,$,$,$,(#14,#26),#9); +#2=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#3=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#4=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#5=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#6=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#7=IFCMEASUREWITHUNIT(IFCREAL(0.0174532925199433),#6); +#8=IFCCONVERSIONBASEDUNIT(#5,.PLANEANGLEUNIT.,'degree',#7); +#9=IFCUNITASSIGNMENT((#4,#2,#8,#3)); +#10=IFCCARTESIANPOINT((0.,0.,0.)); +#11=IFCDIRECTION((0.,0.,1.)); +#12=IFCDIRECTION((1.,0.,0.)); +#13=IFCAXIS2PLACEMENT3D(#10,#11,#12); +#14=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#13,$); +#15=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#16=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#14,$,.GRAPH_VIEW.,$); +#17=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#18=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.SECTION_VIEW.,$); +#19=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.ELEVATION_VIEW.,$); +#20=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$); +#21=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#14,$,.PLAN_VIEW.,$); +#22=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Profile','Model',*,*,*,*,#14,$,.ELEVATION_VIEW.,$); +#23=IFCCARTESIANPOINT((0.,0.)); +#24=IFCDIRECTION((1.,0.)); +#25=IFCAXIS2PLACEMENT2D(#23,#24); +#26=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Plan',2,1.E-05,#25,$); +#27=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Plan',*,*,*,*,#26,$,.GRAPH_VIEW.,$); +#28=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Plan',*,*,*,*,#26,$,.PLAN_VIEW.,$); +#29=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#26,$,.PLAN_VIEW.,$); +#30=IFCSITE('0Xtg1ZPoD0rRPF1tMl5YSn',$,'My Site',$,$,#53,$,$,$,$,$,$,$,$); +#36=IFCBUILDING('2RSy_igSr7cOzwKV$6TSyC',$,'My Building',$,$,#59,$,$,$,$,$,$); +#42=IFCBUILDINGSTOREY('13XU1BDMP7vuuo9YHmRDn6',$,'My Storey',$,$,#65,$,$,$,$); +#48=IFCRELAGGREGATES('35MbWAr2v8Rgzkp5E_0C$T',$,$,$,#1,(#30)); +#49=IFCCARTESIANPOINT((0.,0.,0.)); +#50=IFCDIRECTION((0.,0.,1.)); +#51=IFCDIRECTION((1.,0.,0.)); +#52=IFCAXIS2PLACEMENT3D(#49,#50,#51); +#53=IFCLOCALPLACEMENT($,#52); +#54=IFCRELAGGREGATES('1hI$oQh$nF1Asiy66InZ8A',$,$,$,#30,(#36)); +#55=IFCCARTESIANPOINT((0.,0.,0.)); +#56=IFCDIRECTION((0.,0.,1.)); +#57=IFCDIRECTION((1.,0.,0.)); +#58=IFCAXIS2PLACEMENT3D(#55,#56,#57); +#59=IFCLOCALPLACEMENT(#53,#58); +#60=IFCRELAGGREGATES('0gS31Nqp52YPpUkTK$vxte',$,$,$,#36,(#42)); +#61=IFCCARTESIANPOINT((0.,0.,0.)); +#62=IFCDIRECTION((0.,0.,1.)); +#63=IFCDIRECTION((1.,0.,0.)); +#64=IFCAXIS2PLACEMENT3D(#61,#62,#63); +#65=IFCLOCALPLACEMENT(#59,#64); +#66=IFCWALLTYPE('1bnwGflOH13wxYBt0xlf8$',$,'Wall200',$,$,(#71),$,$,$,.SOLIDWALL.); +#67=IFCMATERIAL('Unknown',$,$); +#68=IFCMATERIALLAYERSET((#70),$,$); +#69=IFCRELASSOCIATESMATERIAL('1sSOhhGqT6guxXfiedDADx',$,$,$,(#66),#68); +#70=IFCMATERIALLAYER(#67,0.200000002980232,$,$,$,$,$); +#71=IFCPROPERTYSET('2t$kEyDIPF0fumVijI4fMX',$,'EPset_Parametric',$,(#72)); +#72=IFCPROPERTYSINGLEVALUE('LayerSetDirection',$,IFCLABEL('AXIS2'),$); +#73=IFCWALL('2cKYIHmn9FAgfuNu$zAIQL',$,'Wall',$,$,#1225,#81,$,$); +#74=IFCRELCONTAINEDINSPATIALSTRUCTURE('3vtoU2OUT8JfLLZSpkM4RI',$,$,$,(#657,#313,#143,#73,#243),#42); +#75=IFCRELDEFINESBYTYPE('3L_4xCCwv1DQNLzDPvRUmb',$,$,$,(#313,#243,#143,#73),#66); +#76=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#77=IFCRELASSOCIATESMATERIAL('1xNNcKrF5Bcf2rkH$rSDFL',$,$,$,(#73),#76); +#81=IFCPRODUCTDEFINITIONSHAPE($,$,(#1418,#1442)); +#97=IFCPROPERTYSET('1M1KH38ALA2hlVsZbmcxAp',$,'EPset_Parametric',$,(#99)); +#98=IFCRELDEFINESBYPROPERTIES('1AUpuQO99DN88KVElfbCPB',$,$,$,(#73),#97); +#99=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#143=IFCWALL('1Bg6FSoNzDMwh2dHDeO2B3',$,'Wall',$,$,#1257,#149,$,$); +#144=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#145=IFCRELASSOCIATESMATERIAL('2UFkQRmAf3U9eTg6okdEuB',$,$,$,(#143),#144); +#149=IFCPRODUCTDEFINITIONSHAPE($,$,(#1690,#1714)); +#165=IFCPROPERTYSET('1bH3Sn1CL869TpIu9xfzRh',$,'EPset_Parametric',$,(#167)); +#166=IFCRELDEFINESBYPROPERTIES('1ykybQGDr5_fuE28Dg8YXp',$,$,$,(#143),#165); +#167=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#243=IFCWALL('2pDrphlTb7b9aZcTL0Gbig',$,'Wall',$,$,#1687,#249,$,$); +#244=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#245=IFCRELASSOCIATESMATERIAL('33kmRMW2jCeBaDJ2Yfhvck',$,$,$,(#243),#244); +#249=IFCPRODUCTDEFINITIONSHAPE($,$,(#1800,#1824)); +#265=IFCPROPERTYSET('1nC$MM6rzE19BVYAu09cNo',$,'EPset_Parametric',$,(#267)); +#266=IFCRELDEFINESBYPROPERTIES('125SpFQrD8vRdkyBialUqy',$,$,$,(#243),#265); +#267=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#313=IFCWALL('3$7_tHA_P1R8BpPsZ5bZgH',$,'Wall',$,$,#1555,#319,$,$); +#314=IFCMATERIALLAYERSETUSAGE(#68,.AXIS2.,.POSITIVE.,0.,$); +#315=IFCRELASSOCIATESMATERIAL('35XEhKaoP0eBFZdT4INp67',$,$,$,(#313),#314); +#319=IFCPRODUCTDEFINITIONSHAPE($,$,(#1526,#1550)); +#335=IFCPROPERTYSET('1ZVwiveqLCRRKCxix4w1hj',$,'EPset_Parametric',$,(#337)); +#336=IFCRELDEFINESBYPROPERTIES('3tQJoqDvL7J8XIcLbIcdAw',$,$,$,(#313),#335); +#337=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#657=IFCWALL('1xyo9vNlHEW9wU7G$bVEu3',$,'Wall',$,$,#1733,#663,$,$); +#663=IFCPRODUCTDEFINITIONSHAPE($,$,(#1787,#1797)); +#679=IFCPROPERTYSET('1jNCD3JEr9LBTN8VtdUrBi',$,'EPset_Parametric',$,(#681)); +#680=IFCRELDEFINESBYPROPERTIES('3SV3QdcsX3VeWnzdbq_2MK',$,$,$,(#657),#679); +#681=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('BlenderBIM.DumbLayer2'),$); +#1200=IFCRELCONNECTSPATHELEMENTS('3sCc$O4yr59Bz_4XXWIY_u',$,$,'MITRE',$,#73,#143,(),(),.ATSTART.,.ATEND.); +#1221=IFCCARTESIANPOINT((4.05311584472656E-06,6.,0.)); +#1222=IFCDIRECTION((0.,0.,1.)); +#1223=IFCDIRECTION((-2.82129974493717E-07,-0.99999999999996,0.)); +#1224=IFCAXIS2PLACEMENT3D(#1221,#1222,#1223); +#1225=IFCLOCALPLACEMENT(#65,#1224); +#1253=IFCCARTESIANPOINT((2.36033611145103E-06,-1.37841561081986E-13,0.)); +#1254=IFCDIRECTION((0.,0.,1.)); +#1255=IFCDIRECTION((0.999999999999886,-4.76837158203071E-07,0.)); +#1256=IFCAXIS2PLACEMENT3D(#1253,#1254,#1255); +#1257=IFCLOCALPLACEMENT(#65,#1256); +#1388=IFCRELCONNECTSPATHELEMENTS('3jqkSGapfDxR1D76UVG8rS',$,$,'MITRE',$,#313,#73,(),(),.ATSTART.,.ATEND.); +#1416=IFCCARTESIANPOINTLIST2D(((-1.14308562615406E-12,0.),(6.00000047683716,0.))); +#1417=IFCINDEXEDPOLYCURVE(#1416,$,.F.); +#1418=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#1417)); +#1419=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(6.00000063578308,0.200000002980232),(6.00000063578308,0.),(0.,0.))); +#1420=IFCINDEXEDPOLYCURVE(#1419,$,.F.); +#1421=IFCDIRECTION((0.,0.,1.)); +#1422=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1420); +#1423=IFCCARTESIANPOINT((0.,0.,0.)); +#1424=IFCDIRECTION((0.,0.,1.)); +#1425=IFCDIRECTION((1.,0.,0.)); +#1426=IFCAXIS2PLACEMENT3D(#1423,#1424,#1425); +#1427=IFCEXTRUDEDAREASOLID(#1422,#1426,#1421,2.79999995231628); +#1428=IFCCARTESIANPOINT((-1.14308562615406E-12,0.,0.)); +#1429=IFCDIRECTION((-0.707107186317444,0.707106351852417,0.)); +#1430=IFCDIRECTION((0.707106363953904,0.707107198418945,-0.)); +#1431=IFCAXIS2PLACEMENT3D(#1428,#1429,#1430); +#1432=IFCPLANE(#1431); +#1433=IFCHALFSPACESOLID(#1432,.F.); +#1434=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1427,#1433); +#1435=IFCCARTESIANPOINT((6.00000047683716,3.89635155736978E-20,0.)); +#1436=IFCDIRECTION((0.70710688829422,0.707106709480286,0.)); +#1437=IFCDIRECTION((0.707106691779577,-0.707106870593507,0.)); +#1438=IFCAXIS2PLACEMENT3D(#1435,#1436,#1437); +#1439=IFCPLANE(#1438); +#1440=IFCHALFSPACESOLID(#1439,.F.); +#1441=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1434,#1440); +#1442=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#1441)); +#1523=IFCRELCONNECTSPATHELEMENTS('08oz6H1Fn4uhqB0SFzcdFe',$,$,'MITRE',$,#313,#243,(),(),.ATEND.,.ATSTART.); +#1524=IFCCARTESIANPOINTLIST2D(((-4.77004959975602E-08,2.38474058278371E-08),(2.99999976158142,-2.54463117244086E-12))); +#1525=IFCINDEXEDPOLYCURVE(#1524,$,.F.); +#1526=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#1525)); +#1527=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(2.99999984105488,0.200000002980232),(2.99999984105488,0.),(0.,0.))); +#1528=IFCINDEXEDPOLYCURVE(#1527,$,.F.); +#1529=IFCDIRECTION((0.,0.,1.)); +#1530=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1528); +#1531=IFCCARTESIANPOINT((0.,0.,0.)); +#1532=IFCDIRECTION((0.,0.,1.)); +#1533=IFCDIRECTION((1.,0.,0.)); +#1534=IFCAXIS2PLACEMENT3D(#1531,#1532,#1533); +#1535=IFCEXTRUDEDAREASOLID(#1530,#1534,#1529,2.79999995231628); +#1536=IFCCARTESIANPOINT((-4.77004959975602E-08,2.38474058278371E-08,0.)); +#1537=IFCDIRECTION((-0.707106351852417,0.707107186317444,0.)); +#1538=IFCDIRECTION((0.707107198418945,0.707106363953904,-0.)); +#1539=IFCAXIS2PLACEMENT3D(#1536,#1537,#1538); +#1540=IFCPLANE(#1539); +#1541=IFCHALFSPACESOLID(#1540,.F.); +#1542=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1535,#1541); +#1543=IFCCARTESIANPOINT((2.99999976158142,-2.54463117244086E-12,0.)); +#1544=IFCDIRECTION((0.707106113433838,0.707107424736023,0.)); +#1545=IFCDIRECTION((0.707107436837347,-0.70710612553514,0.)); +#1546=IFCAXIS2PLACEMENT3D(#1543,#1544,#1545); +#1547=IFCPLANE(#1546); +#1548=IFCHALFSPACESOLID(#1547,.F.); +#1549=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1542,#1548); +#1550=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#1549)); +#1551=IFCCARTESIANPOINT((3.00000381469727,5.99999856948853,0.)); +#1552=IFCDIRECTION((0.,0.,1.)); +#1553=IFCDIRECTION((-0.999999999999803,6.27832946520233E-07,0.)); +#1554=IFCAXIS2PLACEMENT3D(#1551,#1552,#1553); +#1555=IFCLOCALPLACEMENT(#65,#1554); +#1655=IFCRELCONNECTSPATHELEMENTS('2AWj4b0Pf9mBLmo5cqlcYd',$,$,'MITRE',$,#243,#143,(),(),.ATEND.,.ATSTART.); +#1683=IFCCARTESIANPOINT((3.,-2.98023223876953E-08,0.)); +#1684=IFCDIRECTION((0.,0.,1.)); +#1685=IFCDIRECTION((6.71544341912371E-07,0.999999999999775,0.)); +#1686=IFCAXIS2PLACEMENT3D(#1683,#1684,#1685); +#1687=IFCLOCALPLACEMENT(#65,#1686); +#1688=IFCCARTESIANPOINTLIST2D(((-2.27373675443232E-13,0.),(2.99999761581421,0.))); +#1689=IFCINDEXEDPOLYCURVE(#1688,$,.F.); +#1690=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#1689)); +#1691=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(2.99999745686741,0.200000002980232),(2.99999745686741,0.),(0.,0.))); +#1692=IFCINDEXEDPOLYCURVE(#1691,$,.F.); +#1693=IFCDIRECTION((0.,0.,1.)); +#1694=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1692); +#1695=IFCCARTESIANPOINT((0.,0.,0.)); +#1696=IFCDIRECTION((0.,0.,1.)); +#1697=IFCDIRECTION((1.,0.,0.)); +#1698=IFCAXIS2PLACEMENT3D(#1695,#1696,#1697); +#1699=IFCEXTRUDEDAREASOLID(#1694,#1698,#1693,2.79999995231628); +#1700=IFCCARTESIANPOINT((2.99999761581421,0.,0.)); +#1701=IFCDIRECTION((0.707107126712799,0.707106411457062,0.)); +#1702=IFCDIRECTION((0.707106423558582,-0.707107138814332,0.)); +#1703=IFCAXIS2PLACEMENT3D(#1700,#1701,#1702); +#1704=IFCPLANE(#1703); +#1705=IFCHALFSPACESOLID(#1704,.F.); +#1706=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1699,#1705); +#1707=IFCCARTESIANPOINT((-2.27373675443232E-13,0.,0.)); +#1708=IFCDIRECTION((-0.707106709480286,0.70710688829422,0.)); +#1709=IFCDIRECTION((0.707106870593507,0.707106691779577,-0.)); +#1710=IFCAXIS2PLACEMENT3D(#1707,#1708,#1709); +#1711=IFCPLANE(#1710); +#1712=IFCHALFSPACESOLID(#1711,.F.); +#1713=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1706,#1712); +#1714=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#1713)); +#1729=IFCCARTESIANPOINT((2.80000185966492,2.99999833106995,0.)); +#1730=IFCDIRECTION((0.,0.,1.)); +#1731=IFCDIRECTION((-0.999999999999924,3.89414367418765E-07,0.)); +#1732=IFCAXIS2PLACEMENT3D(#1729,#1730,#1731); +#1733=IFCLOCALPLACEMENT(#65,#1732); +#1735=IFCRELCONNECTSPATHELEMENTS('0keNMdmYPDDA5d6sO3T38q',$,$,'BUTT',$,#243,#657,(),(),.ATSTART.,.ATPATH.); +#1736=IFCWALLTYPE('2Jy8Q7wa51dxWiwGAEd4L_',$,'Wall100',$,$,(#1737),$,$,$,.SOLIDWALL.); +#1737=IFCPROPERTYSET('3UUDMBwILEQPV2CF4YelXZ',$,'EPset_Parametric',$,(#1738)); +#1738=IFCPROPERTYSINGLEVALUE('LayerSetDirection',$,IFCLABEL('AXIS2'),$); +#1739=IFCRELASSOCIATESMATERIAL('289NgCB1L14uOOjnI4vzXq',$,$,$,(#1736),#1740); +#1740=IFCMATERIALLAYERSET((#1741),$,$); +#1741=IFCMATERIALLAYER(#67,0.100000001490116,$,$,$,$,$); +#1742=IFCRELDEFINESBYTYPE('3aUHiahkP9EuziQCIdTbta',$,$,$,(#657),#1736); +#1743=IFCMATERIALLAYERSETUSAGE(#1740,.AXIS2.,.POSITIVE.,0.,$); +#1744=IFCRELASSOCIATESMATERIAL('3zaQeOeqnDPAxr2_etA4sB',$,$,$,(#657),#1743); +#1785=IFCCARTESIANPOINTLIST2D(((-0.200000315904617,2.38489974435652E-08),(2.59999990463257,1.60534938231649E-07))); +#1786=IFCINDEXEDPOLYCURVE(#1785,$,.F.); +#1787=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#1786)); +#1788=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.100000001490116),(2.599999860617,0.100000001490116),(2.599999860617,0.),(0.,0.))); +#1789=IFCINDEXEDPOLYCURVE(#1788,$,.F.); +#1790=IFCDIRECTION((0.,0.,1.)); +#1791=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1789); +#1792=IFCCARTESIANPOINT((0.,0.,0.)); +#1793=IFCDIRECTION((0.,0.,1.)); +#1794=IFCDIRECTION((1.,0.,0.)); +#1795=IFCAXIS2PLACEMENT3D(#1792,#1793,#1794); +#1796=IFCEXTRUDEDAREASOLID(#1791,#1795,#1790,2.79999995231628); +#1797=IFCSHAPEREPRESENTATION(#15,'Body','SweptSolid',(#1796)); +#1798=IFCCARTESIANPOINTLIST2D(((2.27373675443232E-13,0.),(5.99999856948853,-2.38505890592933E-08))); +#1799=IFCINDEXEDPOLYCURVE(#1798,$,.F.); +#1800=IFCSHAPEREPRESENTATION(#27,'Axis','Curve2D',(#1799)); +#1801=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.200000002980232),(5.99999872843548,0.200000002980232),(5.99999872843548,0.),(0.,0.))); +#1802=IFCINDEXEDPOLYCURVE(#1801,$,.F.); +#1803=IFCDIRECTION((0.,0.,1.)); +#1804=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1802); +#1805=IFCCARTESIANPOINT((0.,0.,0.)); +#1806=IFCDIRECTION((0.,0.,1.)); +#1807=IFCDIRECTION((1.,0.,0.)); +#1808=IFCAXIS2PLACEMENT3D(#1805,#1806,#1807); +#1809=IFCEXTRUDEDAREASOLID(#1804,#1808,#1803,2.79999995231628); +#1810=IFCCARTESIANPOINT((5.99999856948853,-2.38505890592933E-08,0.)); +#1811=IFCDIRECTION((0.707107126712799,0.707106411457062,0.)); +#1812=IFCDIRECTION((0.707106423558582,-0.707107138814332,0.)); +#1813=IFCAXIS2PLACEMENT3D(#1810,#1811,#1812); +#1814=IFCPLANE(#1813); +#1815=IFCHALFSPACESOLID(#1814,.F.); +#1816=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1809,#1815); +#1817=IFCCARTESIANPOINT((0.,2.38418579101562E-07,0.)); +#1818=IFCDIRECTION((-0.707106530666351,0.707107126712799,0.)); +#1819=IFCDIRECTION((0.707107079209689,0.707106483163281,-0.)); +#1820=IFCAXIS2PLACEMENT3D(#1817,#1818,#1819); +#1821=IFCPLANE(#1820); +#1822=IFCHALFSPACESOLID(#1821,.F.); +#1823=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#1816,#1822); +#1824=IFCSHAPEREPRESENTATION(#15,'Body','Clipping',(#1823)); +ENDSEC; +END-ISO-10303-21; diff --git a/src/blenderbim/docs/users/tutorials/images/project0-openings.png b/src/blenderbim/docs/users/tutorials/images/project0-openings.png new file mode 100644 index 0000000000..a25d0190f3 Binary files /dev/null and b/src/blenderbim/docs/users/tutorials/images/project0-openings.png differ diff --git a/src/blenderbim/docs/users/tutorials/images/project0-walls.png b/src/blenderbim/docs/users/tutorials/images/project0-walls.png new file mode 100644 index 0000000000..4b1f5429f9 Binary files /dev/null and b/src/blenderbim/docs/users/tutorials/images/project0-walls.png differ diff --git a/src/blenderbim/docs/users/tutorials/images/project0.png b/src/blenderbim/docs/users/tutorials/images/project0.png new file mode 100644 index 0000000000..940f38f866 Binary files /dev/null and b/src/blenderbim/docs/users/tutorials/images/project0.png differ diff --git a/src/blenderbim/docs/users/tutorials/project0.rst b/src/blenderbim/docs/users/tutorials/project0.rst index 8837d84ac8..f3d4822376 100644 --- a/src/blenderbim/docs/users/tutorials/project0.rst +++ b/src/blenderbim/docs/users/tutorials/project0.rst @@ -2,7 +2,8 @@ Project 0: Designing a Room =========================== -In this introductory project, you'll learn the basics of using BlenderBIM to design a simple room. By the end of this tutorial, you'll have created a basic 3D model and a 2D floor plan drawing. +In this introductory project, you'll learn the basics of using BlenderBIM to design a simple room. +By the end of this tutorial, you'll have created a basic 3D model and a 2D floor plan drawing. Prerequisites ============= @@ -25,23 +26,93 @@ Tutorial Steps 1. Setting Up the Project ------------------------- -1. Open Blender and switch to the BlenderBIM workspace -2. Set up the project settings (units, scale, etc.) -3. Create a new IFC project +.. figure:: images/project0.png + :width: 100% + :alt: Setup the `project0` project. + + Setup the `project0` project. + +1. Open Blender and switch to the BlenderBIM workspace. +2. Create a new IFC project. Use Metric. +3. Save it as `project0.ifc` file. +4. (optional) Save the `project0.blend` file. + +.. note:: See :doc:`/users/modeling/starting_new_project` for detailed instructions. 2. Creating Walls ----------------- -1. Use the "Create Wall" tool to draw the room's perimeter -2. Adjust wall heights and thicknesses -3. Add interior walls if needed +.. figure:: images/project0-walls.png + :alt: Creating Walls in BlenderBIM + :width: 100% + + Creating Walls in BlenderBIM + +1. Use the "Create Wall" tool to draw the room's perimeter of a room 6m by 3m. Use mitre join. +2. Add an interior wall across the room in the middle. Use butt join. +3. Adjust walls height to be 2.8m. +4. Set the thicknesses of 0.2m for the exterior walls. +5. Set the thickness of 0.1m for the partition wall. +6. Use a Measure tool to ensure proper dimensions. + The interior lenghts of the walls should be 2.8m, 2.7m and 2.6m. + +.. note:: Refer to :doc:`/users/modeling/basic_modeling/creating_walls` for step-by-step guidance on wall creation. + +If you still struggling, here's what you should get: + +.. container:: blockbutton + + `Download project0-walls.ifc `__ + 3. Adding Openings ------------------ -1. Create a door opening using the "Add Opening" tool -2. Add a window opening -3. Adjust opening dimensions and positions +.. figure:: images/project0-openings.png + :alt: Adding Openings in BlenderBIM + :width: 100% + + Adding Openings in BlenderBIM + +1. Create two door openings: + + - Use the "Create Door" tool for each door + - Set the width to 0.9m and height to 2.1m for both doors + - Position the front door 0.1m from the corner on one of the 3m walls + - Position the back door at the center of the 3m wall + +2. Add two window openings beside the front door: + + - Use the "Create Window" tool to create a window beside the front door + - Set the width to 1m and height to 1m + - Position the window 0.1m to the side of the front door + +3. Adjust the sill height for the windows: + + - Set the sill height to 1m from the floor level + +4. Create an arch opening in the interior partition wall: + + - Use the "Create Door" tool to create a door in the partition wall + - Use a dedicated DoorType for this opening that we'll discard + - Set the width to 1.2m and height to 2.4m + - Position it in the center of the partition wall + - Click on the "eye" icon near "Add Void" to display the void + - Remove the Door and the Door type in the outliner + - Click checkbox near "Add Void". + +5. Use the Measure tool to verify the positions and dimensions of all openings. + +6. Ensure that the openings do not intersect with corners or other openings. + +.. note:: Refer to :doc:`/users/modeling/basic_modeling/openings/index` for detailed instructions + on creating and modifying openings, including how to create openings without fillings. + +If you're having difficulties, you can download the sample file: + +.. container:: blockbutton + + `Download project0-openings.ifc `__ 4. Creating the Floor Slab -------------------------- diff --git a/src/blenderbim/docs/users/tutorials/project1.rst b/src/blenderbim/docs/users/tutorials/project1.rst index 274b46c7cf..c48c933881 100644 --- a/src/blenderbim/docs/users/tutorials/project1.rst +++ b/src/blenderbim/docs/users/tutorials/project1.rst @@ -2,7 +2,9 @@ Project 1: Designing a Flat =========================== -Building on the skills from Project 0, this tutorial will guide you through designing a complete flat using BlenderBIM. You'll learn more advanced techniques for creating walls and openings, working with profiles, defining rooms and spaces, and generating more detailed drawings. +Building on the skills from Project 0, this tutorial will guide you through designing a complete flat using BlenderBIM. +You'll learn more advanced techniques for creating walls and openings, working with profiles, defining rooms and spaces, +and generating more detailed drawings. Prerequisites ============= @@ -25,9 +27,12 @@ Tutorial Steps 1. Project Setup ---------------- -1. Create a new IFC project -2. Set up project parameters (units, scale, geolocation) -3. Import any necessary custom libraries or templates +1. Open Blender and switch to the BlenderBIM workspace +2. Create a new IFC project +3. Save it as `project1.ifc` file (and optionally, `project1.blend` file) +4. Load custom libraries and templates + +.. note:: See :doc:`/users/modeling/starting_new_project` for detailed instructions. 2. Advanced Wall Creation ------------------------- diff --git a/src/blenderbim/docs/users/tutorials/project2.rst b/src/blenderbim/docs/users/tutorials/project2.rst index d48091cda9..b183f3765b 100644 --- a/src/blenderbim/docs/users/tutorials/project2.rst +++ b/src/blenderbim/docs/users/tutorials/project2.rst @@ -30,10 +30,13 @@ Tutorial Steps 1. Project Initialization ------------------------- -1. Set up a new IFC project for the bungalow +1. Set up a new IFC project for the bungalow `project2.ifc` 2. Define project parameters (site conditions, climate zone, etc.) 3. Create a basic site plan +.. note:: See :doc:`/users/modeling/starting_new_project` for detailed instructions. + + 2. Advanced Foundation Design ----------------------------- diff --git a/src/blenderbim/docs/users/user_interface/images/file_new-ifc-project-submenu.png b/src/blenderbim/docs/users/user_interface/images/file_new-ifc-project-submenu.png new file mode 100644 index 0000000000..f2fc788817 Binary files /dev/null and b/src/blenderbim/docs/users/user_interface/images/file_new-ifc-project-submenu.png differ diff --git a/src/blenderbim/docs/users/user_interface/property_editor/scene_editor/project_overview/project_info.rst b/src/blenderbim/docs/users/user_interface/property_editor/scene_editor/project_overview/project_info.rst index 8281a85add..b2a5ed3dc0 100644 --- a/src/blenderbim/docs/users/user_interface/property_editor/scene_editor/project_overview/project_info.rst +++ b/src/blenderbim/docs/users/user_interface/property_editor/scene_editor/project_overview/project_info.rst @@ -8,6 +8,16 @@ Project Info .. |location| image:: /images/location-scene.svg .. |>| image:: /images/location-breadcrumb.svg + +.. warning:: + + It's recommended to avoid using the "Unload IFC project" button, + as it may promote the misconception that the .blend file can continue without the IFC data. + Always start a new Blender session for a clean project start. + + The Unload IFC project button will be removed in future versions. + + Overview -------- diff --git a/src/blenderbim/docs/users/user_interface/topbar.rst b/src/blenderbim/docs/users/user_interface/topbar.rst index 36403e4c8b..0616492796 100644 --- a/src/blenderbim/docs/users/user_interface/topbar.rst +++ b/src/blenderbim/docs/users/user_interface/topbar.rst @@ -14,6 +14,30 @@ The `File` menu in the Topbar adds menu entries to Create/Open and Save an IFC p Additional file menu options related to IFC projects. +New IFC Project +^^^^^^^^^^^^^^^ + +The New IFC Project submenu offers several options for creating a new IFC project: + +.. figure:: images/file_new-ifc-project-submenu.png + :alt: New IFC Project submenu options + + New IFC Project submenu options + +- New Metric (m) Project: Creates a new IFC project using meters as the base unit. +- New Metric (mm) Project: Creates a new IFC project using millimeters as the base unit. +- New Imperial (ft) Project: Creates a new IFC project using feet as the base unit. +- New Demo Project: Creates a new IFC project with pre-populated demo content. +- New Project Wizard: Creates a default Blender project (including the default cube) + and opens the Scene Properties > Project Overview > Project Info tab. + This allows users to customize their project settings before creation. + Clicking the "Create Project" button in this panel will delete the default cube and set up the new IFC project with the specified settings. + +These options provide flexibility in setting up new IFC projects, +allowing users to choose between quick starts with predefined units +or a more customizable approach through the Project Wizard. + + BIM Workspace -------------