mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-20 06:58:56 +00:00
Exported constraints are now managed using the new UI, no CSV required
This commit is contained in:
@@ -1,3 +0,0 @@
|
|||||||
Name,Description,ConstraintGrade,ObjectiveQualifier
|
|
||||||
Beauty,The built form should be beautiful,HARD,DESIGNINTENT
|
|
||||||
Safety,No facilities exist to generate killer artificial intelligence,HARD,HEALTHANDSAFETY
|
|
||||||
|
@@ -94,7 +94,7 @@ class IfcParser():
|
|||||||
self.document_references = {}
|
self.document_references = {}
|
||||||
self.classifications = []
|
self.classifications = []
|
||||||
self.classification_references = {}
|
self.classification_references = {}
|
||||||
self.objectives = {}
|
self.constraints = {}
|
||||||
self.qtos = {}
|
self.qtos = {}
|
||||||
self.aggregates = {}
|
self.aggregates = {}
|
||||||
self.materials = {}
|
self.materials = {}
|
||||||
@@ -152,7 +152,7 @@ class IfcParser():
|
|||||||
self.classifications = self.get_classifications()
|
self.classifications = self.get_classifications()
|
||||||
self.classification_reference_maps = self.get_classification_reference_maps()
|
self.classification_reference_maps = self.get_classification_reference_maps()
|
||||||
self.classification_references = self.get_classification_references()
|
self.classification_references = self.get_classification_references()
|
||||||
self.objectives = self.get_objectives()
|
self.constraints = self.get_constraints()
|
||||||
self.load_representations()
|
self.load_representations()
|
||||||
self.load_presentation_layer_assignments()
|
self.load_presentation_layer_assignments()
|
||||||
self.materials = self.get_materials()
|
self.materials = self.get_materials()
|
||||||
@@ -670,18 +670,27 @@ class IfcParser():
|
|||||||
}
|
}
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_objectives(self):
|
def get_constraints(self):
|
||||||
results = {}
|
results = {}
|
||||||
class_path = self.data_dir + 'constraint/'
|
data_map = {
|
||||||
with open(class_path + 'objectives.csv', 'r') as f:
|
'name': 'Name',
|
||||||
data = list(csv.reader(f))
|
'description': 'Description',
|
||||||
keys = data.pop(0)
|
'constraint_grade': 'ConstraintGrade',
|
||||||
for row in data:
|
'constraint_source': 'ConstraintSource',
|
||||||
results[row[0]] = {
|
'user_defined_grade': 'UserDefinedGrade',
|
||||||
'ifc': None,
|
'objective_qualifier': 'ObjectiveQualifier',
|
||||||
'raw': row,
|
'user_defined_qualifier': 'UserDefinedQualifier',
|
||||||
'attributes': dict(zip(keys, row))
|
}
|
||||||
}
|
for constraint in bpy.context.scene.BIMProperties.constraints:
|
||||||
|
attributes = {}
|
||||||
|
for key, value in data_map.items():
|
||||||
|
if getattr(constraint, key):
|
||||||
|
attributes[value] = getattr(constraint, key)
|
||||||
|
results[constraint.name] = {
|
||||||
|
'ifc': None,
|
||||||
|
'raw': constraint,
|
||||||
|
'attributes': attributes
|
||||||
|
}
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_people(self):
|
def get_people(self):
|
||||||
@@ -1163,7 +1172,7 @@ class IfcExporter():
|
|||||||
self.create_document_references()
|
self.create_document_references()
|
||||||
self.create_classifications()
|
self.create_classifications()
|
||||||
self.create_classification_references()
|
self.create_classification_references()
|
||||||
self.create_objectives()
|
self.create_constraints()
|
||||||
self.create_psets()
|
self.create_psets()
|
||||||
self.create_libraries()
|
self.create_libraries()
|
||||||
self.create_map_conversion()
|
self.create_map_conversion()
|
||||||
@@ -1391,8 +1400,8 @@ class IfcExporter():
|
|||||||
for reference in self.ifc_parser.classification_references.values():
|
for reference in self.ifc_parser.classification_references.values():
|
||||||
reference['ifc'] = self.file.add(reference['raw_element'])
|
reference['ifc'] = self.file.add(reference['raw_element'])
|
||||||
|
|
||||||
def create_objectives(self):
|
def create_constraints(self):
|
||||||
for objective in self.ifc_parser.objectives.values():
|
for objective in self.ifc_parser.constraints.values():
|
||||||
objective['ifc'] = self.file.create_entity(
|
objective['ifc'] = self.file.create_entity(
|
||||||
'IfcObjective', **objective['attributes'])
|
'IfcObjective', **objective['attributes'])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user