ifcowl文件是一种用于数字建筑信息建模(BIM)的数据交换格式,它允许BIM软件在多个不同的应用程序之间以及在不同的操作系统之间进行兼容性。ifcowl文件格式是由IFC(Industry Foundation Classes)和OWL(Web Ontology Language)两种技术的结合形成的。
让我们来了解ifcowl文件结构。ifcowl文件是一个XML文件,由一系列由IFC和OWL定义的类以及这些类的属性组成。这些类分别对应于建筑物的构件,例如墙、门、窗户等,以及它们之间的关系,例如这些建筑构件是如何组成建筑模型并且如何被定位的。
ifcowl文件的每一行都以RDF三元组形式呈现,其中RDF指Resource Description Framework。例如:
<owl:ObjectProperty rdf:about="&ifcowl;SpaceBoundaryElementHasTangentialRoomRelation">
<rdf:type rdf:resource="&owl;TransitiveProperty"/>
<rdfs:domain rdf:resource="&ifcowl;SpaceBoundaryElement"/>
<rdfs:range rdf:resource="&ifcowl;TangentialRoomRelation"/>
</owl:ObjectProperty>
在这个例子中,我们看到了一个关于空间边界构件和相邻空间关系的属性定义。这个属性是一种可传递的关系,它连接着一个空间边界构件和对应的相邻空间关系。
ifcowl文件遵循以下的规范链接:
这些链接包括了ifcowl文件的语法和结构定义的详细规范。
以下是一个简单的ifcowl文件示例,它展示了一个由三个房间构成的建筑物。建筑物分别由三个空间组成,其中每个空间有不同的空间类型以及相应的空间属性。
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:ifcowl="https://w3id.org/IFC/IFCOWL/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<owl:Ontology rdf:about="https://w3id.org/IFC/IFCOWL/#"/>
<ifcowl:Room rdf:about="#Room1">
<ifcowl:hasGeometry rdf:resource="#Room1Geometry"/>
<ifcowl:hasSize rdf:datatype="http://www.w3.org/2001/XMLSchema#string">5m x 5m</ifcowl:hasSize>
<ifcowl:hasType rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Office</ifcowl:hasType>
<ifcowl:hasCeilingHeight rdf:datatype="http://www.w3.org/2001/XMLSchema#string">3m</ifcowl:hasCeilingHeight>
</ifcowl:Room>
<ifcowl:Room rdf:about="#Room2">
<ifcowl:hasGeometry rdf:resource="#Room2Geometry"/>
<ifcowl:hasSize rdf:datatype="http://www.w3.org/2001/XMLSchema#string">4m x 4m</ifcowl:hasSize>
<ifcowl:hasType rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Kitchen</ifcowl:hasType>
<ifcowl:hasCeilingHeight rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.5m</ifcowl:hasCeilingHeight>
</ifcowl:Room>
<ifcowl:Room rdf:about="#Room3">
<ifcowl:hasGeometry rdf:resource="#Room3Geometry"/>
<ifcowl:hasSize rdf:datatype="http://www.w3.org/2001/XMLSchema#string">6m x 5m</ifcowl:hasSize>
<ifcowl:hasType rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Living Room</ifcowl:hasType>
<ifcowl:hasCeilingHeight rdf:datatype="http://www.w3.org/2001/XMLSchema#string">4m</ifcowl:hasCeilingHeight>
</ifcowl:Room>
<ifcowl:SpaceBoundaryElement rdf:about="#Room1-WestWall">
<ifcowl:hasGeometry rdf:resource="#Room1-WestWallGeometry"/>
<ifcowl:hasEndRoom rdf:resource="#Room1"/>
<ifcowl:hasEndRoom rdf:resource="#Room2"/>
</ifcowl:SpaceBoundaryElement>
<ifcowl:SpaceBoundaryElement rdf:about="#Room2-EastWall">
<ifcowl:hasGeometry rdf:resource="#Room2-EastWallGeometry"/>
<ifcowl:hasEndRoom rdf:resource="#Room2"/>
<ifcowl:hasEndRoom rdf:resource="#Room1"/>
</ifcowl:SpaceBoundaryElement>
<ifcowl:SpaceBoundaryElement rdf:about="#Room2-NorthWall">
<ifcowl:hasGeometry rdf:resource="#Room2-NorthWallGeometry"/>
<ifcowl:hasEndRoom rdf:resource="#Room2"/>
<ifcowl:hasEndRoom rdf:resource="#Room3"/>
</ifcowl:SpaceBoundaryElement>
<ifcowl:SpaceBoundaryElement rdf:about="#Room3-SouthWall">
<ifcowl:hasGeometry rdf:resource="#Room3-SouthWallGeometry"/>
<ifcowl:hasEndRoom rdf:resource="#Room3"/>
<ifcowl:hasEndRoom rdf:resource="#Room2"/>
</ifcowl:SpaceBoundaryElement>
<ifcowl:Geometry rdf:about="#Room1Geometry"/>
<ifcowl:Geometry rdf:about="#Room2Geometry"/>
<ifcowl:Geometry rdf:about="#Room3Geometry"/>
<ifcowl:Geometry rdf:about="#Room1-WestWallGeometry"/>
<ifcowl:Geometry rdf:about="#Room2-EastWallGeometry"/>
<ifcowl:Geometry rdf:about="#Room2-NorthWallGeometry"/>
<ifcowl:Geometry rdf:about="#Room3-SouthWallGeometry"/>
</rdf:RDF>
这个示例中定义了三个房间构成的建筑物,每个房间都具有不同的属性和空间类型。空间边界构件定义了房间之间的相对位置关系。每一个房间和空间边界构件都具有相应的几何形状。
整个BIM行业可以使用ifcowl文件格式进行数字信息建模的数据交换,ifcowl文件规范已经在业界得到广泛的应用。ifcowl文件的结构和规范链接也已经被广泛地定义和发布。随着技术的不断发展和应用程序的不断更新,ifcowl文件格式也将继续发展。