Engineering SHEET: /blog/通过blender玩转ifc/ REV: 2025-08-05

Play with IFC through Blender

Zhou Wenqi (Venchy) 85 min read

Play with IFC through Blender

Official Account: Non-Deconstructive · Author: Zhou Wenqi (Venchy)

Ifc model Ifc (Industry Foundation Classes), as the most popular general BIM data standard at the moment, contains all aspects of data in the entire life cycle of construction projects, from design planning to construction operation and maintenance.IFC was started in 1994, developed and maintained by the buildingSMART organization (formerly the International Alliance for Interoperability, IAI), and has been registered with the International Organization for Standardization. The latest version of the standard number is ISO 16739-1:2018. Common Ifc files are .ifc files. The Ifc architecture is defined in the EXPRESS language. The EXPRESS language is a conceptual architecture language developed by STEP.EXPRESS is used as an object-oriented information description language and is the foundation and core of STEP.It describes the structure of an IFC model as: canonical classes, attributes associated with the classes, constraints on the classes, and relationships between the classes and other constraints.IFC files are a plain text file format that can be viewed and edited with an ordinary text editor.But facing such a huge system, it is obviously unrealistic for us to directly read and understand such an ifc file through text. ISO-10303-21;HEADER;FILE_DESCRIPTION ((”), ‘2;1’);FILE_NAME (”, ‘2023-06-06T11:17:27’, (”), (”), ‘Xbim File Processor version 4.0.0.0’, ‘Xbim version 4.0.0.0’, ”);FILE_SCHEMA ((‘IFC4’));ENDSEC;DATA;#1=IFCPROJECT(‘1p5jvFiCb5_u2vPCqblkS,PCqblkS',,‘ThCAD2IFCProject’,,,,,,,(#14,#17,#18),#2);#2=IFCUNITASSIGNMENT((#3,#4,#5,#6,#7,#8,#9,#10,#11));#3=IFCSIUNIT(,.LENGTHUNIT.,.MILLI.,.METRE.);#4=IFCSIUNIT(,.AREAUNIT.,,.SQUARE_METRE.);#5=IFCSIUNIT(*,.VOLUMEUNIT.,,.CUBIC_METRE.);#6=IFCSIUNIT(,.SOLIDANGLEUNIT.,,.STERADIAN.);#7=IFCSIUNIT(*,.PLANEANGLEUNIT.,,.RADIAN.);#8=IFCSIUNIT(,.MASSUNIT.,,.GRAM.);#9=IFCSIUNIT(*,.TIMEUNIT.,,.SECOND.);#10=IFCSIUNIT(*,.THERMODYNAMICTEMPERATUREUNIT.,,.DEGREE_CELSIUS.);#11=IFCSIUNIT(*,.LUMINOUSINTENSITYUNIT.,,.LUMEN.);#12=IFCCARTESIANPOINT((0.,0.,0.));#13=IFCAXIS2PLACEMENT3D(#12,,,);#14=IFCGEOMETRICREPRESENTATIONCONTEXT(‘Building Model’,‘Model’,3,1.E-05,#13,);#15=IFCCARTESIANPOINT((0.,0.));#16=IFCAXIS2PLACEMENT2D(#15,);#17=IFCGEOMETRICREPRESENTATIONCONTEXT(‘Building Plan View’,‘Plan’,2,1.E-05,#16,);#20=IFCCARTESIANPOINT((0.,0.,0.));#19=IFCAXIS2PLACEMENT3D(#20,,);#18=IFCGEOMETRICREPRESENTATIONCONTEXT(,,3,1.E-05,#19,);#24=IFCDIRECTION((0.,0.,1.));#25=IFCDIRECTION((1.,0.,0.));…#867296=IFCRELAGGREGATES(,,,,,,#861849,(#862157));#867297=IFCRELAGGREGATES(,,,,,,#28,(#37,#57,#77,#12510,#20708,#45036,#67176,#89316,#111456,#133596,#155736,#177876,#200016,#222156,#244296,#266436,#288576,#310716,#328907,#350723,#372863,#395003,#417143,#439283,#461423,#483563,#505703,#527843,#549983,#572123,#594263,#616403,#638543,#660683,#678874,#700690,#722830,#744970,#767110,#789250,#811390,#833530,#855670));ENDSEC;END-ISO-10303-21;``` Many current architectural design-related software include IFC interfaces, such as Revit, Archicad, SAP2000, etc.However, the IFC interface of traditional design software basically only focuses on the functions of the software itself and the data it can provide.As for the value that the Ifc files exported by these software can create for architects or engineers, these software do not seem to be particularly concerned about it.Even if we want to use the IFC model, we need to import the IFC model into relevant software for further operations.IFC is only used as a pipeline to transmit data, and there will be problems such as data distortion in the process, and the connection between different platforms cannot be completely matched. So, is there any way for us to directly view and edit the model in the ifc file through visual means?A software that many friends are very familiar with for viewing ifc models is bimvision.We can open the ifc model directly through this software and view various information in the ifc model.However, this software is limited to viewing the information in the ifc model. It cannot collect, analyze and process data on the ifc model, nor can it modify the ifc model.Although under its architecture, engineers can develop some plug-ins to meet their own personalized needs, the threshold is still relatively high.

Image

