New UI to manage IFC constraints in the file

This commit is contained in:
Dion Moult
2020-07-06 17:26:38 +10:00
parent 436eb3a637
commit fda508e3f8
4 changed files with 106 additions and 0 deletions
@@ -483,6 +483,36 @@ class ClashSet(PropertyGroup):
b: CollectionProperty(name='Group B', type=ClashSource)
class Constraint(PropertyGroup):
name: StringProperty(name='Name')
description: StringProperty(name='Description')
constraint_grade: EnumProperty(items=[
('HARD', 'HARD', 'Qualifies a constraint such that it must be followed rigidly within or at the values set.'),
('SOFT', 'SOFT', 'Qualifies a constraint such that it should be followed within or at the values set.'),
('ADVISORY', 'ADVISORY', 'Qualifies a constraint such that it is advised that it is followed within or at the values set.'),
('USERDEFINED', 'USERDEFINED', 'A user-defined grade indicated by a separate attribute at the referencing entity.'),
('NOTDEFINED', 'NOTDEFINED', 'Grade has not been specified.'),
], name='Grade')
constraint_source: StringProperty(name='Source')
user_defined_grade: StringProperty(name='Custom Grade')
objective_qualifier: EnumProperty(items=[
('CODECOMPLIANCE', 'CODECOMPLIANCE', 'A constraint whose objective is to ensure satisfaction of a code compliance provision.'),
('CODEWAIVER', 'CODEWAIVER', 'A constraint whose objective is to identify an agreement that code compliance requirements (the waiver) will not be enforced.'),
('DESIGNINTENT', 'DESIGNINTENT', 'A constraint whose objective is to ensure satisfaction of a design intent provision.'),
('EXTERNAL', 'EXTERNAL', 'A constraint whose objective is to synchronize data with an external source such as a file'),
('HEALTHANDSAFETY', 'HEALTHANDSAFETY', 'A constraint whose objective is to ensure satisfaction of a health and safety provision.'),
('MERGECONFLICT', 'MERGECONFLICT', 'A constraint whose objective is to resolve a conflict such as merging data from multiple sources.'),
('MODELVIEW', 'MODELVIEW', 'A constraint whose objective is to ensure data conforms to a model view definition.'),
('PARAMETER', 'PARAMETER', 'A constraint whose objective is to calculate a value based on other referenced values.'),
('REQUIREMENT', 'REQUIREMENT', 'A constraint whose objective is to ensure satisfaction of a project requirement provision.'),
('SPECIFICATION', 'SPECIFICATION', 'A constraint whose objective is to ensure satisfaction of a specification provision.'),
('TRIGGERCONDITION', 'TRIGGERCONDITION', 'A constraint whose objective is to indicate a limiting value beyond which the condition of an object requires a particular form of attention.'),
('USERDEFINED', 'USERDEFINED', ''),
('NOTDEFINED', 'NOTDEFINED', '')
], name='Qualifier')
user_defined_qualifier: StringProperty(name='Custom Qualifier')
class BcfTopic(PropertyGroup):
name: StringProperty(name='Name')
@@ -956,6 +986,8 @@ class BIMProperties(PropertyGroup):
active_document_reference_index: IntProperty(name='Active Document Reference Index')
clash_sets: CollectionProperty(name='Clash Sets', type=ClashSet)
active_clash_set_index: IntProperty(name='Active Clash Set Index')
constraints: CollectionProperty(name='Constraints', type=Constraint)
active_constraint_index: IntProperty(name='Active Constraint Index')
class BCFProperties(PropertyGroup):