From b9ad15c50f8e195b1bd2a3efd188b36db563d3fb Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 30 Oct 2023 09:30:48 +1100 Subject: [PATCH] Minor fix to Uniclass classification --- .../classifications/Uniclass July 2023.ifc | 42 +++++++++---------- .../uniclass_classification.py | 3 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/schema/classifications/Uniclass July 2023.ifc b/src/blenderbim/blenderbim/bim/schema/classifications/Uniclass July 2023.ifc index fc017abb92..fed1622e8f 100644 --- a/src/blenderbim/blenderbim/bim/schema/classifications/Uniclass July 2023.ifc +++ b/src/blenderbim/blenderbim/bim/schema/classifications/Uniclass July 2023.ifc @@ -1,25 +1,25 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); -FILE_NAME('','2023-10-25T10:22:27',(),(),'IfcOpenShell v0.7.0-c35be50c8','IfcOpenShell v0.7.0-c35be50c8',''); +FILE_NAME('','2023-10-30T09:25:24',(),(),'IfcOpenShell v0.7.0-c35be50c8','IfcOpenShell v0.7.0-c35be50c8',''); FILE_SCHEMA(('IFC4')); ENDSEC; DATA; #1=IFCCLASSIFICATION('RIBA Enterprises Ltd','July 2023','2023-07-01','Uniclass','Uniclass is a unified classification system made up of a set of tables that can be used by different parts of the industry in various ways.','https://uniclass.thenbs.com/',('_')); -#2=IFCCLASSIFICATIONREFERENCE($,'Ac','Activities',$,$,$); -#3=IFCCLASSIFICATIONREFERENCE($,'Co','Complexes',$,$,$); -#4=IFCCLASSIFICATIONREFERENCE($,'En','Entities',$,$,$); -#5=IFCCLASSIFICATIONREFERENCE($,'SL','Spaces / Locations',$,$,$); -#6=IFCCLASSIFICATIONREFERENCE($,'EF','Elements / Functions',$,$,$); -#7=IFCCLASSIFICATIONREFERENCE($,'Ss','Systems',$,$,$); -#8=IFCCLASSIFICATIONREFERENCE($,'Pr','Products',$,$,$); -#9=IFCCLASSIFICATIONREFERENCE($,'TE','Tools and equipment',$,$,$); -#10=IFCCLASSIFICATIONREFERENCE($,'PM','Project management',$,$,$); -#11=IFCCLASSIFICATIONREFERENCE($,'FI','Form of information',$,$,$); -#12=IFCCLASSIFICATIONREFERENCE($,'Ro','Roles',$,$,$); -#13=IFCCLASSIFICATIONREFERENCE($,'Ma','Materials',$,$,$); -#14=IFCCLASSIFICATIONREFERENCE($,'Pc','Properties and characteristics',$,$,$); -#15=IFCCLASSIFICATIONREFERENCE($,'Zz','CAD',$,$,$); +#2=IFCCLASSIFICATIONREFERENCE($,'Ac','Activities',#1,$,$); +#3=IFCCLASSIFICATIONREFERENCE($,'Co','Complexes',#1,$,$); +#4=IFCCLASSIFICATIONREFERENCE($,'En','Entities',#1,$,$); +#5=IFCCLASSIFICATIONREFERENCE($,'SL','Spaces / Locations',#1,$,$); +#6=IFCCLASSIFICATIONREFERENCE($,'EF','Elements / Functions',#1,$,$); +#7=IFCCLASSIFICATIONREFERENCE($,'Ss','Systems',#1,$,$); +#8=IFCCLASSIFICATIONREFERENCE($,'Pr','Products',#1,$,$); +#9=IFCCLASSIFICATIONREFERENCE($,'TE','Tools and equipment',#1,$,$); +#10=IFCCLASSIFICATIONREFERENCE($,'PM','Project management',#1,$,$); +#11=IFCCLASSIFICATIONREFERENCE($,'FI','Form of information',#1,$,$); +#12=IFCCLASSIFICATIONREFERENCE($,'Ro','Roles',#1,$,$); +#13=IFCCLASSIFICATIONREFERENCE($,'Ma','Materials',#1,$,$); +#14=IFCCLASSIFICATIONREFERENCE($,'PC','Properties and characteristics',#1,$,$); +#15=IFCCLASSIFICATIONREFERENCE($,'Zz','CAD',#1,$,$); #16=IFCCLASSIFICATIONREFERENCE($,'Zz_10','Title sheet',#15,$,$); #17=IFCCLASSIFICATIONREFERENCE($,'Zz_10_20','Drawing frame',#16,$,$); #18=IFCCLASSIFICATIONREFERENCE($,'Zz_10_20_45','Logo',#17,$,$); @@ -16494,7 +16494,7 @@ DATA; #16487=IFCCLASSIFICATIONREFERENCE($,'Ac_90_50_96','Water storing',#16445,$,$); #16488=IFCCLASSIFICATIONREFERENCE($,'Ac_90_50_97','Wet waste storing',#16445,$,$); #16489=IFCCLASSIFICATIONREFERENCE($,'Ac_90_50_98','Wine storing',#16445,$,$); -#16490=IFCCLASSIFICATIONREFERENCE($,'PC_10','Identifying properties',#1,$,$); +#16490=IFCCLASSIFICATIONREFERENCE($,'PC_10','Identifying properties',#14,$,$); #16491=IFCCLASSIFICATIONREFERENCE($,'PC_10_05','Administrative identifiers',#16490,$,$); #16492=IFCCLASSIFICATIONREFERENCE($,'PC_10_05_23','District',#16491,$,$); #16493=IFCCLASSIFICATIONREFERENCE($,'PC_10_05_48','Local authority',#16491,$,$); @@ -16558,7 +16558,7 @@ DATA; #16551=IFCCLASSIFICATIONREFERENCE($,'PC_10_90_87','Test authority',#16535,$,$); #16552=IFCCLASSIFICATIONREFERENCE($,'PC_10_90_89','Test conditions',#16535,$,$); #16553=IFCCLASSIFICATIONREFERENCE($,'PC_10_90_91','Test method',#16535,$,$); -#16554=IFCCLASSIFICATIONREFERENCE($,'PC_20','Descriptive properties',#1,$,$); +#16554=IFCCLASSIFICATIONREFERENCE($,'PC_20','Descriptive properties',#14,$,$); #16555=IFCCLASSIFICATIONREFERENCE($,'PC_20_05','Administrative description attributes',#16554,$,$); #16556=IFCCLASSIFICATIONREFERENCE($,'PC_20_05_15','Cost properties',#16555,$,$); #16557=IFCCLASSIFICATIONREFERENCE($,'PC_20_05_15_15','Cost discount',#16556,$,$); @@ -16891,7 +16891,7 @@ DATA; #16884=IFCCLASSIFICATIONREFERENCE($,'PC_20_91_79','Shape tolerance',#16872,$,$); #16885=IFCCLASSIFICATIONREFERENCE($,'PC_20_91_82','Squareness',#16872,$,$); #16886=IFCCLASSIFICATIONREFERENCE($,'PC_20_91_89','Texture tolerance',#16872,$,$); -#16887=IFCCLASSIFICATIONREFERENCE($,'PC_35','Performance characteristics',#1,$,$); +#16887=IFCCLASSIFICATIONREFERENCE($,'PC_35','Performance characteristics',#14,$,$); #16888=IFCCLASSIFICATIONREFERENCE($,'PC_35_05','Acoustic characteristics',#16887,$,$); #16889=IFCCLASSIFICATIONREFERENCE($,'PC_35_05_05','Acoustic impedance',#16888,$,$); #16890=IFCCLASSIFICATIONREFERENCE($,'PC_35_05_53','Noise absorption coefficient',#16888,$,$); @@ -17442,7 +17442,7 @@ DATA; #17435=IFCCLASSIFICATIONREFERENCE($,'PC_35_90_90_52','Melting point',#17427,$,$); #17436=IFCCLASSIFICATIONREFERENCE($,'PC_35_90_90_70','Radiation',#17427,$,$); #17437=IFCCLASSIFICATIONREFERENCE($,'PC_35_90_90_82','Specific heat',#17427,$,$); -#17438=IFCCLASSIFICATIONREFERENCE($,'PC_50','Installation and maintenance attributes',#1,$,$); +#17438=IFCCLASSIFICATIONREFERENCE($,'PC_50','Installation and maintenance attributes',#14,$,$); #17439=IFCCLASSIFICATIONREFERENCE($,'PC_50_10','Building fabric systems installation and maintenance attributes',#17438,$,$); #17440=IFCCLASSIFICATIONREFERENCE($,'PC_50_10_30','Fastening attributes',#17439,$,$); #17441=IFCCLASSIFICATIONREFERENCE($,'PC_50_10_30_29','Fastener type',#17440,$,$); @@ -17672,7 +17672,7 @@ DATA; #17665=IFCCLASSIFICATIONREFERENCE($,'PC_50_75_81','Safety and security status code',#17653,$,$); #17666=IFCCLASSIFICATIONREFERENCE($,'PC_50_75_83','Safety and security system status',#17653,$,$); #17667=IFCCLASSIFICATIONREFERENCE($,'PC_50_75_89','Timestamp',#17653,$,$); -#17668=IFCCLASSIFICATIONREFERENCE($,'PC_60','Operational attributes',#1,$,$); +#17668=IFCCLASSIFICATIONREFERENCE($,'PC_60','Operational attributes',#14,$,$); #17669=IFCCLASSIFICATIONREFERENCE($,'PC_60_25','Digital operation attributes',#17668,$,$); #17670=IFCCLASSIFICATIONREFERENCE($,'PC_60_25_04','Artificially intelligent',#17669,$,$); #17671=IFCCLASSIFICATIONREFERENCE($,'PC_60_25_15','Computer-assisted',#17669,$,$); @@ -17702,7 +17702,7 @@ DATA; #17695=IFCCLASSIFICATIONREFERENCE($,'PC_60_54_71','Retractable',#17688,$,$); #17696=IFCCLASSIFICATIONREFERENCE($,'PC_60_54_73','Rotating',#17688,$,$); #17697=IFCCLASSIFICATIONREFERENCE($,'PC_60_54_80','Sliding',#17688,$,$); -#17698=IFCCLASSIFICATIONREFERENCE($,'PC_90','Styles, periods and ages',#1,$,$); +#17698=IFCCLASSIFICATIONREFERENCE($,'PC_90','Styles, periods and ages',#14,$,$); #17699=IFCCLASSIFICATIONREFERENCE($,'PC_90_30','Geological periods',#17698,$,$); #17700=IFCCLASSIFICATIONREFERENCE($,'PC_90_30_10','Cenozoic era',#17699,$,$); #17701=IFCCLASSIFICATIONREFERENCE($,'PC_90_30_10_10','Quaternary period',#17700,$,$); diff --git a/src/blenderbim/scripts/classifications/uniclass_classification.py b/src/blenderbim/scripts/classifications/uniclass_classification.py index 0c3d182064..ce55fae9e7 100644 --- a/src/blenderbim/scripts/classifications/uniclass_classification.py +++ b/src/blenderbim/scripts/classifications/uniclass_classification.py @@ -33,13 +33,14 @@ tables = [ ("FI", "Form of information"), ("Ro", "Roles"), ("Ma", "Materials"), - ("Pc", "Properties and characteristics"), + ("PC", "Properties and characteristics"), ("Zz", "CAD"), ] for identification, name in tables: ref = ifc.create_entity("IfcClassificationReference", Identification=identification, Name=name) references[identification] = ref + ref.ReferencedSource = classification for filename in os.listdir(directory_path): if filename.endswith(".xlsx") and "change-log" not in filename and "codes-not-in-use" not in filename: