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
|
||||
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
|
||||
---------------
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
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 |