Write docs on creating a single object
|
After Width: | Height: | Size: 47 KiB |
@@ -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
|
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
|
hacking away. First, download the code. To keep things simple, you can download
|
||||||
Add-on code is separated into modules. Each module focuses on a particular topic
|
the source as a zip file for now, but keep in mind that sooner or later you'll
|
||||||
of BIM. Most modules are self-contained, but sometimes they connect to one
|
need to :ref:`use Git to collaborate <submitting-code-to-git>`.
|
||||||
another, just like how BIM works.
|
|
||||||
|
.. 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
|
.. 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.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>`__
|
- `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
|
Asking for help
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ The BlenderBIM Add-on lets you analyse, create, and modify OpenBIM with Blender.
|
|||||||
users/introduction_to_bim
|
users/introduction_to_bim
|
||||||
users/installation
|
users/installation
|
||||||
users/exploring_an_ifc_model
|
users/exploring_an_ifc_model
|
||||||
users/creating_your_first_ifc
|
users/creating_an_ifc_model
|
||||||
users/georeferencing
|
users/georeferencing
|
||||||
users/dealing_with_large_models
|
users/dealing_with_large_models
|
||||||
users/other_addons
|
users/other_addons
|
||||||
|
|||||||
|
After Width: | Height: | Size: 47 KiB |
|
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
|
||||||
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 28 KiB |