BlenderBIM Add-on/BlenderBIM IFCCSV

From Wiki.OSArch

This page is unfinished. Feel free to help the project by sharing your knowledge about this subject.


The IFC CSV feature of IfcOpenShell is implemented in BlenderBIM Add-on.

IFC CSV panel in the BlenderBIM Add-on

You can either query an external IFC model by loading it via file picker or load the currently active IFC file by ticking off the Load from Memory check box.

You can either use the pipette to select objects currently selected in the 3D view or using the Facet Based Selector Syntax specify which IFC classes will be queried. For example, specify IFC classes manually like IfcWall or IfcSlab or you can use a comma , to select more than one class, like so: IfcWindow, IfcSpace.

You can save your query as a .json template or load an existing template. Here's an simple example.

Example.png

Finally, you can save the output to CSV with the Export IFC to CSV button. One usecase of IFC CSV is to quickly bulk edit many values in an IFC file. So after exporting to CSV, you can edit some properties and load them into your model again with the Import CSV to IFC button.

Examples of how to fill out the CSV attribute field are shown in the table below.

Description IFC CSV Query Example output
Attributes
Name of element Name MyWall
Name of IFC type type.Name WAL300
Predefined type on element level PredefinedType ELEMENTEDWALL
Predefined type on type level type.PredefinedType SOLIDWALL
Property and Quantity Sets
A dictionary of a property set, its
properties with non-null values and
an id
Pset_WallCommon {'IsExternal': True, 'id': 16041}
Value of a single property Pset_WallCommon.IsExternal TRUE
Quantity set property value. Output is a
number (int or float).
Qto_WallBaseQuantities.Length 7, 10.66
Materials
Name of a single material name,
material constituent set name,
material profile set name.
Note that names of material layer
sets will not show here.
material.Name OR mat.Name Concrete, WoodenWindow, SteelColumn
Name of material items. This can be
name of a single material, material
layers, constituents or profiles
material.item.Name OR mat.i.Name Concrete,['SteelProfile'],
['BrickLayer', 'InsulationLayer'],
['WoodenFrame', '3-layer window pane']
Name of the first material item. material.item.Name.0 Concrete, SteelProfile,
BrickLayer, WoodenFrame
Name of the material used in the
material item, eg. a material used
on a material layer.
material.item.Material.Name ['Steel'], ['Brick', 'GlassWool'],
['Pine', '3-4-3-4-3 pane']
Thickness of a material layer. In
case of a single material, output
will be empty. In case of a constituent
set or a profile set output will be [None].
material.item.LayerThickness [0.3, 0.2], [3000.0], [None, None]
Property value (eg. mass density) of each
material in a material set. Will be [None] if
material doesn't have the property. Output is
a list.
material.item.Material.
Pset_MaterialCommon.MassDensity
[15.0, 30.0], [30.0],
[2000.0, None], [None, None]
Property value (eg. mass density) of a material.
Output is a number (int or float).
material.Pset_MaterialCommon.MassDensity 20, 2000
Name of a material layer set. material.LayerSetName LayeredBrickWall
Names of material layers in a layer set. The same
as 'material.item.Name' but this query outputs
only for material layer sets.
material.MaterialLayers.Name ['BrickLayer', 'InsulationLayer']
Thickness of material layers in a layer set. The same
as 'material.item.LayerThickness' but this query outputs
only for material layer sets.
material.MaterialLayers.LayerThickness [0.3, 0.2]
Name of the material used in the
material layer. The same as 'material.item.Material.Name'
but this query outputs only for material layer sets.
material.MaterialLayers.Material.Name ['Brick', 'GlassWool']
Names of material constituents in a constituent set. The same
as 'material.item.Name' but this query outputs
only for material constituent sets.
material.MaterialConstituents.Name ['WoodenFrame', '3-layer window pane']
Name of the material used in the material constituent. The same
as 'material.item.Material.Name' but this query outputs only
for material constituent sets.
material.MaterialConstituents.Material.Name ['Pine', '3-4-3-4-3 pane']
Names of material profiles in a profile set. The same
as 'material.item.Name' but this query outputs
only for material profile sets.
material.MaterialProfiles.Name ['SteelProfile']
Name of the material used in the material profile.
The same as 'material.item.Material.Name' but this query
outputs only for material profile sets.
material.MaterialProfiles.Material.Name ['Steel']
Property value (eg. mass density) of each profile in a
material profile set. Output is a list. The same as
'material.item.Material.Pset_MaterialCommon.MassDensity'
but this query outputs only for material profile sets.
material.MaterialProfiles.Material.
Pset_MaterialCommon.MassDensity
[20.0], [2400, 3000.0]
Property value of the first profile in a material profile set.
Output is a number.
material.MaterialProfiles.Material.
Pset_MaterialCommon.MassDensity.0
20, 2400