CN112328543A - IFC data efficient storage method based on label attribute graph structure - Google Patents

IFC data efficient storage method based on label attribute graph structure Download PDF

Info

Publication number
CN112328543A
CN112328543A CN202010897122.0A CN202010897122A CN112328543A CN 112328543 A CN112328543 A CN 112328543A CN 202010897122 A CN202010897122 A CN 202010897122A CN 112328543 A CN112328543 A CN 112328543A
Authority
CN
China
Prior art keywords
attribute
entity
node
value
ifc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010897122.0A
Other languages
Chinese (zh)
Other versions
CN112328543B (en
Inventor
黑新宏
杨明松
李宇超
赵钦
朱磊
马召熙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Technology
Original Assignee
Xian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian University of Technology filed Critical Xian University of Technology
Priority to CN202010897122.0A priority Critical patent/CN112328543B/en
Publication of CN112328543A publication Critical patent/CN112328543A/en
Application granted granted Critical
Publication of CN112328543B publication Critical patent/CN112328543B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Abstract

The invention discloses an IFC data efficient storage method based on a label attribute graph structure, which comprises ISG construction, IFC File segmentation matching and IFG construction. The invention is also characterized in that four special IFC entity mode conversions with export attributes are solved. The constructed IFC Schema Graph contains IFC complete information except for storage management requirements of auxiliary IFC files, and can be used for IFC completeness check, IFC information intelligent query analysis and other applications. The method is adopted to carry out storage management on the IFC model file, and the BIM information circulation mode based on the IFC file is converted into the information interaction mode based on the IFC data, so that the digital transformation and intelligent upgrading of the building engineering are greatly promoted. Meanwhile, efficient retrieval of complex query requirements such as multi-hop relations in the IFC files is supported, and a solid data base and technical support are provided for intelligent applications such as information calculation and semantic reasoning based on the IFC model.

Description

IFC data efficient storage method based on label attribute graph structure
Technical Field
The invention belongs to the technical field of civil and architectural engineering intellectualization, and relates to an IFC data efficient storage method based on a label attribute graph structure.
Background
With the acceleration of intelligent pace, the development of BIM technology in the field of civil engineering and architecture has also been changed from model-based shallow applications such as three-dimensional visualization display, collision detection, construction management, etc., to information-based deep applications such as auxiliary design, automatic compliance inspection, construction technology convergence, etc. The three-dimensional design information model data is expressed by adopting the international universal IFC data standard, and the problem of data interaction among different modeling software is effectively solved.
With the popularization of the BIM technology and the continuous expansion of the model quantity, the size of an ifc data file derived from a three-dimensional design information model is increased, the ifc data file of a subway station design model comprises hundreds of thousands of rows of instance data, and the instances have complicated and complicated mutual reference relations. The method for storing and managing the three-dimensional design information model data by using the IFC data file is not applicable, and the storage management of the IFC data is required by means of a database management system.
Due to the fact that the IFC data structure has the characteristics of multi-class relevance, partial object-oriented and complex hierarchical structure, the problems that when the IFC is stored by using a relational data structure, an object-oriented data structure or a document database, the design of a storage model is complex, the query efficiency is low, the computational reasoning difficulty is high and the like exist.
Disclosure of Invention
The invention aims to provide an IFC data efficient storage method based on a label attribute graph structure, which is used for constructing an incidence relation storage model and solving the problems of high storage difficulty of incidence information among instances, complex storage model design, low query efficiency and high computational inference difficulty in the conventional IFC data efficient storage.
The technical scheme adopted by the invention is as follows: an IFC data efficient storage method based on a label attribute Graph structure comprises IFC Schema Graph (ISG) construction, IFC File segmentation matching and IFC File Graph (IFG) construction. The invention is also characterized in that four special IFC entity mode conversions with export attributes are solved. The built IFC schema Graph contains IFC complete information except for storage management requirements of auxiliary IFC files, and can be used for IFC completeness check, IFC information intelligent query analysis and other applications.
An IFC data efficient storage method based on a tag attribute graph structure specifically comprises the following steps:
step 1, extracting nodes, edges, attributes and labels according to IFC official documents, and establishing an ISG (Internet service gateway) based on a label attribute graph structure;
step 2, based on the structural features of the IFC file, carrying out segmentation processing on the IFC file to be stored;
step 3, combining the IFC Schema Graph to perform IFC file entity instance query matching;
and 4, extracting nodes, edges, attributes and labels from the divided IFC files according to the matching result in the step 3, and establishing the IFG based on the label attribute graph structure.
The step 1 is implemented according to the following steps:
step 1.1, reading an IFC Schema document written based on an EXPRESS language, converting an entity of an EnumerationType type into a node, adding enumerated values contained in the entity as attributes of the node in sequence, indexing by taking natural numbers 1, 2 and 3 … as attribute names, adding an [ EnumerationType ] tag and a < name: > attribute for a current node, and setting the entity name of the current entity as a name attribute value;
step 1.2, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an entity of a DefinedType type into a node, adding a [ DefinedT type ] tag and a < name: > attribute for a current node, and setting the entity name of the current entity as the value of the name attribute;
step 1.3, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an entity of a SelectType type into a node, adding a [ SelectType ] tag and a < name: > attribute, and setting the entity name of the current entity as the value of the name attribute. Meanwhile, establishing a directed edge Select _ Type, and pointing to the contained Entity node, defindedType Entity node, SelectType Entity node or Enumeration Type Entity node by the current SelectType Entity node. IF the node pointed by the directed edge is not established, the corresponding IF C entity is subjected to node conversion, and then the directed edge Select _ Type between the two nodes is established.
Step 1.4, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an Entity of an Entity type into a node, adding an [ Entity ] label and a < name: > attribute, and setting the Entity name of the current Entity as the value of the name attribute.
Step 1.5, reading 408 PropertySetDef files and 91 QtoSetDef files written based on XML language, and converting predefined attribute sets and predefined quantity sets.
The specific steps of step 1.2 are as follows:
step 1.2.1, if the current defindedtype entity is obtained by encapsulating different Data types in the EXPRESS language, adding attribute < Data _ Type: > to the current node, and setting the Data Type encapsulated by the node as the value of the Data _ Type attribute.
Step 1.2.2, if the current defindedtype entity is obtained by encapsulating another DefinedType entity, establishing an edge "Data _ Type" pointing to the encapsulated defindedtype entity node by the node, such as { current node, Data _ Type, encapsulated node }. If the corresponding node of the packed DefinedType entity is not established, node conversion is firstly carried out on the packed DefinedType entity, and then the directed edge 'Data _ Type' between the two nodes is established.
The specific steps of step 1.4 are as follows
Step 1.4.1, according to the inheritance relationship between Entity types in the IFC mode file, establishing directed edges 'SubClass' pointing to sub-class Entity nodes from parent Entity nodes between corresponding nodes, such as { parent node, SubClass, child nodes }.
And step 1.4.2, mapping the direct attribute of the Entity type into an attribute value of the corresponding node attribute, including the attribute inherited from the Entity type, and using the definition sequence of the Entity attribute in the IFC mode file as a key value of the node attribute, such as <1: GUID >.
Step 1.4.3, in the IFC, the attribute value of the Entity Type of the Entity is any one of EnumerationType, DefinedType, SelectType or Entity class, according to the Type constraint of the attribute value of the Entity, a directed edge 'DirectAttribute _ Type' is constructed, and the Entity node of the Entity of. If the corresponding Type entity node is not established, the corresponding Type entity is subjected to node conversion, and then a directed edge 'DirectAttribute _ Type' between two nodes is established. Meanwhile, adding attributes < name: > and < additional: > on the edge, setting the attribute name in the Entity as the value of the name, and when the attribute is an OPTIONAL attribute, setting the value of the additional attribute as the OptiONAL.
Step 1.4.4, converting the Inverse attribute (not including the inherited I nverse attribute) in the Entity into a directed edge "inversetaattribute", and pointing the Entity node with the Inverse attribute to the associated Entity node. If the corresponding type entity node is not established, the corresponding type entity is subjected to node conversion, and then a directed edge 'InverseA attribute' between two nodes is established. Meanwhile, adding a < name: > attribute on the 'InverseAttribute' edge, and setting the name of the attribute corresponding to the entity of the.
Step 1.4.5, the total number of Entity entities with Drive attribute is 90, wherein 86 entities are processed according to the steps 1.3.2 and 1.3.3. And the rest IfcSIUnit, IfcIredeProfileDef, IfcOrientEdge and IfcMeetricpresentationSubCo, wherein the definition sequence of the attribute is disturbed in the instantiation process, and the attribute key value pair of the entity node is manually modified according to the attribute sequence after the entity is instantiated. Taking ifcSIUnit as an example, the attribute sequences in the entity are UnitType, Prefix, Nam e and Dimensions. The attribute key value pair of the entity node modified according to the attribute sequence after the entity instantiation is <1: Dimensions > <2: UnitType > <3: Prefix > <4: Name >.
The specific steps of step 1.5 are as follows
Step 1.5.1, converting each PropertySet object into a node, adding a [ Property _ S et ] label and an attribute of < name: >, an attribute of < ApplicabibleType _ Value: >, setting the name of a predefined attribute set corresponding to the PropertySe object as the Value of the name, and taking the applicable type Value of the attribute set object as the Value of ApplicabibleType _ Value; converting each QuantySet object into a node, adding a [ Quanty _ Set ] label and an attribute < name: >, an attribute < ApplicabeType _ Value >, setting the name of a corresponding predefined Quantity Set in the QuantySet object as the Value of name, and taking the applicable type Value of the Quantity Set object as the Value of ApplicabibleType _ Value.
Step 1.5.2, respectively constructing a unidirectional edge 'haveportyset' pointing to a property set node by a node corresponding to a current property set applicable entity and a unidirectional edge 'applicable element' pointing to an applicable entity node thereof by a property set node; and a single edge 'HaveQuantitySet' pointing to the volume set node by the node corresponding to the current volume set applicable entity and a unidirectional edge 'applicable element' pointing to the applicable entity node by the volume set node.
Step 1.5.3, each IndvidalProperty object is converted into a node, an [ IndvidalProperty ] label and attributes < name: >, < Property _ Type: >, are added, the name of the independent attribute object is set to be the value of the name, and the data Type entity of the independent attribute object is set to be the value of Pr insert _ Type; converting each Quantity object into a node, adding a [ Quantity ] label and attributes of < name: >, < Quantity _ Type: >, setting the name of the Quantity object as the value of the name, and setting the data Type entity of the Quantity object as the value of the Quantity _ Type.
Step 1.5.4, respectively constructing a unidirectional edge "Data _ Type" pointing to the entity node of the corresponding Data Type from the IndvidualProperty node, and a unidirectional edge "Includeproperty" pointing to the current IndvidualProperty from the PropertySet object node containing the current IndvidualProperty object; and a one-way edge "IncludeQuantity" pointed to the current Quantity by the QuantySet object node containing the current Quantity object.
The step 2 is implemented according to the following steps:
and 2.1, identifying and dividing the head segment and the DATA segment according to the head/ENDSEC and the DATA/ENDSEC.
And 2.2, segmenting the data segment information according to the line feed character, and converting the IFC instance file into an ordered entity instance data list 'stepFileList'.
Step 2.3, traverse each item in the entity instance data list stepfilist and divide into line number, entity instance, attribute value according to "#", "═ and" () ". The method comprises the steps of constructing 'Map < String, String > entiyMap' to store row numbers, entity instances and the association relationship between the row numbers and the entity instances, constructing 'List < String > attribute ValueList', storing all entity instance attribute values as a List, and constructing 'Map < String, String > attribute ValueMap' to store the one-to-one relationship between the row numbers and the attribute values.
Step 2.4, traverse the List of attribute values of List < String > attribute values, and according to five data characteristics of the attribute values, respectively, "\ x2\ … \ x0\ and" () ", partition the attribute value corresponding to each entity instance into attribute value sequences List < Obj ect > attribute values array List. And taking the attribute Value sequence as Value and the row number as K ey, reconstructing Map < String, List < Objecet > > attribute Value Map, and storing the row number, the attribute Value sequence and the one-to-one relationship.
Step 3 is specifically implemented according to the following steps:
and 3.1, traversing the segmentation result entityMap, taking out one entity instance and the corresponding row number, inquiring the entity node corresponding to the instance in the constructed ISG, and recording the label LAB and the attribute PSET of the entity node. The row number NU M of the current entity instance is recorded.
And 3.2, sequentially taking out all the attribute value sequences a ttributeValueArrayList in the attributeValueMap set, traversing each attribute value sequence, taking out specific attribute values in the attribute value sequences, and judging the specific attribute values.
And 3.3, taking out an attribute value sequence attributeValueArrayList corresponding to the line number NUM from the attributeValueMap, and respectively taking out attribute values and value values corresponding to the same subscript and key values from the sequence and the PSET. And taking the attribute Value extracted from the PSET as a Key in the instance attribute Key Value pair, and taking the Value extracted from the attribute Value sequence as a Value in the instance attribute Key Value pair. A set of attribute key-value pairs for each entity instance is constructed.
And 3.4, reconstructing attributeValueMap, and uniquely marking the attribute key value pair sets corresponding to all entity instances by using row numbers to obtain Map < String, wherein Map < String, Objecet > > attributeValueMap.
The specific steps of step 3.2 are as follows:
step 3.2.1, when the attribute value is "$", replace the attribute value with "NULL"
Step 3.2.2, when the attribute is a character string from "\ x2 \" to "\ x0 \" end. And converting the attribute value into a corresponding Chinese character coded by UTF-8 according to a coding conversion rule of converting UTF-16 to UTF-8.
Step 4 is specifically implemented according to the following steps:
and 4.1, respectively taking out an entity instance and an attribute key value pair set with the same row number from the entityMap and the attribute value pair from the entityMap, taking the attribute key value pair set as a node attribute to establish an IFC File Graph node, simultaneously adding an attribute of < name: > and an attribute of < rowNumber: >, setting the entity instance as the value of the name attribute, and setting the row number as the value of the rowNumber attribute.
And 4.2, traversing the nodes, finding out all the relational entity instance nodes, namely the nodes with the entity instance structure of IfcRel …, and extracting the values of the name attribute, the related attribute and the related attribute of the nodes.
And 4.3, finding out nodes with rowNumber attribute values identical to related attribute values from all the nodes as starting nodes, finding out a node set with rowNumber attribute values identical to related attribute values from all the nodes as an ending node set, establishing a plurality of directed edges pointing to all the nodes in the ending node set by the starting nodes, and taking the name attribute values of the current entity instance nodes as labels of the plurality of directed edges.
And 4.4, adding the attribute key value pair set of the relational entity instance node to the corresponding directed edge as the attribute key value pair of the edge. And delete the relational entity instance node and its collection of attribute key-value pairs.
And 4.5, traversing all nodes, and finding out all nodes with reference values in the attribute key-value pair set, wherein the reference values refer to line number values beginning with "#".
And 4.6, for the nodes, establishing directed edges by taking the Key values corresponding to the reference values in the attribute Key value pairs as labels. The directed edge points from the current node to a node whose rowNumber attribute value is the same as the reference value.
The invention has the beneficial effects that:
the method is adopted to carry out storage management on the IFC model file, the BI M information circulation mode based on the IFC file is converted into the information interaction mode based on the IFC data, a new method is provided for the efficient storage management of the IFC data, and the storage management level of the large-scale IFC data file is promoted. The digital transformation and intelligent upgrading of the construction engineering are greatly promoted. Meanwhile, efficient retrieval of complex query requirements such as multi-hop relations in the IFC files is supported, and a solid data base and technical support are provided for intelligent applications such as information calculation and semantic reasoning based on the IFC model.
Drawings
FIG. 1 is a flow chart of an IFC data efficient storage method based on a tag attribute graph structure according to the present invention
FIG. 2 is a schematic structural diagram of an IFC Schema Graph of an IFC data efficient storage method based on a tag attribute Graph structure according to the present invention
FIG. 3 is a structure diagram of an IFC example file structure of an IFC data efficient storage method based on a tag attribute graph structure according to the present invention
FIG. 4 is a schematic diagram of an example of an IFCDOOR entity in an IFC data file in an IFC data efficient storage method based on a tag attribute graph structure according to the present invention
Fig. 5 is a schematic diagram of a storage result of an IFCDOOR entity instance tag attribute graph structure, where the method for efficiently storing IFC data based on the tag attribute graph structure includes an IFCDOOR entity with a GUID of fdsafd 1231.
Detailed Description
The invention is described in detail below with reference to the accompanying drawings and the detailed description
An IFC data efficient storage method based on a tag attribute graph structure is shown in fig. 1, and specifically includes the following steps:
step 1, extracting nodes, edges, attributes and labels according to IFC official documents, and establishing an ISG (Internet service gateway) based on a label attribute graph structure;
step 2, based on the structural features of the IFC file, carrying out segmentation processing on the IFC file to be stored;
step 3, combining the IFC Schema Graph to perform IFC file entity instance query matching;
and 4, extracting nodes, edges, attributes and labels from the divided IFC files according to the matching result in the step 3, and establishing the IFG based on the label attribute graph structure.
The step 1 is implemented according to the following steps:
step 1.1, reading an IFC Schema document written based on an EXPRESS language, converting an entity of an EnumerationType type into a node, adding enumerated values contained in the entity as attributes of the node in sequence, indexing by taking natural numbers 1, 2 and 3 … as attribute names, adding an [ EnumerationType ] tag and a < name: > attribute for a current node, and setting the entity name of the current entity as a name attribute value;
step 1.2, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an entity of a DefinedType type into a node, adding a [ DefinedT type ] tag and a < name: > attribute for a current node, and setting the entity name of the current entity as the value of the name attribute;
step 1.3, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an entity of a SelectType type into a node, adding a [ SelectType ] tag and a < name: > attribute, and setting the entity name of the current entity as the value of the name attribute. Meanwhile, establishing a directed edge Select _ Type, and pointing to the contained Entity node, defindedType Entity node, SelectType Entity node or Enumeration Type Entity node by the current SelectType Entity node. IF the node pointed by the directed edge is not established, the corresponding IF C entity is subjected to node conversion, and then the directed edge Select _ Type between the two nodes is established.
Step 1.4, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an Entity of an Entity type into a node, adding an [ Entity ] label and a < name: > attribute, and setting the Entity name of the current Entity as the value of the name attribute.
Step 1.5, reading 408 PropertySetDef files and 91 QtoSetDef files written based on XML language, and converting predefined attribute sets and predefined quantity sets.
The specific steps of step 1.2 are as follows:
step 1.2.1, if the current defindedtype entity is obtained by encapsulating different Data types in the EXPRESS language, adding attribute < Data _ Type: > to the current node, and setting the Data Type encapsulated by the node as the value of the Data _ Type attribute.
Step 1.2.2, if the current defindedtype entity is obtained by encapsulating another DefinedType entity, establishing an edge "Data _ Type" pointing to the encapsulated defindedtype entity node by the node, such as { current node, Data _ Type, encapsulated node }. If the corresponding node of the packed DefinedType entity is not established, node conversion is firstly carried out on the packed DefinedType entity, and then the directed edge 'Data _ Type' between the two nodes is established.
The specific steps of step 1.4 are as follows
Step 1.4.1, according to the inheritance relationship between Entity types in the IFC mode file, establishing directed edges 'SubClass' pointing to sub-class Entity nodes from parent Entity nodes between corresponding nodes, such as { parent node, SubClass, child nodes }.
And step 1.4.2, mapping the direct attribute of the Entity type into an attribute value of the corresponding node attribute, including the attribute inherited from the Entity type, and using the definition sequence of the Entity attribute in the IFC mode file as a key value of the node attribute, such as <1: GUID >.
Step 1.4.3, in the IFC, the attribute value of the Entity Type of the Entity is any one of EnumerationType, DefinedType, SelectType or Entity class, according to the Type constraint of the attribute value of the Entity, a directed edge 'DirectAttribute _ Type' is constructed, and the Entity node of the Entity of. If the corresponding Type entity node is not established, the corresponding Type entity is subjected to node conversion, and then a directed edge 'DirectAttribute _ Type' between two nodes is established. Meanwhile, adding attributes < name: > and < additional: > on the edge, setting the attribute name in the Entity as the value of the name, and when the attribute is an OPTIONAL attribute, setting the value of the additional attribute as the OptiONAL.
Step 1.4.4, converting the Inverse attribute (not including the inherited I nverse attribute) in the Entity into a directed edge "inversetaattribute", and pointing the Entity node with the Inverse attribute to the associated Entity node. If the corresponding type entity node is not established, the corresponding type entity is subjected to node conversion, and then a directed edge 'InverseA attribute' between two nodes is established. Meanwhile, adding a < name: > attribute on the 'InverseAttribute' edge, and setting the name of the attribute corresponding to the entity of the.
Step 1.4.5, the total number of Entity entities with Drive attribute is 90, wherein 86 entities are processed according to the steps 1.3.2 and 1.3.3. And the rest IfcSIUnit, IfcIredeProfileDef, IfcOrientEdge and IfcMeetricpresentationSubCo, wherein the definition sequence of the attribute is disturbed in the instantiation process, and the attribute key value pair of the entity node is manually modified according to the attribute sequence after the entity is instantiated. Taking ifcSIUnit as an example, the attribute sequences in the entity are UnitType, Prefix, Nam e and Dimensions. The attribute key value pair of the entity node modified according to the attribute sequence after the entity instantiation is <1: Dimensions > <2: UnitType > <3: Prefix > <4: Name >.
The specific steps of step 1.5 are as follows
Step 1.5.1, converting each PropertySet object into a node, adding a [ Property _ S et ] label and an attribute of < name: >, an attribute of < ApplicabibleType _ Value: >, setting the name of a predefined attribute set corresponding to the PropertySe object as the Value of the name, and taking the applicable type Value of the attribute set object as the Value of ApplicabibleType _ Value; converting each QuantySet object into a node, adding a [ Quanty _ Set ] label and an attribute < name: >, an attribute < ApplicabeType _ Value >, setting the name of a corresponding predefined Quantity Set in the QuantySet object as the Value of name, and taking the applicable type Value of the Quantity Set object as the Value of ApplicabibleType _ Value.
Step 1.5.2, respectively constructing a unidirectional edge 'haveportyset' pointing to a property set node by a node corresponding to a current property set applicable entity and a unidirectional edge 'applicable element' pointing to an applicable entity node thereof by a property set node; and a single edge 'HaveQuantitySet' pointing to the volume set node by the node corresponding to the current volume set applicable entity and a unidirectional edge 'applicable element' pointing to the applicable entity node by the volume set node.
Step 1.5.3, each IndvidalProperty object is converted into a node, an [ IndvidalProperty ] label and attributes < name: >, < Property _ Type: >, are added, the name of the independent attribute object is set to be the value of the name, and the data Type entity of the independent attribute object is set to be the value of Pr insert _ Type; converting each Quantity object into a node, adding a [ Quantity ] label and attributes of < name: >, < Quantity _ Type: >, setting the name of the Quantity object as the value of the name, and setting the data Type entity of the Quantity object as the value of the Quantity _ Type.
Step 1.5.4, respectively constructing a unidirectional edge "Data _ Type" pointing to the entity node of the corresponding Data Type from the IndvidualProperty node, and a unidirectional edge "Includeproperty" pointing to the current IndvidualProperty from the PropertySet object node containing the current IndvidualProperty object; and a one-way edge "IncludeQuantity" pointed to the current Quantity by the QuantySet object node containing the current Quantity object.
The step 2 is implemented according to the following steps:
and 2.1, identifying and dividing the head segment and the DATA segment according to the head/ENDSEC and the DATA/ENDSEC.
And 2.2, segmenting the data segment information according to the line feed character, and converting the IFC instance file into an ordered entity instance data list 'stepFileList'.
Step 2.3, traverse each item in the entity instance data list stepfilist and divide into line number, entity instance, attribute value according to "#", "═ and" () ". The method comprises the steps of constructing 'Map < String, String > entiyMap' to store row numbers, entity instances and the association relationship between the row numbers and the entity instances, constructing 'List < String > attribute ValueList', storing all entity instance attribute values as a List, and constructing 'Map < String, String > attribute ValueMap' to store the one-to-one relationship between the row numbers and the attribute values.
Step 2.4, traverse the List of attribute values of List < String > attribute values, and according to five data characteristics of the attribute values, respectively, "\ x2\ … \ x0\ and" () ", partition the attribute value corresponding to each entity instance into attribute value sequences List < Obj ect > attribute values array List. And taking the attribute Value sequence as Value and the row number as K ey, reconstructing Map < String, List < Objecet > > attribute Value Map, and storing the row number, the attribute Value sequence and the one-to-one relationship.
As shown in fig. 2, step 3 is specifically implemented according to the following steps:
and 3.1, traversing the segmentation result entityMap, taking out one entity instance and the corresponding row number, inquiring the entity node corresponding to the instance in the constructed ISG, and recording the label LAB and the attribute PSET of the entity node. The row number NU M of the current entity instance is recorded.
And 3.2, sequentially taking out all the attribute value sequences a ttributeValueArrayList in the attributeValueMap set, traversing each attribute value sequence, taking out specific attribute values in the attribute value sequences, and judging the specific attribute values.
And 3.3, taking out an attribute value sequence attributeValueArrayList corresponding to the line number NUM from the attributeValueMap, and respectively taking out attribute values and value values corresponding to the same subscript and key values from the sequence and the PSET. And taking the attribute Value extracted from the PSET as a Key in the instance attribute Key Value pair, and taking the Value extracted from the attribute Value sequence as a Value in the instance attribute Key Value pair. A set of attribute key-value pairs for each entity instance is constructed.
And 3.4, reconstructing attributeValueMap, and uniquely marking the attribute key value pair sets corresponding to all entity instances by using row numbers to obtain Map < String, wherein Map < String, Objecet > > attributeValueMap.
The specific steps of step 3.2 are as follows:
step 3.2.1, when the attribute value is "$", replace the attribute value with "NULL"
Step 3.2.2, when the attribute is a character string from "\ x2 \" to "\ x0 \" end. And converting the attribute value into a corresponding Chinese character coded by UTF-8 according to a coding conversion rule of converting UTF-16 to UTF-8.
Step 4 is specifically implemented according to the following steps:
and 4.1, respectively taking out an entity instance and an attribute key value pair set with the same row number from the entityMap and the attribute value pair from the entityMap, taking the attribute key value pair set as a node attribute to establish an IFC File Graph node, simultaneously adding an attribute of < name: > and an attribute of < rowNumber: >, setting the entity instance as the value of the name attribute, and setting the row number as the value of the rowNumber attribute.
And 4.2, traversing the nodes, finding out all the relational entity instance nodes, namely the nodes with the entity instance structure of IfcRel …, and extracting the values of the name attribute, the related attribute and the related attribute of the nodes.
And 4.3, finding out nodes with rowNumber attribute values identical to related attribute values from all the nodes as starting nodes, finding out a node set with rowNumber attribute values identical to related attribute values from all the nodes as an ending node set, establishing a plurality of directed edges pointing to all the nodes in the ending node set by the starting nodes, and taking the name attribute values of the current entity instance nodes as labels of the plurality of directed edges.
And 4.4, adding the attribute key value pair set of the relational entity instance node to the corresponding directed edge as the attribute key value pair of the edge. And delete the relational entity instance node and its collection of attribute key-value pairs.
And 4.5, traversing all nodes, and finding out all nodes with reference values in the attribute key-value pair set, wherein the reference values refer to line number values beginning with "#".
And 4.6, for the nodes, establishing directed edges by taking the Key values corresponding to the reference values in the attribute Key value pairs as labels. The directed edge points from the current node to a node whose rowNumber attribute value is the same as the reference value.
One possible embodiment is provided below in conjunction with the attached drawings:
the IFC Schema Graph (ISG) construction method has been described in the above steps, and is not described herein. As shown in fig. 3, a specific example of an entity in the IFC data File is "# 733044 ═ IFCDOOR ('35 esafsipz 6 app wc $ JcJW $ Hb', #42, '\ X2\535562479632706B95E8\ X0\ GFM \ X2\7532\ X0\1021:905678', 'GFM \ X2\7532\ X0\1021', #1221875, #733035, '905678',2099.99999999998,1000,. door.,. sine _ SWING _ right., $)" to illustrate the construction method of IFC File partition matching and IFC File Graph (IFG).
Step 1, extracting nodes, edges, attributes and labels according to IFC official documents, and establishing an ISG (Internet service gateway) based on a label attribute graph structure.
And 2, based on the structural features of the IFC file, carrying out segmentation processing on the IFC file to be stored.
And 2.1, identifying and dividing the head segment and the DATA segment according to the head/ENDSEC and the DATA/ENDSEC.
And 2.2, segmenting the data segment information according to the line feed character, and converting the IFC instance file into an ordered entity instance data list 'stepFileList'.
Step 2.3, extract example items #733044 ═ IFCDOOR ('35eA fsIpz6aPwC $ JcJW $, #42, ' \ X2\535562479632706B95E8\ X0\ GFM \ X2\7532\ X0\ 905678', ' GFM \ X2\ 2\ X0\1021', #1221875, #733035, ' 2099.99999999998,1000 ',. door.,. sine _ SWING _ right., $ 2X 0\1021', 3628, #733035, # 36 905678',2099.99999999998,1000 ', ' door.,. sine _ SWING _ right., ' and ' () "row number" #733044 ", entity example" ifo OR ", attribute values ('35 afsz 6 ipz awc '/jcw ', #42 ', ' gfx 753 λ 2 ', 363675 \ 36753 \ 2 ', 363655 \ 3655 \ 36753 \ 2 ', 36363636x 36753 \ 3655 \ 2 ', 36753 '. There is a one-to-one association between a row number and an entity instance. There is also a one-to-one association between the line number and the attribute value.
Step 2.4, for the above attribute values, according to five data characteristics of the attribute values, the sequence is divided into attribute value sequences of [ ("," \ X2\ … \ X0\ and "()," 35eAfsIpz6 app wc $ JcJ W $ Hb, #42, # X2\535562479632706B95E8\ X0 ], "" GFM \ X2\7532\ X0\1021:905678, $, GFM \ X2\7532\ X0\1021, #1221875, #733035, 905678, 2099.99999999998,1000., DOOR, SINGLE _ SWING _ RIGHT, $ ], respectively. And taking the attribute Value sequence as Value and the line number #733044 as Key to reconstruct the one-to-one relationship between the line number and the attribute Value sequence.
And 3, combining the IFC Schema Graph to perform IFC file entity instance query matching.
Step 3.1, as shown in fig. 4, one entity instance IFCDOOR and the corresponding line number #733044 are taken out, an entity node IFCDOOR corresponding to the instance IFCDOOR is queried in the constructed ISG, and attributes PSET { <1: globaldid >, <2: ownership >, <3: Name >, <4: Description >, <5: ObjectType >, <6: objectversion > <7: reproduction >, <8: Tag >, <9: overhead height >, <10: overhead Width >, <11: prefinedType >, <12: operation type >, <13: userpedope > and < Name: IFCDOOR > } of the entity node are recorded. Record the current entity instance row number # 733044.
And 3.2, sequentially taking out specific attribute values in the attribute value sequence and judging.
Step 3.2.1, when the attribute value is "$", replace the attribute value with "NULL"
Step 3.2.2, when the attribute is a character string from "\ x2 \" to "\ x0 \" end. And converting the attribute value into a corresponding Chinese character coded by UTF-8 according to a coding conversion rule of converting UTF-16 to UTF-8.
The processed attribute value sequence is [35eAfsIpz6aPwC $ JcJW $ Hb, #42, SINGLE fireproof DOOR GFM 1021:905678, empty, GFM 1021, #1221875, #733035, 905678, 2099.99999999998,1000, DOOR, SINGLE _ SWING _ R IGHT, empty ]
And 3.3, respectively taking out the attribute value and the value corresponding to the same subscript and key value from the processed attribute value sequence and the PSET. And taking the attribute Value extracted from the PSET as a Key in the instance attribute Key Value pair, and taking the Value extracted from the attribute Value sequence as a Value in the instance attribute Key Value pair. The attribute key value pair sets of each entity instance are constructed as { < Globalld: 35eAfsipz6aPwC $ JcJW $ Hb >, < OwnHistory: #42>, < Name: SINGLE fire DOOR GFM A1021: 905678>, < Description: empty >, < ObjectType: GFM A1021 >, < ObjectPlace: #1221875> < reproduction: #733035>, < Tag: 905678>, < overhead height:2099.99999999998>, < overhead Width:1000 >, < PrefinedType: DOOR >, < operation type: SINGLE _ SWING _ RIGHT >, < User defindedOperaphone: empty } action.
Step 3.4, the set of attribute key-value pairs of the entity instance is uniquely marked with a row number # 73304.
And 4, extracting nodes, edges, attributes and labels from the partitioned IFC file according to the matching result, and establishing the IFG based on the label attribute graph structure. (the example of the relationship entity associated with the current entity example is used for illustration here, as shown in FIG. 4)
And 4.1, processing the 12 entity instance data contained in the figure 4 according to the step 2 and the step 3 to obtain an entityMap and an attebusteValueMap set. And respectively taking an entity instance and an attribute key value pair set with the same row number from the entit yMap and the attribute value pair set, taking the attribute key value pair set as a node attribute to establish an IFC File Graph node, simultaneously adding an attribute of < name: > and an attribute of < rowNumber: >, setting the entity instance as the value of the name attribute, and setting the row number as the value of the rowNumber attribute.
Step 4.2, traversing the nodes, finding out all the relationship entity instance nodes, namely ten nodes with the row numbers of # 733055, #733066, #733084, #733079, #733073, #733089, # 1193071, #1200524, #1207119, #1221869, and extracting the values of the n ame attribute, the related attribute and the related attribute of the nodes.
In step 4.3, the node having the rowNumber attribute value identical to the related attribute value, i.e., the node having the row number #733044 is found out from all the nodes and is used as the start node. Finding out a node set with rowNumber attribute value being the same as the relating attribute value from all nodes as an end node set, namely a set consisting of nodes with row numbers of #733051, #733063, #733082, # 733076, #733069 and #733087, establishing a plurality of directed edges pointing to all nodes in the end node set by the start node, and taking the name attribute value of the current relational entity instance node as labels of the plurality of directed edges, for example, establishing a directed edge pointing to the node with row number #733051 by the node with row number #733044, wherein the label of the directed edge is IFCR ELDEFINESBYPERTS.
And 4.4, adding the attribute key value pair set of the relational entity instance node to the corresponding directed edge as the attribute key value pair of the edge. And delete the relational entity instance node and its collection of attribute key-value pairs.
And 4.5, traversing all the nodes, and finding out all the nodes with reference values in the attribute key-value pair set, namely the node with the row number of #733044, wherein the attribute key-value pair set has the reference values of #42, #1221875 and # 733035.
Step 4.6, taking #42 as an example, for a node with a row number of #733044, establishing a directed edge by taking a Key value "OwnerHistory" corresponding to the reference value in the attribute Key value pair as a label. The directed edge is formed by the node with row number #733044 pointing to row number #42, the result is shown in FIG. 5.
It will be evident to those skilled in the art that the invention is not limited to the details of the foregoing illustrative embodiments, and that the present invention may be embodied in other specific forms without departing from the spirit or essential attributes thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.

Claims (9)

1. An IFC data efficient storage method based on a tag attribute graph structure specifically comprises the following steps:
step 1, extracting nodes, edges, attributes and labels according to IFC official documents, and establishing an ISG (Internet service gateway) based on a label attribute graph structure;
step 2, based on the structural features of the IFC file, carrying out segmentation processing on the IFC file to be stored;
step 3, combining the IFC Schema Graph to perform IFC file entity instance query matching;
and 4, extracting nodes, edges, attributes and labels from the divided IFC files according to the matching result in the step 3, and establishing the IFG based on the label attribute graph structure.
2. The method for efficiently storing IFC data based on the label attribute graph structure as claimed in claim 1, wherein the step 1 is implemented by the following steps:
step 1.1, reading an IFC Schema document written based on an EXPRESS language, converting an entity of an EnumerationType type into a node, adding enumerated values contained in the entity as attributes of the node in sequence, indexing by taking natural numbers 1, 2 and 3 … as attribute names, adding an [ EnumerationType ] tag and a < name: > attribute for a current node, and setting the entity name of the current entity as a name attribute value;
step 1.2, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an entity of a DefinedType type into a node, adding a [ DefinedType ] tag and a < name: > attribute to a current node, and setting the entity name of the current entity as the value of the name attribute;
step 1.3, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an entity of a SelectType type into a node, adding a [ SelectType ] tag and a < name: > attribute, and setting the entity name of the current entity as the value of the name attribute. Meanwhile, establishing a directed edge Select _ Type, and pointing to the contained Entity node, defindedType Entity node, SelectType Entity node or Enumeration Type Entity node by the current SelectType Entity node. If the node pointed by the directed edge is not established, the corresponding IFC entity is subjected to node conversion, and then the directed edge Select _ Type between the two nodes is established.
Step 1.4, reading an IFC mode file ifc.exp written based on an EXPRESS language, converting an Entity of an Entity type into a node, adding an [ Entity ] label and a < name: > attribute, and setting the Entity name of the current Entity as the value of the name attribute.
Step 1.5, reading 408 PropertySetDef files and 91 QtoSetDef files written based on XML language, and converting predefined attribute sets and predefined quantity sets.
3. The method for efficiently storing IFC data based on the label attribute graph structure according to claim 2, wherein the specific steps of step 1.2 are as follows:
step 1.2.1, if the current defindedtype entity is obtained by encapsulating different Data types in the EXPRESS language, adding attribute < Data _ Type: > to the current node, and setting the Data Type encapsulated by the node as the value of the Data _ Type attribute.
Step 1.2.2, if the current defindedtype entity is obtained by encapsulating another defindedtype entity, establishing an edge "Data _ Type" pointing to the encapsulated defindedtype entity node by the node, such as { current node, Data _ Type, encapsulated node }. If the corresponding node of the packed DefinedType entity is not established, node conversion is firstly carried out on the packed DefinedType entity, and then the directed edge 'Data _ Type' between the two nodes is established.
4. The method for efficiently storing IFC data based on the label attribute graph structure as claimed in claim 2, wherein the specific steps of step 1.4 are as follows
Step 1.4.1, according to the inheritance relationship between Entity types in the IFC mode file, establishing directed edges 'SubClass' pointing to sub-class Entity nodes from parent Entity nodes between corresponding nodes, such as { parent node, SubClass, child nodes }.
And step 1.4.2, mapping the direct attribute of the Entity type into an attribute value of the corresponding node attribute, including the attribute inherited from the Entity type, and using the definition sequence of the Entity attribute in the IFC mode file as a key value of the node attribute, such as <1: GUID >.
Step 1.4.3, in the IFC, the attribute value of the Entity Type of the Entity is one of the Entity Type of the Entity, the Type constraint according to the attribute value of the Entity Type of the Entity, a directed edge 'DirectAttribute _ Type' is constructed, and the Entity node of the Entity Type of the Entity points to the Entity node of the corresponding Type, such as { A node, DirectAttribute _ Type, B Type node }. If the corresponding Type entity node is not established, the corresponding Type entity is subjected to node conversion, and then a directed edge 'DirectAttribute _ Type' between two nodes is established. Meanwhile, adding attributes < name: > and < additional: > on the edge, setting the attribute name in the Entity as the value of the name, and when the attribute is an OPTIONAL attribute, setting the value of the additional attribute as the OptiONAL.
Step 1.4.4, converting the Inverse attribute (not including the inherited Inverse attribute) in the Entity into a directed edge "Inverse attribute", and pointing the Entity node with the Inverse attribute to the associated Entity node. If the corresponding type entity node is not established, the corresponding type entity is subjected to node conversion, and then a directed edge 'InverseAttribute' between two nodes is established. Meanwhile, adding a < name: > attribute on the 'InverseAttribute' edge, and setting the name of the attribute corresponding to the Entity as the value of the name.
Step 1.4.5, the total number of Entity entities with Drive attribute is 90, wherein 86 entities are processed according to the steps 1.3.2 and 1.3.3. And the rest IfcSIUnit, IfcIrroredProfileDef, IfcOrienteEdge and IfcMemetritrepresentationSubContext, wherein the definition sequence of the attribute is disturbed in the instantiation process, and the attribute key value pair of the entity node is manually modified according to the attribute sequence after the entity is instantiated. Taking ifcSIUnit as an example, the attribute sequences in the entity are UnitType, Prefix, Name, and Dimensions. The attribute key value pair of the entity node modified according to the attribute sequence after the entity instantiation is <1: Dimensions > <2: UnitType > <3: Prefix > <4: Name >.
5. The method for efficiently storing IFC data based on the label attribute graph structure as claimed in claim 2, wherein the specific steps of step 1.5 are as follows
Step 1.5.1, converting each PropertySet object into a node, adding a [ Property _ Set ] label and an attribute of < name: >, and an attribute of < ApplicabibleType _ Value: >, setting the name of a predefined attribute Set corresponding to the PropertySet object as the Value of the name, and taking the applicable type Value of the attribute Set object as the Value of the ApplicabibleType _ Value; converting each QuantySet object into a node, adding a [ Quanty _ Set ] label and an attribute < name: >, an attribute < ApplicabibleType _ Value >, setting the name of a corresponding predefined Quantity Set in the QuantySet object as the Value of name, and taking the applicable type Value of the Quantity Set object as the Value of ApplicabibleType _ Value.
Step 1.5.2, respectively constructing a unidirectional edge 'haveportyset' pointing to a property set node by a node corresponding to a current property set applicable entity and a unidirectional edge 'applicable element' pointing to an applicable entity node thereof by a property set node; and a single edge 'HaveQuantitySet' pointing to the volume set node by the node corresponding to the current volume set applicable entity and a unidirectional edge 'applicable element' pointing to the applicable entity node by the volume set node.
Step 1.5.3, converting each IndvidalProperty object into a node, adding an [ IndvidalProperty ] label and attributes < name: >, < Property _ Type: >, setting the name of the independent attribute object as the value of the name, and setting the data Type entity of the independent attribute object as the value of Property _ Type; converting each Quantity object into a node, adding a [ Quantity ] label and attributes of < name: >, < Quantity _ Type: >, setting the name of the Quantity object as the value of the name, and setting the data Type entity of the Quantity object as the value of the Quantity _ Type.
Step 1.5.4, respectively constructing a unidirectional edge 'Data _ Type' pointing to the entity node of the corresponding Data Type from the IndvidualProperty node, and a unidirectional edge 'IncludeProperty' pointing to the current IndvidualProperty from the PropertySet object node containing the current IndvidualProperty object; and a one-way edge "IncludeQuantity" pointed to the current Quantity by the QuantySet object node containing the current Quantity object.
6. The method for efficiently storing IFC data based on the tag attribute graph structure according to claim 1, wherein the step 2 is specifically implemented according to the following steps:
and 2.1, identifying and dividing the head segment and the DATA segment according to the head/ENDSEC and the DATA/ENDSEC.
And 2.2, segmenting the data segment information according to the line feed character, and converting the IFC instance file into an ordered entity instance data list 'stepFileList'.
Step 2.3, traverse each item in the entity instance data list stepfilist and divide into line number, entity instance, attribute value according to "#", "═ and" () ". The method comprises the steps of constructing 'Map < String, String > entityMap' to store row numbers, entity instances and the association relationship between the row numbers and the entity instances, constructing 'List < String > attribute ValueList' to store all entity instance attribute values as a List, and constructing 'Map < String, String > attribute ValueMap' to store row numbers, attribute values and the one-to-one relationship between the row numbers and the attribute values.
Step 2.4, traverse the List of attribute values of List < String > attribute values, and according to five data characteristics of the attribute values, respectively, "\ x2\ … \ x0\ and" () ", partition the attribute value corresponding to each entity instance into attribute value sequence List < Object > attribute values ArrayList. And using the attribute Value sequence as Value and the line number as Key, reconstructing Map < String, List < Objecet > > attribute Value Map, and storing the line number, the attribute Value sequence and the one-to-one relationship.
7. The method for efficiently storing IFC data based on the tag attribute graph structure according to claim 1, wherein the step 3 is specifically implemented according to the following steps:
and 3.1, traversing the segmentation result entityMap, taking out one entity instance and the corresponding row number, inquiring the entity node corresponding to the instance in the constructed ISG, and recording the label LAB and the attribute PSET of the entity node. The row number NUM of the current entity instance is recorded.
And 3.2, sequentially taking out all attribute value sequences attributeValueArrayList in the attributeValueMap set, traversing each attribute value sequence, taking out specific attribute values in the attribute value sequences, and judging.
And 3.3, taking out an attribute value sequence attributeValueArrayList corresponding to the line number NUM from the attributeValueMap, and respectively taking out attribute values and value values corresponding to the same subscript and key values from the sequence and the PSET. And taking the attribute Value extracted from the PSET as a Key in the instance attribute Key Value pair, and taking the Value extracted from the attribute Value sequence as a Value in the instance attribute Key Value pair. A set of attribute key-value pairs for each entity instance is constructed.
And 3.4, reconstructing attributeValueMap, and uniquely marking the attribute key value pair sets corresponding to all entity instances by using row numbers to obtain Map < String, wherein Map < String, Objecet > > attributeValueMap.
8. The method for efficiently storing IFC data based on the label attribute graph structure as claimed in claim 7, wherein the specific steps of step 3.2 are as follows:
step 3.2.1, when the attribute value is "$", replace the attribute value with "NULL"
Step 3.2.2, when the attribute is a character string from "\ x2 \" to "\ x0 \" end. And converting the attribute value into a corresponding Chinese character coded by UTF-8 according to a coding conversion rule of converting UTF-16 to UTF-8.
9. The method for efficiently storing IFC data based on the tag attribute graph structure according to claim 1, wherein the step 4 is specifically implemented according to the following steps:
and 4.1, respectively taking out an entity instance and an attribute key value pair set with the same row number from the entityMap and the attribute value pair from the entityMap, taking the attribute key value pair set as a node attribute to establish an IFC File Graph node, simultaneously adding an attribute of < name: > and an attribute of < rowNumber: >, setting the entity instance as the value of the name attribute, and setting the row number as the value of the rowNumber attribute.
And 4.2, traversing the nodes, finding out all the relational entity instance nodes, namely the nodes with the entity instance structure of IfcRel …, and extracting the values of the name attribute, the related attribute and the related attribute of the nodes.
And 4.3, finding out nodes with rowNumber attribute values identical to related attribute values from all the nodes as starting nodes, finding out a node set with rowNumber attribute values identical to related attribute values from all the nodes as an ending node set, establishing a plurality of directed edges pointing to all the nodes in the ending node set by the starting nodes, and taking the name attribute values of the current entity instance nodes as labels of the plurality of directed edges.
And 4.4, adding the attribute key value pair set of the relational entity instance node to the corresponding directed edge as the attribute key value pair of the edge. And delete the relational entity instance node and its collection of attribute key-value pairs.
And 4.5, traversing all nodes, and finding out all nodes with reference values in the attribute key-value pair set, wherein the reference values refer to line number values beginning with "#".
And 4.6, for the nodes, establishing directed edges by taking the Key values corresponding to the reference values in the attribute Key value pairs as labels. The directed edge points from the current node to a node whose rowNumber attribute value is the same as the reference value.
CN202010897122.0A 2020-08-31 2020-08-31 IFC data efficient storage method based on label attribute graph structure Active CN112328543B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010897122.0A CN112328543B (en) 2020-08-31 2020-08-31 IFC data efficient storage method based on label attribute graph structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010897122.0A CN112328543B (en) 2020-08-31 2020-08-31 IFC data efficient storage method based on label attribute graph structure

Publications (2)

Publication Number Publication Date
CN112328543A true CN112328543A (en) 2021-02-05
CN112328543B CN112328543B (en) 2024-01-26

Family

ID=74304489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010897122.0A Active CN112328543B (en) 2020-08-31 2020-08-31 IFC data efficient storage method based on label attribute graph structure

Country Status (1)

Country Link
CN (1) CN112328543B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070241A1 (en) * 2006-07-07 2010-03-18 Selvaag Bluethink As Computer-based method for automated modelling and design of buildings
CN110059086A (en) * 2019-03-19 2019-07-26 西安理工大学 Structuring automatic storage method based on IFC mode and its mapping model

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070241A1 (en) * 2006-07-07 2010-03-18 Selvaag Bluethink As Computer-based method for automated modelling and design of buildings
CN110059086A (en) * 2019-03-19 2019-07-26 西安理工大学 Structuring automatic storage method based on IFC mode and its mapping model

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高歌;张越美;刘寒;李智;顾明;: "基于知识库的IFC模型检查方法研究", 图学学报, no. 06 *

Also Published As

Publication number Publication date
CN112328543B (en) 2024-01-26

Similar Documents

Publication Publication Date Title
CN109446344B (en) Intelligent analysis report automatic generation system based on big data
US9009099B1 (en) Method and system for reconstruction of object model data in a relational database
CN107491561B (en) Ontology-based urban traffic heterogeneous data integration system and method
CN103412917B (en) The Database Systems of a kind of extendible polymorphic type FIELD Data coordinated management and management method
US6742001B2 (en) System and method for sharing data between hierarchical databases
CN110929042B (en) Knowledge graph construction and query method based on power enterprise
CN112000725B (en) Ontology fusion preprocessing method for multi-source heterogeneous resources
JP5241738B2 (en) Method and apparatus for building tree structure data from tables
TW200842630A (en) A method of data storage and management
CN107025290B (en) Storage method and reading method of fault tree data
CN103425740B (en) A kind of material information search method based on Semantic Clustering of internet of things oriented
CN108280159B (en) Method for converting graph database into relational database
CN110928939A (en) Method for converting Sql result set into Json data based on tree structure
CN110059086A (en) Structuring automatic storage method based on IFC mode and its mapping model
CN101578579B (en) Taxonomy object modeling method and system
CN111104525A (en) Construction method of building design specification knowledge graph based on graph database
CN114443646A (en) Bi-directional linear linked list directory retrieval based multi-way tree structure, electronic device and readable storage medium
JP2001014166A (en) Device for generating ontology coordinate information
CN101916260A (en) Method for establishing semantic mapping between disaster body and relational database
AL-Msie'deen et al. Detecting commonality and variability in use-case diagram variants
CN112328543A (en) IFC data efficient storage method based on label attribute graph structure
CN111124938A (en) Method for generating componentized test case
Černjeka et al. NoSQL document store translation to data vault based EDW
EP2313836A2 (en) Process for representing and handling multigraphs based on the use of bitmaps
CN104346393A (en) Building method of atomic data element models

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant