diff --git a/src/blenderbim/docs/devs/github-editing.png b/src/blenderbim/docs/devs/github-editing.png new file mode 100644 index 0000000000..f6b8a22797 Binary files /dev/null and b/src/blenderbim/docs/devs/github-editing.png differ diff --git a/src/blenderbim/docs/devs/hello_world.rst b/src/blenderbim/docs/devs/hello_world.rst index f2f0dcc48c..957839d36c 100644 --- a/src/blenderbim/docs/devs/hello_world.rst +++ b/src/blenderbim/docs/devs/hello_world.rst @@ -40,10 +40,19 @@ Just show me the code! ---------------------- Sometimes, the best way to learn how to hack on a project is to just start -hacking away. BIM authoring is a really big topic. As a result, the BlenderBIM -Add-on code is separated into modules. Each module focuses on a particular topic -of BIM. Most modules are self-contained, but sometimes they connect to one -another, just like how BIM works. +hacking away. First, download the code. To keep things simple, you can download +the source as a zip file for now, but keep in mind that sooner or later you'll +need to :ref:`use Git to collaborate `. + +.. container:: blockbutton + + `Download Source + `__ + +BIM authoring is a really big topic. As a result, the BlenderBIM Add-on code is +separated into modules. Each module focuses on a particular topic of BIM. Most +modules are self-contained, but sometimes they connect to one another, just like +how BIM works. .. image:: module-architecture.png @@ -282,6 +291,29 @@ The code for IfcOpenShell's various systems can be found here: - `ifcopenshell.util `__ - `ifcopenshell.api `__ +.. _submitting-code-to-git: + +Submitting code to Git +---------------------- + +So, you've written some code, fixed a bug, made an improvement, and would like +to get your code added to the Git repository? If your change is relatively +small, you can submit your changes just using the Github website. Browse to the +`IfcOpenShell repository `__ and +navigate to the file you want to edit the code of. Then just press the edit icon +to begin editing. When you're done, you'll be prompted to submit your changes. + +.. image:: github-editing.png + +If you're making a large change, you'll need to create a **Pull Request**. +Github has an excellent comprehensive guide on `how to contribute to projects +`__ +which you can follow. + +If you make regular contributions, you are also welcome to officially join the +IfcOpenShell developer team, where you'll be able to make changes without +waiting for code reviews and approvals. + Asking for help --------------- diff --git a/src/blenderbim/docs/index.rst b/src/blenderbim/docs/index.rst index 05d0a31a9a..1bc033cfec 100644 --- a/src/blenderbim/docs/index.rst +++ b/src/blenderbim/docs/index.rst @@ -15,7 +15,7 @@ The BlenderBIM Add-on lets you analyse, create, and modify OpenBIM with Blender. users/introduction_to_bim users/installation users/exploring_an_ifc_model - users/creating_your_first_ifc + users/creating_an_ifc_model users/georeferencing users/dealing_with_large_models users/other_addons diff --git a/src/blenderbim/docs/users/assign-class.png b/src/blenderbim/docs/users/assign-class.png new file mode 100644 index 0000000000..c7d4ef5e2b Binary files /dev/null and b/src/blenderbim/docs/users/assign-class.png differ diff --git a/src/blenderbim/docs/users/create-project.png b/src/blenderbim/docs/users/create-project.png new file mode 100644 index 0000000000..ae52ee262e Binary files /dev/null and b/src/blenderbim/docs/users/create-project.png differ diff --git a/src/blenderbim/docs/users/creating_an_ifc_model.rst b/src/blenderbim/docs/users/creating_an_ifc_model.rst new file mode 100644 index 0000000000..beaeb11cb4 --- /dev/null +++ b/src/blenderbim/docs/users/creating_an_ifc_model.rst @@ -0,0 +1,79 @@ +Creating an IFC model +===================== + +We're going to create a new native IFC model from scratch, starting from a +single shape, up to a simple building. + +A BIM model is not just a 3D format. This means that you cannot just load any 3D +model, and press a "Save as IFC" button. In fact, 3D is optional and you +can have a large IFC model storing work schedules, cost rates, asset registers +and more, and absolutely no 3D geometry at all. + +However, in these tutorials, we will focus on basic 3D geometry. At a minimum, +you will need to categorise your 3D elements (such as "Wall", "Column", +"Window", etc), and give them a location (such as "Level 01" of a building). + +Creating a single object +------------------------ + +In the **Properties** panel in the bottom right, activate the icon for the +**Scene Properties** tab, and find the **IFC Project** subpanel. Click on +**Create Project** to create a blank IFC project. + +.. image:: create-project.png + +For convenience, this IFC project by default defines length, area, and volume +units, and assumes you'll be working with both 2D and 3D geoemtry. + +In the top right **Outliner** panel, you will see a hierarchy of spaces that has +been automatically created for you. This hierarchy is known is the **Spatial +Tree**. + +.. image:: default-spatial-tree.png + +Any Blender object that you want to part of your IFC project must be converted +into a IFC object by assigning a category. This category is known as the **IFC +Class**. + +Select only the default Blender Cube (selected objects are highlighted in +orange, careful not to select anything else!), switch to the **Object +Properties** tab, and find the **IFC Class** panel. Let's pretend our Cube is a +column, so select **IfcColumn** from the **Class** drop-down, and press **Assign +IFC Class**. + +.. image:: assign-class.png + +All IFC objects must also belong inside the **Spatial Tree**. In the +**Outliner** panel, you can drag and drop your newly created **IfcColumn/Cube** +inside the **IfcBuildingStorey/Ground Floor**. Wasn't that simple? + +.. image:: drag-drop-outliner-tree.png + +Go back to the **Scene Properties** tab and to the **IFC Project** panel and +press **Save Project**. Save your new IFC model somewhere on your computer. + +.. image:: save-project.png + +Congratulations! You have now created your first OpenBIM model from Blender! You +can open the IFC file in any other program, and you will see something similar +to the image below. Three simple open source online viewers you can test with +are `IfcPipeline `__, `IFC.JS +`__, and `3DViewer +`__. + +.. image:: ifc-pipeline.png + +Placing occurrences of an element type +-------------------------------------- + +TODO + +Changing the locations of elements +---------------------------------- + +TODO + +Modeling a simple building +-------------------------- + +TODO diff --git a/src/blenderbim/docs/users/default-spatial-tree.png b/src/blenderbim/docs/users/default-spatial-tree.png new file mode 100644 index 0000000000..0db447ab88 Binary files /dev/null and b/src/blenderbim/docs/users/default-spatial-tree.png differ diff --git a/src/blenderbim/docs/users/drag-drop-outliner-tree.png b/src/blenderbim/docs/users/drag-drop-outliner-tree.png new file mode 100644 index 0000000000..0e8067bfe6 Binary files /dev/null and b/src/blenderbim/docs/users/drag-drop-outliner-tree.png differ diff --git a/src/blenderbim/docs/users/ifc-pipeline.png b/src/blenderbim/docs/users/ifc-pipeline.png new file mode 100644 index 0000000000..561ab63b03 Binary files /dev/null and b/src/blenderbim/docs/users/ifc-pipeline.png differ diff --git a/src/blenderbim/docs/users/save-project.png b/src/blenderbim/docs/users/save-project.png new file mode 100644 index 0000000000..b3eefd473a Binary files /dev/null and b/src/blenderbim/docs/users/save-project.png differ