Write docs on creating a single object

This commit is contained in:
Dion Moult
2022-09-07 20:13:11 +10:00
parent 5bfad88a75
commit 0a6c8a4343
10 changed files with 116 additions and 5 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

+36 -4
View File
@@ -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 <submitting-code-to-git>`.
.. container:: blockbutton
`Download Source
<https://github.com/IfcOpenShell/IfcOpenShell/archive/refs/heads/v0.7.0.zip>`__
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 <https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/ifcopenshell-python/ifcopenshell/util>`__
- `ifcopenshell.api <https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/ifcopenshell-python/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 <https://github.com/ifcopenshell/ifcopenshell>`__ 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
<https://docs.github.com/en/get-started/quickstart/contributing-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
---------------
+1 -1
View File
@@ -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
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

@@ -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 <https://view.ifcopenshell.org>`__, `IFC.JS
<https://ifcjs.github.io/web-ifc-viewer/example/index>`__, and `3DViewer
<https://3dviewer.net/>`__.
.. image:: ifc-pipeline.png
Placing occurrences of an element type
--------------------------------------
TODO
Changing the locations of elements
----------------------------------
TODO
Modeling a simple building
--------------------------
TODO
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB