Ifc 人工解析——拿一根梁来举例说明

本文详细介绍了IFC(Industry Foundation Classes)格式,特别是通过一根梁的例子,解释了IFC的类继承关系,中性文件的表达方式,以及IfcRoot、IfcObjectDefinition、IfcRelationship和IfcPropertyDefinition等核心概念。IFC是一种建筑信息模型标准,用于交换建筑和构造领域的数据。
摘要由CSDN通过智能技术生成

原始天尊

ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [ReferenceView_V1]'),'2;1');
FILE_NAME(
/* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BeamExtruded.ifc',
/* time_stamp */ '2017-06-27T13:32:38',
/* author */ ('jonm'),
/* organization */ ('Geometry Gym'),
/* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24',
/* originating_system */ 'IFCExamples v0.0.1.0',
/* authorization */ 'None');

FILE_SCHEMA (('IFC4'));
ENDSEC;

DATA;
#10= IFCCARTESIANPOINT((0.0,0.0,0.0));
#11= IFCAXIS2PLACEMENT3D(#10,$,$);
#12= IFCLOCALPLACEMENT($,#11);
/* defines the default building (as required as the minimum spatial element)  */
#13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18);
#14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#61),#13);
#15= IFCCARTESIANPOINT((0.0,0.0,0.0));
#16= IFCAXIS2PLACEMENT3D(#15,$,$);
#18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown');
/* general entities required for all IFC  sets, defining the context for the exchange */
#20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21);
#21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26));
#22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
#27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13));
#28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31);
#29= IFCCARTESIANPOINT((0.0,0.0,0.0));
#30= IFCAXIS2PLACEMENT3D(#29,$,$);
#31= IFCDIRECTION((0.0,1.0));
#32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$);
/* Example data for BeamExtruded */
#50= IFCCARTESIANPOINTLIST2D(((2.8,-79.5),(2.8,79.5),(6.31472,87.98528),(14.8,91.5),(50.0,91.5),(50.0,100.0),(-50.0,100.0),(-50.0,91.5),(-14.8,91.5),(-6.31472,87.98528),(-2.8,79.5),(-2.8,-79.5),(-6.31472,-87.98528),(-14.8,-91.5),(-50.0,-91.5),(-50.0,-100.0),(50.0,-100.0),(50.0,-91.5),(14.8,-91.5),(6.31472,-87.98528)));
#51= IFCINDEXEDPOLYCURVE(#50,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCLINEINDEX((5,6)),IFCLINEINDEX((6,7)),IFCLINEINDEX((7,8)),IFCLINEINDEX((8,9)),IFCARCINDEX((9,10,11)),IFCLINEINDEX((11,12)),IFCARCINDEX((12,13,14)),IFCLINEINDEX((14,15)),IFCLINEINDEX((15,16)),IFCLINEINDEX((16,17)),IFCLINEINDEX((17,18)),IFCLINEINDEX((18,19)),IFCARCINDEX((19,20,1))),$);
#52= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'IPE200',#51);
#53= IFCCARTESIANPOINT((0.0,0.0,0.0));
#54= IFCDIRECTION((0.0,1.0,0.0));
#55= IFCDIRECTION((1.0,0.0,0.0));
#56= IFCAXIS2PLACEMENT3D(#53,#54,#55);
#57= IFCDIRECTION((0.0,0.0,1.0));
#58= IFCEXTRUDEDAREASOLID(#52,#56,#57,1000.0);
#59= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#58));
#60&
### 回答1: IFC(Industry Foundation Classes)可以理解为是一种开放标准的模型文件格式,主要用于建筑和工程领域中的数据交换和共享。IFC格式解析C,则是指通过C语言读取、分析和处理IFC文件的过程。 IFC文件通过XML或STEP格式进行编码存储,但是直接解析很困难。一种有效的解析方法是使用IFC SDK,例如“Open IFC Tools”和“IFC++”,它们提供了可预编译的库文件和API函数,可以使用C语言进行调用和使用,以完成IFC文件的解析和数据提取。 解析IFC文件的主要步骤包括以下几个方面: 1. 读取IFC文件:使用C语言的文件操作功能,打开字符串数组或者IFC文件对象,读取文件内容。 2. 解析IFC结构:IFC文件中有很多以“#”开头的唯一标识符,这些标识符可以让我们在IFC文件中找到对应的实体,例如物体、属性、关系等。C语言的字符串操作函数可以帮助我们把这些IFC标识符解析出来,以及提取实体的属性信息。 3. 建立IFC对象模型:将解析出的IFC实体转化为C语言中的对象模型,例如结构体或者类,以方便我们在程序中访问和操作IFC数据。 4. 数据处理:利用C语言中的算法和数据结构,对IFC数据进行处理和分析。 5. 输出结果:将处理后的IFC数据输出到文件或者其他数据格式中。 IFC格式解析C的实现需要一定的编程技能和C语言基础知识,但是在建筑和工程领域中,掌握IFC文件的解析和处理能力是非常重要的。 ### 回答2: IFC 是“Industry Foundation Classes”的缩写,是一种用于描述建筑、工程和建筑管理行业的信息模型标准,它是由建筑信息模型 (BIM) 产生的标准。 IFC 格式数据的解析需要一定的技术。在解析 IFC 格式数据时,首先需要了解 IFC 数据模型及其架构IFC 数据模型包含了一系列的实体类型和关系,这些实体和关系是通过实体关系模型 (ERM) 进行定义的。因此,在解析 IFC 格式数据时,需要重新创建一个模型,以便从 IFC 数据模型中提取和导出数据。 同时,解析 IFC 数据需要使用 IFC 库,如 OpenIFC Library 和 IfcOpenShell。这些库提供了一些接口和工具,可以帮助开发者处理 IFC 数据格式,提取模型中的三维几何信息,或将其转换到其他格式。例如,IfcOpenShell 可以使用 Python 脚本进行数据处理,并提供了一些可视化工具。 总结而言,解析 IFC 格式数据需要具备一定的计算机技术和编程经验,需要了解 IFC 数据模型及其架构,以及相应的 IFC 库来协助解析过程。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值