In order to solve the above problems, the editor here recommends the Blender+BlenderBim solution to help you easily view and modify the ifc model, and also quickly parse the ifc model related data so that we can make further decisions.Blender is an open source, free, full-featured 3D software that supports Windows, Mac and Linux systems.Functions include modeling, materials, lighting, real-time rendering, 3D animation, sculpting, material drawing, post-production synthesis, green screen keying, camera tracking, physical effects simulation, etc.BlenderBIM is an IFC plug-in based on Blender. Users can use this plug-in to create an ifc model of a building in Blender, edit the relevant attributes of the ifc model, and obtain the relevant data of the ifc model. Installation of Blender and BlenderBim Blender download address: [Download — blender.org] (https://www.blender.org/download/) BlenderBim download address: [Download - install the BlenderBIM Add-on for Windows, Mac, and Linux] (https://blenderbim.org/download.html) After installing Blender, click Edit=》Preferences

Image

Click install under the add-ons tab and download the BlenderBim plug-in before installation.Click the radio button before the plug-in name to start the BlenderBim plug-in.

Image

After the installation is complete, click on the File menu of Blender, and commands such as New Ifc Project and Open Ifc Project will appear.At this point the BlenderBim plug-in is successfully installed.On the left side of the software interface, there are also many green icons used to create components in the Ifc model.

Image

View and edit models After opening the model, all components in the Ifc model will be displayed on the Outliner panel in the upper left corner of the software window.The Ifc model objects displayed on the panel match the data structure of Ifc.In the following example, the root directory is IfcProject, and the subordinate directory is IfcSite=》IfcBuilding=>IfcBuildingStorey=>IfcElement (including IfcWall, IfcSpace, etc.).

Image

Double-click any component under the interface, and we can view the properties of the corresponding component in the sense property window on the right side of the Blender interface.A series of attributes of the corresponding component, including GlobalId, Attributes, Properties, Quantities, etc., can be viewed from this window.We can even modify related properties, or the coordinates, dimensions, etc. of related objects through this window.

Image

Creation of models and components Click New Ifc Project in the File menu to create a new Ifc model.

Image

You can create a cube through the Add menu of the view form.

Image

After the cube is created, specify the geometry type and related parameters through the Ifc property interface.For example, if we specify the cube as IfcColumn, then the cube will be stored in the Ifc model as a column.As long as you find a way to create the geometry of each building component, you can give it Ifc-related attributes through BlenderBIM.

Image

We can also create components through some of the preset buttons in BlenderBim.For example, click the Create Wall button and follow the guidance of the window to create components with corresponding coordinates and corresponding geometric dimensions.

Image

Python activates your Ifc simple script Scripting is an important module of Blender.We can enter a Python script in the Scripting form and interact with the current model through the Python script.Click Scripting, then click New. At this time we can enter the corresponding Python code.

Image

We can try to obtain the properties of the components in the ifc model through the following piece of code: import ifcopenshell.utilimport ifcopenshell.util.element model = ifcopenshell.open(r’F:\2024\ifc\AC20-FZK-Haus.ifc’)wall=model.by_guid(‘16DNNqzfP2thtfaOflvsKA’)print(ifcopenshell.util.element.get_psets(wall)) Among them, the guid in model.by_guid can be obtained by clicking to view the data of the corresponding wall.

Image

After executing this script, you can view the pest data of the current wall: {‘Pset_WallCommon’: {‘ThermalTransmittance’: 0.4, ‘id’: 27639}, ‘AC_Pset_Name’: {‘Name’: ‘Wand-Ext-ERDG-4’, ‘id’: 27647}, ‘ArchiCADProperties’: {‘Komplette Element-ID’: ‘Wand-Ext-ERDG-4’, ‘Kompakte Element-ID’: ‘Wand-Ext-ERDG-4’, ‘Name des Sachmerkmal-Objekts’: ”, ‘Ursprungsgeschoss’: ‘Erdgeschoss’, ‘Raumname’: ‘Küche’, ‘Raumnummer’: ‘6’, ‘Ebene’: ‘Außenwände’, ‘Typ’: ‘Wand’, ‘Geschützt’: False, ‘Baustoff / Mehrschichtiger Aufbau / Profil / Schraffur’: ‘Leichtbeton 102890359’, ‘Etikettentext’: ”, ‘Eindeutige ID’: ‘A6C3DE63-3731-4F6A-947E-DE8A8295779F’, ‘Verknüpfte Änderungen’: ”, ‘Tragende Funktion’: ‘Nicht definiert’, ‘Lage’: ‘Nicht definiert’, ‘Element-Klassifizierung’: ‘Wand’, ‘Umbau-Status’: ‘Bestand’, ‘Anzeigen auf Umbau-Filter’: ‘Alle relevanten Filter’, ‘Struktur - Typ’: ‘Einfach’, ‘ARCHICAD IFC ID’: ‘16DNNqzfP2thtfaOflvsKA’, ‘Externe IFC ID’: ”, ‘Baustoff/Mehrschicht/Profil’: ‘Leichtbeton 102890359’, ‘Außenseite Oberfläche’: ‘Anstrich’, ‘Innenseite Oberfläche’: ‘Anstrich’, ‘Oberfläche Kante’: ‘Anstrich’, ‘Äußerer Neigungswinkel’: 90.0, ‘Innerer Neigungswinkel’: 90.0, ‘Wand Neigungstyp’: ‘gerade’, ‘Lage der Referenzlinie’: ‘Außen’, ‘Geschoss für Oberkantenverknüpfung’: ‘Nicht verknüpft’, ‘Geometriemethode’: ‘Uni’, ‘id’: 27684}, ‘BaseQuantities’: {‘Length’: 11.7, ‘Height’: 2.7, ‘Width’: 0.3, ‘GrossFootprintArea’: 3.51, ‘NetFootprintArea’: 3.51, ‘GrossSideArea’: 31.59, ‘NetSideArea’: 22.01625, ‘GrossVolume’: 9.477, ‘NetVolume’: 6.604875, ‘id’: 27729}, ‘ArchiCADQuantities’: {‘Höhenangabe zum Projekt-Nullpunkt’: 0.0, ‘Höhe zu Geschoss’: 0.0, ‘Höhe’: 2.7, ‘Oberflächenbereich’: 22.82625, ‘Netto-Volumen’: 6.604875, ‘Fläche’: 3.51, ‘Dicke’: 0.3, ‘Wandlänge an der Außenseite’: 12.0, ‘Wandlänge an der Innenseite’: 11.4, ‘Netto-Oberflächenbereich an der Außenseite’: 22.82625, ‘Netto-Oberflächenbereich an der Innenseite’: 21.20625, ‘Netto-Oberflächenbereich an den Kanten’: 8.70802597104, ‘Konditionales Volumen’: 6.604875, ‘Anzahl der Türen’: 1.0, ‘Anzahl der Fenster’: 2.0, ‘Anzahl der Durchbrüche (Anzahl der leeren Öffnungen)’: 0.0, ‘Anzahl der Stützen’: 0.0, ‘Kombinierte Breite der Türen’: 2.01, ‘Kombinierte Breite der Fenster’: 4.0, ‘Wandstärke am Ende’: 0.3, ‘Minimale Höhe der Wand’: 2.7, ‘Maximale Höhe der Wand’: 2.7, ‘Länge der Wand in der Achse’: 11.7, ‘Fläche der Wand’: 3.51, ‘Umfang der Wand’: 24.2485281374, ‘Brutto-Wandoberflächenbereich an der Innenseite’: 30.78, ‘Brutto-Wandoberflächenbereich an der Außenseite’: 32.4, ‘Brutto-Volumen der Wand ’: 9.477, ‘Analytische Oberfläche der Öffnungen an der Innenseite’: 9.57375, ‘Analytische Oberfläche der Öffnungen an der Außenseite’: 9.57375, ‘Analytisches Volumen der Öffnungen in der Wand’: 2.872125, ‘Wand-Schichtdicke an der Außenseite’: 0.0, ‘Wand-Schichtdicke an der Innenseite’: 0.0, ‘Dämmungsschichtdicke’: 0.0, ‘Luftschichtdicke’: 0.0, ‘Minimale Höhe der Wandschicht an der Außenseite’: 0.0, ‘Maximale Höhe der Wandschicht an der Außenseite’: 0.0, ‘Minimale Höhe der Wandschicht an der Innenseite’: 0.0, ‘Maximale Höhe der Wandschicht an der Innenseite’: 0.0, ‘Konditionale Länge an der Außenseite’: 9.99, ‘Konditionale Länge an der Innenseite’: 9.39, ‘Konditionaler Oberflächenbereich an der Außenseite’: 27.62625, ‘Konditionaler Oberflächenbereich an der Innenseite’: 26.00625, ‘Wand-Schichtvolumen an der Außenseite’: 0.0, ‘Wand-Schichtvolumen an der Innenseite’: 0.0, ‘Konditionales Schichtvolumen an der Außenseite’: 0.0, ‘Konditionales Wand-Schichtvolumen an der Innenseite’: 0.0, ‘Länge der Referenzlinie’: 12.0, ‘Abstand zu Ursprungsgeschoss’: 0.0, ‘Abstand Oberkante’: 0.0, ‘Durchschnittliche Länge’: 11.7, ‘Oberflächenbereich der Fenster in der Wand’: 4.8, ‘Oberflächenbereich der Türen in der Wand’: 4.77375, ‘Oberflächenbereich der leeren Öffnungen in der Wand’: 0.0, ‘Volumen der Stützen’: 0.0, ‘id’: 27789}} As you can see, through a simple Python script, we obtain information about all attributes of the corresponding component. Traverse the entire Ifc file Next, we can try to traverse the components in all floors in the entire Ifc model through Python. Let’s look at this data structure diagram of the Ifc model:

Image

Through this figure we can see the entire Ifc model data structure relationship diagram.At this time, we can obtain the component data of the entire model through the Python script in Blender. import ifcopenshellimport ifcopenshell.utilimport ifcopenshell.util.elementfrom ifcopenshell import *

model = ifcopenshell.open(r’F:\2024\Ifc\AC20-FZK-Haus.ifc’)project=model.by_type(“IfcProject”)[0]print(“project:“+str(project))site= project.IsDecomposedBy[0].RelatedObjects[0]print(“site:“+str(site))building= site.IsDecomposedBy[0].RelatedObjects[0]print(“building:“+str(building))buildingStoreys= building.IsDecomposedBy[0].RelatedObjectsprint(“storeys:“+str(buildingStoreys))for buildingStorey in buildingStoreys: storeyInfo= buildingStorey.get_info() print(storeyInfo) elements= buildingStorey.ContainsElements[0] print(elements) elementsInFloor= elements.RelatedElements print(elementsInFloor)for elementItem in elementsInFloor: print(elementItem) print(elementItem.GlobalId) Let’s look at the execution results of the above code: project:#66=IfcProject(‘0lY6P5Ur90TAQnnnI6wtnb’,#12,‘Projekt-FZK-Haus’,‘Projekt FZK-House create by KHH Forschuungszentrum Karlsruhe’,,,,,(#62,#374),#49)site:#389=IfcSite('0KMpiAlnb52RgQuM1CwVfd',#12,'Gelaende','Ebenes Gelaende','LandUse',#115,#383,,.ELEMENT.,(49,6,1,566000),(8,26,11,540400),110.,,,)building:#434=IfcBuilding(‘2hQBAVPOr5VxhS3Jl0O47h’,#12,‘FZK-Haus’,‘FZK-Haus create by KHH / IAI / FZK’,‘Wohnhaus’,#432,,,,.ELEMENT.,,,,)storeys:(#479=IfcBuildingStorey('2eyxpyOx95m90jmsXLOuR0',#12,'Erdgeschoss',,,#477,,‘ACID00000001-0000-0000-0000-000000000000’,.ELEMENT.,0.), #35065=IfcBuildingStorey(‘273g3wqLzDtfYIl7qqkgcO’,#12,‘Dachgeschoss’,,,,#35064,,'ACID00000002-0000-0000-0000-000000000000',.ELEMENT.,2.7)){'id': 479, 'type': 'IfcBuildingStorey', 'GlobalId': '2eyxpyOx95m90jmsXLOuR0', 'OwnerHistory': #12=IfcOwnerHistory(#7,#11,,.ADDED.,,,,,1482339244), 'Name': 'Erdgeschoss', 'Description': None, 'ObjectType': None, 'ObjectPlacement': #477=IfcLocalPlacement(#432,#476), 'Representation': None, 'LongName': 'ACID00000001-0000-0000-0000-000000000000', 'CompositionType': 'ELEMENT', 'Elevation': 0.0}#14517=IfcRelContainedInSpatialStructure('13J1BKcWxmCqHLM0nJ4nFJ',#12,,,(#14502,#15042,#15372,#15848,#16507,#16982,#17040,#17468,#18407,#18465,#18698,#19199,#19504,#20069,#20268,#20299,#20329,#20374,#20598,#20808,#21966,#23024,#23944,#27013,#27421,#27833,#28113,#31079,#31470,#31818,#32098,#32407,#32829,#33109,#33389,#33672,#34509,#35053),#479)(#14502=IfcStair('38a9vdh9bF5Qg28GWyHhlr',#12,'Wendeltreppe',,,#502,#14498,'79A67A01-C95B-4209-86-9A-74983B65305C',), #15042=IfcWallStandardCase(‘2XPyKWY018sA1ygZKgQPtU’,#12,‘Wand-Int-ERDG-4’,,,,#14983,#15037,‘BC6F0F70-6195-495E-A2-FC-239713029DB1’,), #15372=IfcAnnotation('2TSghi3E94BuNE_F6jBcWe',#12,,,,,#15264,#15369), #15848=IfcAnnotation(‘0j7WClqLTB0gkHE605BLnY’,#12,,,,,#15384,#15845), #16507=IfcAnnotation('3BTqRqk7D5EhoEfLyYPgs’,#12,,,,,#15859,#16504), #16982=IfcAnnotation('11pyNSTMP9zfUCy679gsvT',#12,,,,,#16518,#16979), #17040=IfcWallStandardCase(‘3PfS__Y_DBAfq5naM6zD2Z’,#12,‘Wand-Int-ERDG-2’,,,,#16993,#17035,‘40F78310-9E7E-4793-BC-9E-DB102FD72B73’,), #17468=IfcDoor('1Oms875aH3Wg9l65H2ZGw’,#12,‘Innentuer-1’,,,,#17302,#17464,‘E605AACB-6C4E-458D-93-46-5D9D8C7C21D3’,2.01,0.885,,,,), #18407=IfcAnnotation('3YZcx3Gb58SwNRLuheFOxL',#12,,,,,#17759,#18404), #18465=IfcWallStandardCase(‘2ptk1k7qn8_Qk22vjh0DE',#12,'Wand-Int-ERDG-1',,,#18418,#18460,'8C826359-B394-49D6-BD-D5-49D50F806B56',), #18698=IfcWallStandardCase(‘3jjW3rL656ex34Gws22EfM’,#12,‘Wand-Int-ERDG-3’,,,,#18651,#18693,‘2197C9B9-DEF1-444F-B8-1E-1DB092762AB7’,), #19199=IfcDoor('0pGAjlJMP3ifYPATVF5xAR',#12,'Innentuer-2',,,#19029,#19195,'CBFAA406-7368-4C3F-96-65-F3ED0FC60C2F',2.01,0.885,,,,), #19504=IfcDoor(‘2qiPPF3FrF8OIqfrKiSUqm’,#12,‘Innentuer-3’,,,,#19486,#19500,‘12291272-8C4D-42C2-A4-E5-68086A355C33’,2.01,0.885,,,,), #20069=IfcAnnotation('0dGzbiP6H1sPcT0NmqaFGO',#12,,,,,#19789,#20066), #20268=IfcAnnotation(‘2Ml9lHXiTBN8zHbeU1ns5',#12,,,,,#20080,#20265), #20299=IfcAnnotation(‘2HtybvLgf93veGIhadqbJ9’,#12,,,,,#20279,#20296), #20329=IfcAnnotation('1WAtLpg_nDBxKhzIXT_jnH',#12,,,,,#20310,#20326), #20374=IfcBeam(‘3tCgZT92j6fw8fXgwCL3Jm’,#12,‘Unterzug-1’,,'Radial Gradient Fill 1515460218 200 x 240',#20340,#20370,'EAFC436F-7CDC-482B-8B-93-5FDB86D941A9',), #20598=IfcWallStandardCase(‘1wmdwWPjDYuku_ghVkynE',#12,'Wand-Int-ERDG-5',,,#20551,#20593,'623FF5CC-008F-4D9B-BE-AC-E81A16C53080',), #20808=IfcAnnotation(‘1TKECZOIj9cBBj4ne6lhuA’,#12,,,,,#20784,#20805), #21966=IfcWallStandardCase('3rPX_Juz59peXXY6wDJl18',#12,'Wand-Ext-ERDG-1',,,#21917,#21961,'BEF1E630-DE4B-41C5-AD-66-B87F1A8D67A1',), #23024=IfcWindow(‘1srAIR4T8ihLXSNHmUSET',#12,'EG-Fenster-6',,,#22372,#23020,'2872C43C-81BB-4535-95-65-B3AC3FB4DE23',1.2,2.,,,,), #23944=IfcWindow(‘0B1RwEzzP3CfME5NRVqh5',#12,'EG-Fenster-7',,,#23298,#23940,'E5AC7902-7454-439D-AF-DD-A1E5E37A0D08',1.2,2.,,,,), #27013=IfcDoor(‘2jTRqchjf7oB0yhQ6462T0’,#12,‘Haustuer’,,,,#24218,#27009,‘3CAFB746-2204-4C6C-BF-ED-F5FE276FA162’,2.01,1.01,,,,), #27421=IfcWallStandardCase('16DNNqzfP2thtfaOflvsKA',#12,'Wand-Ext-ERDG-4',,,#27374,#27416,'A6C3DE63-3731-4F6A-94-7E-DE8A8295779F',), #27833=IfcWindow(‘25nJxEpYf8LRDJNkMUVO0m’,#12,‘EG-Fenster-4’,,,,#27815,#27829,‘436D2D20-7879-42FD-A7-70-F2BECB09D642’,1.2,2.,,,,), #28113=IfcWindow('3BFcylCsX74PQAoRAe5fNv',#12,'EG-Fenster-5',,,#28095,#28109,'EE544359-8729-43CD-AE-E2-4BB37935CFDA',1.2,2.,,,,), #31079=IfcDoor(‘1MgxUrX1Fiwe3P64ww7U5',#12,'Terrassentuer',,,#28375,#31075,'AA410C09-759E-446C-95-DA-CF8531C8625F',2.375,2.01,,,,), #31470=IfcWallStandardCase(‘25fsbPyk15VvuXIyNKenK',#12,'Wand-Ext-ERDG-3',,,#31423,#31465,'D1BD94FD-C699-41C5-B0-98-57167561802A',), #31818=IfcWindow(‘13aSY79zb8fP4HApEJ0z_e’,#12,‘EG-Fenster-8’,,,,#31800,#31814,‘8FAFF59C-23BB-48D6-9C-CE-C4F804C53C9A’,1.2,2.,,,,), #32098=IfcWindow('2EQh_jhP1B_A_AMuSJc5E0',#12,'EG-Fenster-9',,,#32080,#32094,'A896A1CB-16B1-4CCD-A5-98-F5C5BC0C37DE',1.2,2.,,,,), #32407=IfcWallStandardCase(‘1bzfVsJqn8De5PukCrqylz’,#12,‘Wand-Ext-ERDG-2’,,,,#32360,#32402,‘74EAE11D-EA09-459E-92-62-5370AED48E8E’,), #32829=IfcWindow('1TAI4ouKX4Xx4lBDZIu5qM',#12,'EG-Fenster-1',,,#32811,#32825,'EAC2BE5E-BCD2-474E-95-24-57C652F96BF7',1.2,2.,,,,), #33109=IfcWindow(‘2Q9w7oRXP249jBobEMVqlZ’,#12,‘EG-Fenster-2’,,,,#33091,#33105,‘84B24574-B3EE-412A-A4-33-CE7E10ED2A8D’,1.2,2.,,,,), #33389=IfcWindow('1DiYqhfzH9xxuJdVHwXCNa',#12,'EG-Fenster-3',,,#33371,#33385,'EDE1E333-3D1C-441D-BE-45-790DF31E9DDC',1.2,2.,,,,), #33672=IfcAnnotation(‘0CWpGkM7zEROS7WsgthNfA’,#12,,,,,#33651,#33669), #34509=IfcSlab('1pPHnf7cXCpPsNEnQf8_6B',#12,'Bodenplatte',,,#34464,#34505,'E4D9CD4B-CA43-4735-94-BD-1FD4376BD455',.BASESLAB.), #35053=IfcAnnotation('1fzvgX3pDB88Tz63VWPBLu',#12,,,,,#35036,#35050))#14502=IfcStair(‘38a9vdh9bF5Qg28GWyHhlr’,#12,‘Wendeltreppe’,,,,#502,#14498,‘79A67A01-C95B-4209-86-9A-74983B65305C’,)38a9vdh9bF5Qg28GWyHhlr#15042=IfcWallStandardCase('2XPyKWY018sA1ygZKgQPtU',#12,'Wand-Int-ERDG-4',,,#14983,#15037,'BC6F0F70-6195-495E-A2-FC-239713029DB1',)2XPyKWY018sA1ygZKgQPtU#15372=IfcAnnotation(‘2TSghi3E94BuNE_F6jBcWe’,#12,,,,,#15264,#15369)2TSghi3E94BuNE_F6jBcWe#15848=IfcAnnotation('0j7WClqLTB0gkHE605BLnY',#12,,,,,#15384,#15845)0j7WClqLTB0gkHE605BLnY#16507=IfcAnnotation(‘3BTqRqk7D5EhoEfLyYPgs',#12,,,,,#15859,#16504)3BTqRqk7D5EhoEfLyYPgs#16982=IfcAnnotation('11pyNSTMP9zfUCy679gsvT',#12,,,,,#16518,#16979)11pyNSTMP9zfUCy679gsvT#17040=IfcWallStandardCase(‘3PfS__Y_DBAfq5naM6zD2Z’,#12,‘Wand-Int-ERDG-2’,,,,#16993,#17035,‘40F78310-9E7E-4793-BC-9E-DB102FD72B73’,)3PfS__Y_DBAfq5naM6zD2Z#17468=IfcDoor('1Oms875aH3Wg9l65H2ZGw’,#12,‘Innentuer-1’,,,,#17302,#17464,‘E605AACB-6C4E-458D-93-46-5D9D8C7C21D3’,2.01,0.885,,,,)1Oms875aH3Wg)1Oms875aH3Wg9l65H2ZGw#18407=IfcAnnotation(‘3YZcx3Gb58SwNRLuheFOxL’,#12,,,,,#17759,#18404)3YZcx3Gb58SwNRLuheFOxL#18465=IfcWallStandardCase('2ptk1k7qn8_Qk22vjh0DE’,#12,‘Wand-Int-ERDG-1’,,,,#18418,#18460,‘8C826359-B394-49D6-BD-D5-49D50F806B56’,)2ptk1k7qn8Qk22vjh)2ptk1k7qn8_Qk22vjh0DE#18698=IfcWallStandardCase(‘3jjW3rL656ex34Gws22EfM’,#12,‘Wand-Int-ERDG-3’,,,,#18651,#18693,‘2197C9B9-DEF1-444F-B8-1E-1DB092762AB7’,)3jjW3rL656ex34Gws22EfM#19199=IfcDoor('0pGAjlJMP3ifYPATVF5xAR',#12,'Innentuer-2',,,#19029,#19195,'CBFAA406-7368-4C3F-96-65-F3ED0FC60C2F',2.01,0.885,,,,)0pGAjlJMP3ifYPATVF5xAR#19504=IfcDoor(‘2qiPPF3FrF8OIqfrKiSUqm’,#12,‘Innentuer-3’,,,,#19486,#19500,‘12291272-8C4D-42C2-A4-E5-68086A355C33’,2.01,0.885,,,,)2qiPPF3FrF8OIqfrKiSUqm#20069=IfcAnnotation('0dGzbiP6H1sPcT0NmqaFGO',#12,,,,,#19789,#20066)0dGzbiP6H1sPcT0NmqaFGO#20268=IfcAnnotation(‘2Ml9lHXiTBN8zHbeU1ns5',#12,,,,,#20080,#20265)2Ml9lHXiTBN8zHbeU1ns5#20299=IfcAnnotation('2HtybvLgf93veGIhadqbJ9',#12,,,,,#20279,#20296)2HtybvLgf93veGIhadqbJ9#20329=IfcAnnotation(‘1WAtLpg_nDBxKhzIXT_jnH’,#12,,,,,#20310,#20326)1WAtLpg_nDBxKhzIXT_jnH#20374=IfcBeam('3tCgZT92j6fw8fXgwCL3Jm',#12,'Unterzug-1',,‘Radial Gradient Fill 1515460218 200 x 240’,#20340,#20370,‘EAFC436F-7CDC-482B-8B-93-5FDB86D941A9’,)3tCgZT92j6fw8fXgwCL3Jm#20598=IfcWallStandardCase('1wmdwWPjDYuku_ghVkynE’,#12,‘Wand-Int-ERDG-5’,,,,#20551,#20593,‘623FF5CC-008F-4D9B-BE-AC-E81A16C53080’,)1)1wmdwWPjDYuku_ghVkynE#20808=IfcAnnotation(‘1TKECZOIj9cBBj4ne6lhuA’,#12,,,,,#20784,#20805)1TKECZOIj9cBBj4ne6lhuA#21966=IfcWallStandardCase('3rPX_Juz59peXXY6wDJl18',#12,'Wand-Ext-ERDG-1',,,#21917,#21961,'BEF1E630-DE4B-41C5-AD-66-B87F1A8D67A1',)3rPX_Juz59peXXY6wDJl18#23024=IfcWindow(‘1srAIR4T8ihLXSNHmUSET',#12,'EG-Fenster-6',,,#22372,#23020,'2872C43C-81BB-4535-95-65-B3AC3FB4DE23',1.2,2.,,,,)1srAIR4T8ihLXSNHmUSET#23944=IfcWindow('0B1RwEzzP3CfME5NRVqh5’,#12,‘EG-Fenster-7’,,,,#23298,#23940,‘E5AC7902-7454-439D-AF-DD-A1E5E37A0D08’,1.2,2.,,,,)0B1RwEzzP3CfME5NR)0B1RwEzzP3CfME5NRVqh5#27013=IfcDoor(‘2jTRqchjf7oB0yhQ6462T0’,#12,‘Haustuer’,,,,#24218,#27009,‘3CAFB746-2204-4C6C-BF-ED-F5FE276FA162’,2.01,1.01,,,,)2jTRqchjf7oB0yhQ6462T0#27421=IfcWallStandardCase('16DNNqzfP2thtfaOflvsKA',#12,'Wand-Ext-ERDG-4',,,#27374,#27416,'A6C3DE63-3731-4F6A-94-7E-DE8A8295779F',)16DNNqzfP2thtfaOflvsKA#27833=IfcWindow(‘25nJxEpYf8LRDJNkMUVO0m’,#12,‘EG-Fenster-4’,,,,#27815,#27829,‘436D2D20-7879-42FD-A7-70-F2BECB09D642’,1.2,2.,,,,)25nJxEpYf8LRDJNkMUVO0m#28113=IfcWindow('3BFcylCsX74PQAoRAe5fNv',#12,'EG-Fenster-5',,,#28095,#28109,'EE544359-8729-43CD-AE-E2-4BB37935CFDA',1.2,2.,,,,)3BFcylCsX74PQAoRAe5fNv#31079=IfcDoor(‘1MgxUrX1Fiwe3P64ww7U5',#12,'Terrassentuer',,,#28375,#31075,'AA410C09-759E-446C-95-DA-CF8531C8625F',2.375,2.01,,,,)1MgxUrX1Fiwe3P64ww7U5#31470=IfcWallStandardCase('25fsbPyk15VvuXIyNKenK’,#12,‘Wand-Ext-ERDG-3’,,,,#31423,#31465,‘D1BD94FD-C699-41C5-B0-98-57167561802A’,)25fsbPyk15VvuXI)25fsbPyk15VvuXIyNKenK#31818=IfcWindow(‘13aSY79zb8fP4HApEJ0z_e’,#12,‘EG-Fenster-8’,,,,#31800,#31814,‘8FAFF59C-23BB-48D6-9C-CE-C4F804C53C9A’,1.2,2.,,,,)13aSY79zb8fP4HApEJ0z_e#32098=IfcWindow('2EQh_jhP1B_A_AMuSJc5E0',#12,'EG-Fenster-9',,,#32080,#32094,'A896A1CB-16B1-4CCD-A5-98-F5C5BC0C37DE',1.2,2.,,,,)2EQh_jhP1B_A_AMuSJc5E0#32407=IfcWallStandardCase(‘1bzfVsJqn8De5PukCrqylz’,#12,‘Wand-Ext-ERDG-2’,,,,#32360,#32402,‘74EAE11D-EA09-459E-92-62-5370AED48E8E’,)1bzfVsJqn8De5PukCrqylz#32829=IfcWindow('1TAI4ouKX4Xx4lBDZIu5qM',#12,'EG-Fenster-1',,,#32811,#32825,'EAC2BE5E-BCD2-474E-95-24-57C652F96BF7',1.2,2.,,,,)1TAI4ouKX4Xx4lBDZIu5qM#33109=IfcWindow(‘2Q9w7oRXP249jBobEMVqlZ’,#12,‘EG-Fenster-2’,,,,#33091,#33105,‘84B24574-B3EE-412A-A4-33-CE7E10ED2A8D’,1.2,2.,,,,)2Q9w7oRXP249jBobEMVqlZ#33389=IfcWindow('1DiYqhfzH9xxuJdVHwXCNa',#12,'EG-Fenster-3',,,#33371,#33385,'EDE1E333-3D1C-441D-BE-45-790DF31E9DDC',1.2,2.,,,,)1DiYqhfzH9xxuJdVHwXCNa#33672=IfcAnnotation(‘0CWpGkM7zEROS7WsgthNfA’,#12,,,,,#33651,#33669)0CWpGkM7zEROS7WsgthNfA#34509=IfcSlab('1pPHnf7cXCpPsNEnQf8_6B',#12,'Bodenplatte',,,#34464,#34505,'E4D9CD4B-CA43-4735-94-BD-1FD4376BD455',.BASESLAB.)1pPHnf7cXCpPsNEnQf8_6B#35053=IfcAnnotation('1fzvgX3pDB88Tz63VWPBLu',#12,,,,,#35036,#35050)1fzvgX3pDB88Tz63VWPBLu{‘id’: 35065, ‘type’: ‘IfcBuildingStorey’, ‘GlobalId’: ‘273g3wqLzDtfYIl7qqkgcO’, ‘OwnerHistory’: #12=IfcOwnerHistory(#7,#11,,.ADDED.,,.ADDED.,,,,,1482339244), ‘Name’: ‘Dachgeschoss’, ‘Description’: None, ‘ObjectType’: None, ‘ObjectPlacement’: #35064=IfcLocalPlacement(#432,#35063), ‘Representation’: None, ‘LongName’: ‘ACID00000002-0000-0000-0000-000000000000’, ‘CompositionType’: ‘ELEMENT’, ‘Elevation’: 2.7}#35172=IfcRelContainedInSpatialStructure(‘3w5Kjolx7vw_AxKOfOc7wq’,#12,,,,(#35169,#35304,#35427,#35550,#35673,#35796,#35919,#36042,#36165,#36288,#36411,#36534,#36657,#36780,#36903,#37026,#37149,#37272,#37395,#37582,#37710,#37833,#37956,#38079,#38202,#38325,#38448,#38571,#38694,#38817,#38940,#39063,#39186,#39309,#39432,#39555,#39678,#39801,#39924,#40047,#40170,#40293,#40416,#40539,#40662,#49831,#59075,#59290,#59553,#59753,#60012,#66459,#67536,#67828,#74280,#75347,#75775,#76112),#35065)(#35169=IfcMember(‘0oTQ6V1VbChulreA_hfmUa’,#12,‘Sparren-1’,,,,#35085,#35165,‘4E567244-877A-453F-BD-15-E8D98D599364’,), #35304=IfcMember('1tpUOcVEPCGgFqSz0VbniQ',#12,'Sparren-2',,,#35287,#35300,'C5F380CE-4BE5-466B-BC-4B-3A944CEE034E',), #35427=IfcMember(‘1ulHlNTuj798Os3k9phhVC’,#12,‘Sparren-3’,,,,#35410,#35423,‘6900A38D-6218-470C-AC-22-9AFA78DAFBA8’,), #35550=IfcMember('1OckORehXEoB_KILQGJao5',#12,'Sparren-4',,,#35533,#35546,'4C100AD3-729F-46E0-BD-62-DE5D7DA40117',), #35673=IfcMember(‘0nsN_jkIrBQBuGFMg_zMEg’,#12,‘Sparren-5’,,,,#35656,#35669,‘3C8A05AD-ECBB-4E09-B7-46-95B6A3DF895C’,), #35796=IfcMember('31Quw2HAvFqv9_JgCuemp’,#12,‘Sparren-6’,,,,#35779,#35792,‘860FAA0C-B6F9-41C9-B0-FC-435F2488ECA6’,), #35919=IfcMember('35W3cFc4L7MhJR0gIk9uis',#12,'Sparren-7',,,#35902,#35915,'3482C9DC-403F-437C-94-B9-0E7ACBDA5DBF',), #36042=IfcMember(‘3F58AqxJfFQkuoceQhWg3',#12,'Sparren-8',,,#36025,#36038,'05E9C0F2-246F-4C01-A3-3C-ABB1F44064B4',), #36165=IfcMember(‘1nGDFBBHvBJ9NmlweQO0fX’,#12,‘Sparren-9’,,,,#36148,#36161,‘2968F842-8ADC-4770-91-67-18314645959B’,), #36288=IfcMember('3qFc3Wrr9BBPJyb2wB4Ra’,#12,‘Sparren-10’,,,,#36271,#36284,‘639CABF2-BEEF-41F8-9F-C4-7379CD6756B8’,), #36411=IfcMember('37ab3q_iz8XRterfnMKTQX',#12,'Sparren-11',,,#36394,#36407,'1AB90595-0D25-474F-96-60-565DF04537D3',), #36534=IfcMember(‘3xdLwxTMD7bw4hWoOQL41M’,#12,‘Sparren-12’,,,,#36517,#36530,‘38A8137C-9D72-40E7-98-54-BAA748BE06F0’,), #36657=IfcMember('2OHMT7B69F5PRG_f3rMcjF',#12,'Sparren-13',,,#36640,#36653,'72ECFA45-517E-45A7-A9-F0-58BB40719283',), #36780=IfcMember(‘34zPS2PUTBDOe7g7RIRXK0’,#12,‘Sparren-14’,,,,#36763,#36776,‘00000000-0000-0000-00-00-000000000000’,), #36903=IfcMember('0VzptM87L6uOjQj08tTXIQ',#12,'Sparren-15',,,#36886,#36899,'BE5019AF-A097-455A-8D-66-DE59506D51CF',), #37026=IfcMember(‘2CxE0jXr8iOH1VC2gLCXX',#12,'Sparren-16',,,#37009,#37022,'0EAB97A9-E52A-4D7B-84-E2-0AFFA517A7C3',), #37149=IfcMember(‘3sGiUZAX499eUK87UfZk_',#12,'Sparren-17',,,#37132,#37145,'30C22D1D-028D-4B38-BE-CD-BF763016FE7B',), #37272=IfcMember(‘0q1clcN4jF4gdikC9OySy7’,#12,‘Sparren-18’,,,,#37255,#37268,‘78E8AC76-2667-4770-91-D7-813BE341C319’,), #37395=IfcMember('36KGWr2Rv8QuUhNnocm2nH',#12,'Sparren-19',,,#37378,#37391,'264D278D-153D-4271-87-B7-5ACB8AB7C031',), #37582=IfcBeam(‘0eaC0nL3XAOfFxRXK_2iAr’,#12,‘Pfette-2-1’,,'',#37501,#37578,'542BAFA7-D3B2-4074-B0-AF-859DB4CE679A',), #37710=IfcMember(‘0OKCG9uG53i9K16_x3YNfz’,#12,‘Sparren-20’,,,,#37693,#37706,‘ABC5FCBF-447C-455B-8A-94-54C01FF84C7D’,), #37833=IfcMember('3ePWkSzvLApwXTt3b0I2nV',#12,'Sparren-21',,,#37816,#37829,'7D626D3E-AA80-4308-86-DA-76F09E2350F5',), #37956=IfcMember(‘09OmJpUcj4WvNp2dXHFMWj’,#12,‘Sparren-22’,,,,#37939,#37952,‘478277F6-2A8B-4D9B-A7-C6-59173581CD24’,), #38079=IfcMember('3iSL8frGLDweFar9j4zgJ_',#12,'Sparren-23',,,#38062,#38075,'3DB3AE4B-A425-47F3-BB-76-E3009AE09ABB',), #38202=IfcMember(‘23pmL_2aH88OVqWp_5Lfkf’,#12,‘Sparren-24’,,,,#38185,#38198,‘1FD04C72-582E-4AB8-B8-09-181F7DD7D62F’,), #38325=IfcMember('06JZMOVBX8VucSQwQ3o8d’,#12,‘Sparren-25’,,,,#38308,#38321,‘DDE46763-BE57-4EF4-A5-94-B80ED2242C61’,), #38448=IfcMember('31ry3UPYD7weLluBlhQxXZ',#12,'Sparren-26',,,#38431,#38444,'CAE5E5C0-4299-44F4-A2-1A-688219A1DA30',), #38571=IfcMember(‘20AsUDMgH0JwAitydKgsOm’,#12,‘Sparren-27’,,,,#38554,#38567,‘08446AD9-0161-4E13-8B-5D-20F9D44DB92A’,), #38694=IfcMember('2SfSpj_pX9nvTeCOxeKqTd',#12,'Sparren-28',,,#38677,#38690,'29979C4B-420D-4ED2-B5-48-6AE887E69AD4',), #38817=IfcMember(‘17MHCgVYn2YPLX56yXUJbL’,#12,‘Sparren-29’,,,,#38800,#38813,‘8B9D9C34-42AA-4C87-A3-E8-C117928F7CD6’,), #38940=IfcMember('2XyYurmzzDOAIoZ52R97Jm',#12,'Sparren-30',,,#38923,#38936,'56BAD4E8-0059-4C72-85-8A-9B23D2E15426',), #39063=IfcMember(‘0hRh9WBjCLwlAiq3vfmg9',#12,'Sparren-31',,,#39046,#39059,'C9E34584-2109-4676-8F-0C-A5C9428DA4B4',), #39186=IfcMember(‘1NBDw_i_jDu7IjvwmbPmx',#12,'Sparren-32',,,#39169,#39182,'62D6313A-B4FB-45BF-B3-97-10D01124A4F9',), #39309=IfcMember(‘2DHOLoObDkAtwqVzNdUnS',#12,'Sparren-33',,,#39292,#39305,'E4FF91FA-3AE7-4591-8D-5F-61E57F7BA5DE',), #39432=IfcMember(‘1qMEiq1Qz6guq8g1GCODiJ’,#12,‘Sparren-34’,,,,#39415,#39428,‘3A999AF6-1C12-413A-89-B2-BF4A3CAEAD63’,), #39555=IfcMember('2AxITdtlD1h9Y3ye8U93bV',#12,'Sparren-35',,,#39538,#39551,'2B89760B-0C8D-4559-A3-B2-5B1635543320',), #39678=IfcMember(‘0DTRkEz0r6gvzG6VdDr24n’,#12,‘Sparren-36’,,,,#39661,#39674,‘A4621E86-FF56-40DC-B3-C2-2633C779B3A5’,), #39801=IfcMember('3UTqpydzf7i8J6iMY2tHil',#12,'Sparren-37',,,#39784,#39797,'A64DDEB8-B180-474D-B9-AA-2A96A26C443D',), #39924=IfcMember(‘3CS1rsE3bB7vMHAdjyaamh’,#12,‘Sparren-38’,,,,#39907,#39920,‘46488648-16DC-44A4-91-12-698B815D6192’,), #40047=IfcMember('2jBFZiQw110vV7XY77KKfx',#12,'Sparren-39',,,#40030,#40043,'EC41283A-3BA0-4DB3-BD-68-564054F72630',), #40170=IfcMember(‘22oN_bO9T4jO5eG4GKW7be’,#12,‘Sparren-40’,,,,#40153,#40166,‘BC192F3D-2C51-4B28-92-78-5806097A3CB1’,), #40293=IfcMember('2in0QvfYXEawl1f3MP1bq2',#12,'Sparren-41',,,#40276,#40289,'6A479A30-3EE6-49CF-80-83-949E8139A87B',), #40416=IfcBeam(‘3jZHeNcfvDMf9wGwx9XqG',#12,'Pfette-1-1',,”,#40399,#40412,‘C8707AC7-4260-4F76-A6-95-7665806B676D’,), #40539=IfcBeam('20bTaetQDApP5w8egFxj13',#12,'First',,”,#40522,#40535,‘C2B602D2-A015-453B-9E-EF-BB998BB27F3B’,), #40662=IfcMember('3EgsECVVb6zQXnK3YFcWAu',#12,'Sparren-42',,,#40645,#40658,'21F55D0B-AD74-40D8-A5-20-4365CC35D364',), #49831=IfcRailing(‘0o5vgCKyTBzO5QJcI2YDP',#12,'',,,#40768,#49827,'00000000-0000-0000-00-00-000000000000',.HANDRAIL.), #59075=IfcRailing('09axaKU7X1_O8n6dmmiZ1E',#12,'',,,#50014,#59071,'00000000-0000-0000-00-00-000000000000',.HANDRAIL.), #59290=IfcSlab('2RGlQk4xH47RHK93zcTzUL',#12,'Slab-033',,,#59253,#59286,'DA0A17AC-B773-47AC-99-C5-D390C73AD5CC',.FLOOR.), #59553=IfcSlab('07Enbsqm9C7AQC9iyBwfSD',#12,'Dach-1',,,#59508,#59549,'E142B455-80E4-4B96-83-EC-E1589CA998DB',.ROOF.), #59753=IfcSlab('2IxUUNUVPB6ObeicCfP2N’,#12,‘Dach-2’,,,,#59716,#59749,‘BD6D9414-37DF-40A8-88-40-301A32A9A5B5’,.ROOF.), #60012=IfcWallStandardCase(‘0knNIAVBPBFvBy_m5QVHsU’,#12,‘Wand-Ext-OG-1’,,,,#59911,#60007,‘7B65A2FF-2B2E-4F49-B4-A1-7B41CF4110EE’,), #66459=IfcWindow('1zOBw0Gej5Wf0QAJfHnOc0',#12,'OG-Fenster-2',,,#60773,#66455,'FA683FAD-0F01-4AF4-93-87-2834E91204A6',1.,1.,,,,), #67536=IfcWallStandardCase(‘25OWQvmXj5BPgyergP43tY’,#12,‘Wand-Ext-OG-2’,,,,#67479,#67531,‘79A3F0D1-59C9-4AE1-9D-6D-772238A0ECC7’,), #67828=IfcWallStandardCase('3VCarUKgH1buLo22Ozxe6J',#12,'Wand-Ext-OG-3',,,#67727,#67823,'5D0903EC-02FE-4DE0-98-05-1D4D15974A41',), #74280=IfcWindow(‘2ACmFFQhT1Ouf0x4YRUh9m’,#12,‘OG-Fenster-1’,,,,#68594,#74276,‘671AB351-B612-4D9E-BC-6F-DAEBA688142F’,1.,1.,,,,), #75347=IfcWallStandardCase('3Ttjr59XEWfWN1WUHjelZ’,#12,‘Wand-Ext-OG-4’,,,,#75290,#75342,‘C0070317-136B-4A93-BD-CC-3B8478F23A5C’,), #75775=IfcAnnotation('2BEAsxujfCOxQo3wTVr7Wr',#12,,,,,#75541,#75772), #76112=IfcAnnotation(‘0OL3LCjon8C8eMGVs718Tk’,#12,,,,,#75786,#76109))#35169=IfcMember('0oTQ6V1VbChulreA_hfmUa',#12,'Sparren-1',,,#35085,#35165,'4E567244-877A-453F-BD-15-E8D98D599364',)0oTQ6V1VbChulreA_hfmUa#35304=IfcMember(‘1tpUOcVEPCGgFqSz0VbniQ’,#12,‘Sparren-2’,,,,#35287,#35300,‘C5F380CE-4BE5-466B-BC-4B-3A944CEE034E’,)1tpUOcVEPCGgFqSz0VbniQ#35427=IfcMember('1ulHlNTuj798Os3k9phhVC',#12,'Sparren-3',,,#35410,#35423,'6900A38D-6218-470C-AC-22-9AFA78DAFBA8',)1ulHlNTuj798Os3k9phhVC#35550=IfcMember(‘1OckORehXEoB_KILQGJao5’,#12,‘Sparren-4’,,,,#35533,#35546,‘4C100AD3-729F-46E0-BD-62-DE5D7DA40117’,)1OckORehXEoB_KILQGJao5#35673=IfcMember('0nsN_jkIrBQBuGFMg_zMEg',#12,'Sparren-5',,,#35656,#35669,'3C8A05AD-ECBB-4E09-B7-46-95B6A3DF895C',)0nsN_jkIrBQBuGFMg_zMEg#35796=IfcMember(‘31Quw2HAvFqv9_JgCuemp',#12,'Sparren-6',,,#35779,#35792,'860FAA0C-B6F9-41C9-B0-FC-435F2488ECA6',)31Quw2HAvFqv9_JgCuemp#35919=IfcMember('35W3cFc4L7MhJR0gIk9uis',#12,'Sparren-7',,,#35902,#35915,'3482C9DC-403F-437C-94-B9-0E7ACBDA5DBF',)35W3cFc4L7MhJR0gIk9uis#36042=IfcMember(‘3F58AqxJfFQkuoceQhWg3',#12,'Sparren-8',,,#36025,#36038,'05E9C0F2-246F-4C01-A3-3C-ABB1F44064B4',)3F58AqxJfFQkuoceQhWg3#36165=IfcMember('1nGDFBBHvBJ9NmlweQO0fX',#12,'Sparren-9',,,#36148,#36161,'2968F842-8ADC-4770-91-67-18314645959B',)1nGDFBBHvBJ9NmlweQO0fX#36288=IfcMember(‘3qFc3Wrr9BBPJyb2wB4Ra',#12,'Sparren-10',,,#36271,#36284,'639CABF2-BEEF-41F8-9F-C4-7379CD6756B8',)3qFc3Wrr9BBPJyb2wB4Ra#36411=IfcMember('37ab3q_iz8XRterfnMKTQX',#12,'Sparren-11',,,#36394,#36407,'1AB90595-0D25-474F-96-60-565DF04537D3',)37ab3q_iz8XRterfnMKTQX#36534=IfcMember(‘3xdLwxTMD7bw4hWoOQL41M’,#12,‘Sparren-12’,,,,#36517,#36530,‘38A8137C-9D72-40E7-98-54-BAA748BE06F0’,)3xdLwxTMD7bw4hWoOQL41M#36657=IfcMember('2OHMT7B69F5PRG_f3rMcjF',#12,'Sparren-13',,,#36640,#36653,'72ECFA45-517E-45A7-A9-F0-58BB40719283',)2OHMT7B69F5PRG_f3rMcjF#36780=IfcMember(‘34zPS2PUTBDOe7g7RIRXK0’,#12,‘Sparren-14’,,,,#36763,#36776,‘00000000-0000-0000-00-00-000000000000’,)34zPS2PUTBDOe7g7RIRXK0#36903=IfcMember('0VzptM87L6uOjQj08tTXIQ',#12,'Sparren-15',,,#36886,#36899,'BE5019AF-A097-455A-8D-66-DE59506D51CF',)0VzptM87L6uOjQj08tTXIQ#37026=IfcMember(‘2CxE0jXr8iOH1VC2gLCXX',#12,'Sparren-16',,,#37009,#37022,'0EAB97A9-E52A-4D7B-84-E2-0AFFA517A7C3',)2CxE0jXr8iOH1VC2gLCXX#37149=IfcMember('3sGiUZAX499eUK87UfZk_’,#12,‘Sparren-17’,,,,#37132,#37145,‘30C22D1D-028D-4B38-BE-CD-BF763016FE7B’,)3sG)3sGiUZAX499eUK87UfZk_#37272=IfcMember(‘0q1clcN4jF4gdikC9OySy7’,#12,‘Sparren-18’,,,,#37255,#37268,‘78E8AC76-2667-4770-91-D7-813BE341C319’,)0q1clcN4jF4gdikC9OySy7#37395=IfcMember('36KGWr2Rv8QuUhNnocm2nH',#12,'Sparren-19',,,#37378,#37391,'264D278D-153D-4271-87-B7-5ACB8AB7C031',)36KGWr2Rv8QuUhNnocm2nH#37582=IfcBeam(‘0eaC0nL3XAOfFxRXK_2iAr’,#12,‘Pfette-2-1’,,'',#37501,#37578,'542BAFA7-D3B2-4074-B0-AF-859DB4CE679A',)0eaC0nL3XAOfFxRXK_2iAr#37710=IfcMember(‘0OKCG9uG53i9K16_x3YNfz’,#12,‘Sparren-20’,,,,#37693,#37706,‘ABC5FCBF-447C-455B-8A-94-54C01FF84C7D’,)0OKCG9uG53i9K16_x3YNfz#37833=IfcMember('3ePWkSzvLApwXTt3b0I2nV',#12,'Sparren-21',,,#37816,#37829,'7D626D3E-AA80-4308-86-DA-76F09E2350F5',)3ePWkSzvLApwXTt3b0I2nV#37956=IfcMember(‘09OmJpUcj4WvNp2dXHFMWj’,#12,‘Sparren-22’,,,,#37939,#37952,‘478277F6-2A8B-4D9B-A7-C6-59173581CD24’,)09OmJpUcj4WvNp2dXHFMWj#38079=IfcMember('3iSL8frGLDweFar9j4zgJ_',#12,'Sparren-23',,,#38062,#38075,'3DB3AE4B-A425-47F3-BB-76-E3009AE09ABB',)3iSL8frGLDweFar9j4zgJ_#38202=IfcMember(‘23pmL_2aH88OVqWp_5Lfkf’,#12,‘Sparren-24’,,,,#38185,#38198,‘1FD04C72-582E-4AB8-B8-09-181F7DD7D62F’,)23pmL_2aH88OVqWp_5Lfkf#38325=IfcMember('06JZMOVBX8VucSQwQ3o8d’,#12,‘Sparren-25’,,,,#38308,#38321,‘DDE46763-BE57-4EF4-A5-94-B80ED2242C61’,)06JZMOVBX8VucSQwQ3o)06JZMOVBX8VucSQwQ3o8d#38448=IfcMember(‘31ry3UPYD7weLluBlhQxXZ’,#12,‘Sparren-26’,,,,#38431,#38444,‘CAE5E5C0-4299-44F4-A2-1A-688219A1DA30’,)31ry3UPYD7weLluBlhQxXZ#38571=IfcMember('20AsUDMgH0JwAitydKgsOm',#12,'Sparren-27',,,#38554,#38567,'08446AD9-0161-4E13-8B-5D-20F9D44DB92A',)20AsUDMgH0JwAitydKgsOm#38694=IfcMember(‘2SfSpj_pX9nvTeCOxeKqTd’,#12,‘Sparren-28’,,,,#38677,#38690,‘29979C4B-420D-4ED2-B5-48-6AE887E69AD4’,)2SfSpj_pX9nvTeCOxeKqTd#38817=IfcMember('17MHCgVYn2YPLX56yXUJbL',#12,'Sparren-29',,,#38800,#38813,'8B9D9C34-42AA-4C87-A3-E8-C117928F7CD6',)17MHCgVYn2YPLX56yXUJbL#38940=IfcMember(‘2XyYurmzzDOAIoZ52R97Jm’,#12,‘Sparren-30’,,,,#38923,#38936,‘56BAD4E8-0059-4C72-85-8A-9B23D2E15426’,)2XyYurmzzDOAIoZ52R97Jm#39063=IfcMember('0hRh9WBjCLwlAiq3vfmg9’,#12,‘Sparren-31’,,,,#39046,#39059,‘C9E34584-2109-4676-8F-0C-A5C9428DA4B4’,)0hRh9WB)0hRh9WBjCLwlAiq3vfmg9#39186=IfcMember(‘1NBDw_i_jDu7IjvwmbPmx',#12,'Sparren-32',,,#39169,#39182,'62D6313A-B4FB-45BF-B3-97-10D01124A4F9',)1NBDw_i_jDu7IjvwmbPmx#39309=IfcMember('2DHOLoObDkAtwqVzNdUnS’,#12,‘Sparren-33’,,,,#39292,#39305,‘E4FF91FA-3AE7-4591-8D-5F-61E57F7BA5DE’,)2DH)2DHOLoObDkAtwqVzNdUnS#39432=IfcMember(‘1qMEiq1Qz6guq8g1GCODiJ’,#12,‘Sparren-34’,,,,#39415,#39428,‘3A999AF6-1C12-413A-89-B2-BF4A3CAEAD63’,)1qMEiq1Qz6guq8g1GCODiJ#39555=IfcMember('2AxITdtlD1h9Y3ye8U93bV',#12,'Sparren-35',,,#39538,#39551,'2B89760B-0C8D-4559-A3-B2-5B1635543320',)2AxITdtlD1h9Y3ye8U93bV#39678=IfcMember(‘0DTRkEz0r6gvzG6VdDr24n’,#12,‘Sparren-36’,,,,#39661,#39674,‘A4621E86-FF56-40DC-B3-C2-2633C779B3A5’,)0DTRkEz0r6gvzG6VdDr24n#39801=IfcMember('3UTqpydzf7i8J6iMY2tHil',#12,'Sparren-37',,,#39784,#39797,'A64DDEB8-B180-474D-B9-AA-2A96A26C443D',)3UTqpydzf7i8J6iMY2tHil#39924=IfcMember(‘3CS1rsE3bB7vMHAdjyaamh’,#12,‘Sparren-38’,,,,#39907,#39920,‘46488648-16DC-44A4-91-12-698B815D6192’,)3CS1rsE3bB7vMHAdjyaamh#40047=IfcMember('2jBFZiQw110vV7XY77KKfx',#12,'Sparren-39',,,#40030,#40043,'EC41283A-3BA0-4DB3-BD-68-564054F72630',)2jBFZiQw110vV7XY77KKfx#40170=IfcMember(‘22oN_bO9T4jO5eG4GKW7be’,#12,‘Sparren-40’,,,,#40153,#40166,‘BC192F3D-2C51-4B28-92-78-5806097A3CB1’,)22oN_bO9T4jO5eG4GKW7be#40293=IfcMember('2in0QvfYXEawl1f3MP1bq2',#12,'Sparren-41',,,#40276,#40289,'6A479A30-3EE6-49CF-80-83-949E8139A87B',)2in0QvfYXEawl1f3MP1bq2#40416=IfcBeam(‘3jZHeNcfvDMf9wGwx9XqG',#12,'Pfette-1-1',,”,#40399,#40412,‘C8707AC7-4260-4F76-A6-95-7665806B676D’,)3jZHeNcfvDMf9wG)3jZHeNcfvDMf9wGwx9XqG#40539=IfcBeam(‘20bTaetQDApP5w8egFxj13’,#12,‘First’,,'',#40522,#40535,'C2B602D2-A015-453B-9E-EF-BB998BB27F3B',)20bTaetQDApP5w8egFxj13#40662=IfcMember(‘3EgsECVVb6zQXnK3YFcWAu’,#12,‘Sparren-42’,,,,#40645,#40658,‘21F55D0B-AD74-40D8-A5-20-4365CC35D364’,)3EgsECVVb6zQXnK3YFcWAu#49831=IfcRailing('0o5vgCKyTBzO5QJcI2YDP’,#12,”,,,,#40768,#49827,‘00000000-0000-0000-00-00-000000000000’,.HANDRAIL.)0o5vgCKyTBzO5QJcI2YDP#59075=IfcRailing('09axaKU7X1_O8n6dmmiZ1E',#12,'',,,#50014,#59071,'00000000-0000-0000-00-00-000000000000',.HANDRAIL.)09axaKU7X1_O8n6dmmiZ1E#59290=IfcSlab('2RGlQk4xH47RHK93zcTzUL',#12,'Slab-033',,,#59253,#59286,'DA0A17AC-B773-47AC-99-C5-D390C73AD5CC',.FLOOR.)2RGlQk4xH47RHK93zcTzUL#59553=IfcSlab('07Enbsqm9C7AQC9iyBwfSD',#12,'Dach-1',,,#59508,#59549,'E142B455-80E4-4B96-83-EC-E1589CA998DB',.ROOF.)07Enbsqm9C7AQC9iyBwfSD#59753=IfcSlab('2IxUUNUVPB6ObeicCfP2N’,#12,‘Dach-2’,,,,#59716,#59749,‘BD6D9414-37DF-40A8-88-40-301A32A9A5B5’,.ROOF.)2IxUUNUVPB6ObeicCfP2N#60012=IfcWallStandardCase('0knNIAVBPBFvBy_m5QVHsU',#12,'Wand-Ext-OG-1',,,#59911,#60007,'7B65A2FF-2B2E-4F49-B4-A1-7B41CF4110EE',)0knNIAVBPBFvBy_m5QVHsU#66459=IfcWindow(‘1zOBw0Gej5Wf0QAJfHnOc0’,#12,‘OG-Fenster-2’,,,,#60773,#66455,‘FA683FAD-0F01-4AF4-93-87-2834E91204A6’,1.,1.,,,,)1zOBw0Gej5Wf0QAJfHnOc0#67536=IfcWallStandardCase('25OWQvmXj5BPgyergP43tY',#12,'Wand-Ext-OG-2',,,#67479,#67531,'79A3F0D1-59C9-4AE1-9D-6D-772238A0ECC7',)25OWQvmXj5BPgyergP43tY#67828=IfcWallStandardCase(‘3VCarUKgH1buLo22Ozxe6J’,#12,‘Wand-Ext-OG-3’,,,,#67727,#67823,‘5D0903EC-02FE-4DE0-98-05-1D4D15974A41’,)3VCarUKgH1buLo22Ozxe6J#74280=IfcWindow('2ACmFFQhT1Ouf0x4YRUh9m',#12,'OG-Fenster-1',,,#68594,#74276,'671AB351-B612-4D9E-BC-6F-DAEBA688142F',1.,1.,,,,)2ACmFFQhT1Ouf0x4YRUh9m#75347=IfcWallStandardCase(‘3Ttjr59XEWfWN1WUHjelZ',#12,'Wand-Ext-OG-4',,,#75290,#75342,'C0070317-136B-4A93-BD-CC-3B8478F23A5C',)3Ttjr59XEWfWN1WUHjelZ#75775=IfcAnnotation('2BEAsxujfCOxQo3wTVr7Wr',#12,,,,,#75541,#75772)2BEAsxujfCOxQo3wTVr7Wr#76112=IfcAnnotation(‘0OL3LCjon8C8eMGVs718Tk’,#12,,,,$,#75786,#76109)0OL3LCjon8C8eMGVs718Tk As you can see, the results of code execution are displayed using the EXPRESS mentioned at the beginning of this article.This code completely traverses all floors and components in the project. Of course, we can also get the model data we need by directly interacting with blender’s python extension.For example, the following code obtains all IfcWalls displayed in the current interface. import bpywalls = [obj for obj in bpy.context.scene.objects if obj.name.startswith(“IfcWall”)]print(walls) The following code writes properties to the selected component: import bpy# Adding a Psetpset = bpy.context.active_object.BIMObjectProperties.psets.add()pset.name = “MyPset”# Adding a property of type string_valueprop = pset.properties.add()prop.name = “MyProperty”prop.string_value = “Hello World !” We can even perform collision checking through related code: import bpyimport collisionimport numpy as npimport bmeshimport ifcclash

def get_collision_results(set_a=None, set_b=None):    a_cm = collision.CollisionManager()    b_cm = collision.CollisionManager()    add_to_cm(a_cm, set_a)    add_to_cm(b_cm, set_b)return a_cm.in_collision_other(b_cm, return_data=True)

def add_to_cm(cm, object_names):for object_name in object_names:        name = object_name.name        obj = bpy.data.objects[name]        triangulated_mesh = triangulate_mesh(obj)        mat = np.array(obj.matrix_world)        mesh = ifcclash.Mesh()        mesh.vertices = np.array([tuple(v.co) for v in triangulated_mesh.vertices])        mesh.faces = np.array([tuple(p.vertices) for p in triangulated_mesh.polygons])        cm.add_object(name, mesh, mat)

def triangulate_mesh(obj):    mesh = obj.evaluated_get(bpy.context.evaluated_depsgraph_get()).to_mesh()    bm = bmesh.new()    bm.from_mesh(mesh)    bmesh.ops.triangulate(bm, faces=bm.faces)    bm.to_mesh(mesh)    bm.free()    del bmreturn mesh

set_a = [    bpy.data.scenes[‘Scene’].objects[‘Cube’],]set_b = [    bpy.data.scenes[‘Scene’].objects[‘Cube.001’],    bpy.data.scenes[‘Scene’].objects[‘Cube.002’],]

err, results = get_collision_results(set_a=set_a, set_b=set_b) seen_pairs = set()for result in results:    result_pair = result.names    result_names_str = str(result_pair)if result_names_str in seen_pairs:continue    seen_pairs.add(str(result_pair))    print(35 * ”-”)    print(result_names_str) Summarize This article introduces the method of data analysis and editing of Ifc model based on Blender and BlenderBIM.By interacting with Blender and collaborating with corresponding Python scripts, our ability to use Ifc models has been greatly improved.The value of BIM models in our design and construction process can be further explored and improved.At the same time, with the help of Blender’s native functions and the Blender-based ecosystem, the possibilities of Ifc model application can also be further expanded. We welcome like-minded partners to join us, Let’s do something fun together.

Image

We will bring you more surprises in the future, so follow our official account!


This document is automatically collected and organized by AI from non-deconstructed public accounts and is for learning reference only.

#wechat

Original Source: https://mp.weixin.qq.com/s/Zk1QVnqWtRFTAmoz1BxDBQ

§

评论

COMMENT / REVIEW REQUIRED

LOADING…