From f277733ff546f897cd0d2b10532d83c9db87b99c Mon Sep 17 00:00:00 2001 From: htlcnn Date: Mon, 28 Dec 2020 10:18:55 +0700 Subject: [PATCH] ifccsv delimiter --- src/ifcblenderexport/blenderbim/bim/operator.py | 4 ++++ src/ifcblenderexport/blenderbim/bim/prop.py | 6 ++++++ src/ifcblenderexport/blenderbim/bim/ui.py | 5 +++++ src/ifccsv/ifccsv.py | 3 ++- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index d8099288e3..6c94cf4a9a 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -3778,6 +3778,10 @@ class ExportIfcCsv(bpy.types.Operator): ifc_csv.output = self.filepath ifc_csv.attributes = [a.name for a in bpy.context.scene.BIMProperties.csv_attributes] ifc_csv.selector = selector + if bpy.context.scene.BIMProperties.csv_delimiter == "CUSTOM": + ifc_csv.delimiter = bpy.context.scene.BIMProperties.csv_custom_delimiter + else: + ifc_csv.delimiter = bpy.context.scene.BIMProperties.csv_delimiter ifc_csv.export(ifc_file, results) return {"FINISHED"} diff --git a/src/ifcblenderexport/blenderbim/bim/prop.py b/src/ifcblenderexport/blenderbim/bim/prop.py index fc45de7de2..ab6520bdd1 100644 --- a/src/ifcblenderexport/blenderbim/bim/prop.py +++ b/src/ifcblenderexport/blenderbim/bim/prop.py @@ -1477,6 +1477,12 @@ class BIMProperties(PropertyGroup): ) ifc_selector: StringProperty(default="", name="IFC Selector") csv_attributes: CollectionProperty(name="CSV Attributes", type=StrProperty) + csv_delimiter: EnumProperty( + items=[(";", ";", ""), (",", ",", ""), (".", ".", ""), ("CUSTOM", "Custom", ""),], + name="IFC CSV Delimiter", + default=";", + ) + csv_custom_delimiter: StringProperty(default="", name="Custom Delimiter") document_information: CollectionProperty(name="Document Information", type=DocumentInformation) active_document_information_index: IntProperty(name="Active Document Information Index") document_references: CollectionProperty(name="Document References", type=DocumentReference) diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index 76b81ba4dd..7eeef9fbfd 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -1642,6 +1642,11 @@ class BIM_PT_ifccsv(Panel): row.prop(attribute, "name", text="") row.operator("bim.remove_csv_attribute", icon="X", text="").index = index + row = layout.row(align=True) + row.prop(props, "csv_delimiter") + row = layout.row(align=True) + row.prop(props, "csv_custom_delimiter") + row = layout.row(align=True) row.operator("bim.export_ifccsv", icon="EXPORT") row.operator("bim.import_ifccsv", icon="IMPORT") diff --git a/src/ifccsv/ifccsv.py b/src/ifccsv/ifccsv.py index 19aa94195a..26d66092a0 100755 --- a/src/ifccsv/ifccsv.py +++ b/src/ifccsv/ifccsv.py @@ -109,6 +109,7 @@ class IfcCsv: self.attributes = [] self.output = "" self.selector = None + self.delimiter = ";" def export(self, ifc_file, elements): self.ifc_file = ifc_file @@ -151,7 +152,7 @@ class IfcCsv: def Import(self, ifc): ifc_file = ifcopenshell.open(ifc) with open(self.output, newline="", encoding="utf-8") as f: - reader = csv.reader(f) + reader = csv.reader(f, delimiter=self.delimiter) headers = [] for row in reader: if not headers: