Difference between revisions of "BlenderBIM Add-on/BlenderBIM IFCCSV"
m |
Theoryshaw (talk | contribs) |
||
Line 2: | Line 2: | ||
The IFC CSV feature of [[IfcOpenShell]] is implemented in [[BlenderBIM Add-on]]. | The IFC CSV feature of [[IfcOpenShell]] is implemented in [[BlenderBIM Add-on]]. | ||
+ | |||
+ | === Warning, IFCCSV uses the New IFC facet-based selector syntax https://community.osarch.org/discussion/1580/ === | ||
+ | |||
+ | |||
+ | |||
You can find this feature under Blender Scene Properties -> IFC Collaboration -> IFC CSV Import/Export. | You can find this feature under Blender Scene Properties -> IFC Collaboration -> IFC CSV Import/Export. |
Revision as of 16:54, 16 August 2023
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.
Warning, IFCCSV uses the New IFC facet-based selector syntax https://community.osarch.org/discussion/1580/
You can find this feature under Blender Scene Properties -> IFC Collaboration -> IFC CSV Import/Export.
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.
Specify which IFC classes will be queried with the IFC Selector property. Syntax follows the regular IFC Selector syntax, where you can either use the pipette to select objects currently selected in the 3D view or specify IFC classes manually like .IfcClass
, eg. .IfcWall
. You can use the pipe symbol |
to select more than one class, like so: .IfcBuildingElement|.IfcSpace
.
You can save your query as a .json
template or load an existing template. The template follows a syntax of a simple list: ['Name', 'type']
.
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 |