CN112182699B - Information extraction method based on revit primitive model - Google Patents

Information extraction method based on revit primitive model Download PDF

Info

Publication number
CN112182699B
CN112182699B CN202010981292.7A CN202010981292A CN112182699B CN 112182699 B CN112182699 B CN 112182699B CN 202010981292 A CN202010981292 A CN 202010981292A CN 112182699 B CN112182699 B CN 112182699B
Authority
CN
China
Prior art keywords
information
revit
acquiring
project
model
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.)
Active
Application number
CN202010981292.7A
Other languages
Chinese (zh)
Other versions
CN112182699A (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.)
Shanxi Zhongbei Jianxin Industrial Technology Research Institute Co ltd
North University of China
Original Assignee
Shanxi Zhongbei Jianxin Industrial Technology Research Institute Co ltd
North University of China
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 Shanxi Zhongbei Jianxin Industrial Technology Research Institute Co ltd, North University of China filed Critical Shanxi Zhongbei Jianxin Industrial Technology Research Institute Co ltd
Priority to CN202010981292.7A priority Critical patent/CN112182699B/en
Publication of CN112182699A publication Critical patent/CN112182699A/en
Application granted granted Critical
Publication of CN112182699B publication Critical patent/CN112182699B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Abstract

The invention relates to an information extraction method based on a revit primitive model, belongs to the technical field of building information models, and solves the technical problems of difficult information interaction and data loss among various specialties in the BIM technical development process. The solution is as follows: according to the invention, BIM mainstream software revit is adopted, secondary development is carried out based on API of BIM mainstream software, and a plug-in for extracting component model information is created, so that information reading and one-key export are facilitated; seamless mutual conductance between software can be performed by using the extracted information, so that the extraction and interaction of the revit model information are simpler and more efficient. On the basis of the prior art, format conversion among software is not limited, information interaction and data transmission are carried out by using an original primitive model carrying parameters, the problem of information fracture fault among software can be effectively solved, and the efficiency of data interaction in the BIM application technology is improved.

Description

Information extraction method based on revit primitive model
Technical Field
The invention belongs to the technical field of building information models, and particularly relates to an information extraction method based on a revit primitive model.
Background
The BIM technology is the development trend of the current building industry, and the BIM (building information model) technology is the digital expression of the whole physical facilities and functional characteristics of a project by using a three-dimensional parameterized building information model, so that the core of the BIM technology information is to realize information sharing and data interaction at each stage of the building project and improve the information interaction degree.
In the prior art, because BIM software interfaces are not uniform, the development of the BIM software interfaces is greatly restricted due to the problem of data loss, information islands still exist, the BIM technology does not fully realize data collaboration, and all parties in each stage from design to delivery and use still need a large amount of manual participation. Most of the BIM software used at present is foreign software, and the produced results do not accord with the Chinese standard specification, so that the model information in the BIM software is completely extracted to realize the interaction of data on different platforms, reduce the data loss and realize the data sharing, and the method has practical significance.
Disclosure of Invention
In order to overcome the defects of the prior art and solve the technical problems of difficult information interaction and data loss among various specialties in the BIM technology development process, the invention provides an information extraction method based on a revit primitive model, and provides a novel method for data interaction and transmission with high efficiency and feasibility on the basis of the prior art.
The design concept of the invention is as follows: according to the invention, BIM mainstream software revit is adopted, secondary development is carried out based on API of BIM mainstream software, and a plug-in for extracting component model information is created, so that information reading and one-key export are facilitated; seamless mutual conductance between software can be carried out by utilizing the extracted information, so that the extraction and interaction of the revit model information are simpler and more efficient.
The invention is realized by the following technical scheme.
An information extraction method based on a revit primitive model comprises the following steps:
s1, revit three-dimensional modeling: building information model software REVIT is utilized to build a three-dimensional building model, and the three-dimensional building model comprises a plurality of unit projects;
s2, building a Revit secondary development platform:
the operation of the RevitAPI for realizing the software function expansion is in any one of the following two modes:
A. the interface through external command accomplishes: the interface of the external command has and only has an abstract function Excute, when the plug-in runs, the plug-in is called as a main function, and the plug-in creation is completed by adding a function code to be realized in the main function;
B. the following steps are completed through an interface of an external application: the interface of the external application has two abstract functions OnStartup and OnShutdown, and the establishment of the function is completed by reloading the OnStartup and OnShutdown abstract functions when an external command is used;
s3, extracting the revit primitive model information:
the revit primitive model information comprises project information parameters and component parameters, the project information parameters comprise project benchmark information and project material library parameter information, and the revit primitive model information is extracted and executed by the following operations:
s31, acquiring project parameters:
firstly, acquiring basic properties of an item: including project name, project number, project release date and project address;
the second step is that: acquiring project reference primitive information: the method comprises the steps that an elevation axis network and a reference plane are included, the class corresponding to the elevation is Level and is inherited from an Element class, the elevation height is obtained through a Level.
Thirdly, acquiring the information of the project material library:
(1) creating a collector and a filter, and calling a Wherepass function of the collector to filter the elements;
(2) traversing the element elements in the collector and converting the element elements into material, and acquiring material attribute information corresponding to each material element, wherein the material attribute information comprises UniqueId, name, RGB color and transparency;
(3) acquiring appearance attribute information of a Material, and acquiring AppearanceAssetId by utilizing the AppearanceAssetId attribute of the Material; obtaining the appearance element through the appearance AssetId;
(4) calling a method AperanceAssetElement.GetRenderingasset () to obtain an Asset set;
(5) analyzing the acquired Asset set, analyzing each object of the Asset Property in the set one by one, traversing the attributes in the Asset Property one by one, and respectively acquiring the attribute values of the attributes;
(6) and (3) material information packaging and calling: packaging the material attribute information by establishing a List < Material model > GetMaterial (Document revitDoc) set, and calling the method by a main function to realize the complete extraction of a material information base and write the material information base into a database for unified management;
s32, acquiring component attribute parameters:
(1) creating filters for filtering according to categories, and collecting each component by using a collector so as to acquire specific information of the corresponding component;
(2) parameter information extraction: the method comprises the steps that component Parameter information comprises instance parameters and type parameters, firstly, traversed element elements are converted into familyinstance, parameter information of corresponding primitive instances is checked by using LookUp, then, a get _ Parameter (BuiltInParameter) method is called, parameters of family instances are obtained through enumeration according to built-in Parameter BuiltInParameter, parameter information contained in components, including locating points, rotation angles, deformation matrixes and sizes, is extracted from a BIM model, finally, attribute Parameter information of the components is completely extracted and packaged, and calling is carried out through a main function;
(3) extracting the geometrical entity information of the component: acquiring geometric data of an entity object through element.
A. For a family of systems: the geometry attribute directly contains the geometric entity of the example, and elements in the geometric entity can be directly traversed to acquire geometric data of the example;
B. for the standard family: the geometric data of the standard family is defined by a family file, the geometric data of the standard family is stored in a geotry instance, wherein the geometric data of the family type is obtained by a geotry instance GetSymbolGeometry method, and the geometric data of the family instance is obtained by a Getry instance GetInstance method;
when acquiring geometric data, firstly, acquiring a family type geometric element symbolgeometry, and sequentially acquiring the edge, the face and the body of the component by traversing the family type geometric elements layer by layer;
s33, acquiring component graphic information:
(1) defining two list sets to store data in a classified manner, defining an XYZ list to store vertex coordinates of a triangular patch, and defining an Int list to store a face index of the triangular patch;
(2) traversing each face in the entity and converting the faces into triangular patches;
(3) acquiring vertex coordinates of a triangular patch, and putting the vertex coordinates into an XYZ list;
(4) the vertex coordinates are associated with index values: creating a dictionary, storing vertex coordinates of the triangular patch into the dictionary by traversing an XYZ list, removing repeated vertex coordinates, and finally obtaining an index value of a corresponding point coordinate by traversing the vertex coordinates in the dictionary;
s4, creating an information extraction plug-in:
(1) create class library and add references: creating a class library, and adding a database API, an interface API, an application service API, an attribute API, a selection function API, a Windows form control and a data stream operation namespace in sequence according to the functions to be realized;
(2) creating a transaction: submitting a series of operations for modifying the Revit model to an object of a document;
(3) and (3) main code compilation: writing the main function code of the extracted information;
(4) creating a plug-in button: firstly, adding an embedded panel, then calling a PushButton class to add a button control, and finally calling a Uri class to introduce a corresponding icon into a button;
(5) registering and running an expansion module: after the button is manufactured, writing an Add-in file as an internal starting file, so that the button can be led into the interior of Revit software;
(6) and writing the path of the dll file and the ID of the dll generated by the function program for extracting the component information into the file, opening the Revit software to obtain the plug-in for extracting the component information, and clicking the button to extract the BIM model component information.
Further, in the step S1, the unit project includes building, structure, and electromechanical installation.
Further, in step S2, the Revit plugin call needs to complete registration by loading a Revit.
Further, in the step S2, the tool built and used by the Revit secondary development platform includes Visual Studio2017, revit SDK, revit Lookup and addin manager.
The invention has the following beneficial effects:
the invention is not limited to format conversion among software any more, utilizes the original primitive model carrying parameters to carry out information interaction and data transmission, can effectively solve the problem of information fracture and fault among software, and provides a new idea for solving the problem of low data interaction efficiency in the prior BIM application technology.
Drawings
FIG. 1 is a general flow chart of data extraction according to the present invention;
FIG. 2 is a flow chart of the secondary development platform construction of the invention;
FIG. 3 is a flow chart of information extraction according to the present invention;
FIG. 4 is a flow chart of the present invention for creating plug-ins;
FIG. 5 is a view of a push button of the insert of the present invention;
FIG. 6 is a diagram illustrating an example of BIM model component information obtained by the method of the present invention.
Detailed Description
The invention is described in further detail below with reference to the figures and examples.
As shown in fig. 1 to fig. 6, an information extraction method based on a revit primitive model includes the following steps:
s1, revit three-dimensional modeling: building information model software REVIT is utilized to build a three-dimensional building model, wherein the three-dimensional building model comprises a plurality of unit projects such as buildings, structures, electromechanical installation and the like;
s2, building a Revit secondary development platform:
the operation of the RevitAPI for realizing the software function expansion is in any one of the following two modes:
A. interface through external Command (IExternal Command) completes: the interface of the external command has and only has an abstract function Excute, when the plug-in runs, the plug-in is called as a main function, and the plug-in creation is completed by adding a function code to be realized in the main function;
B. this is done through the interface of an External Application (External Application): the interface of the external application has two abstract functions OnStartup and OnShutdown, and the establishment of the function is completed by reloading the OnStartup and OnShutdown abstract functions when an external command is used;
the method comprises the steps that a Revit plug-in call needs to complete registration by loading a Revit.
S3, extracting the revit primitive model information:
the revit primitive model information comprises project information parameters and component parameters, the project information parameters comprise project benchmark information and project texture library parameter information, and the revit primitive model information is extracted and executed by the following operations:
s31, acquiring project parameters:
firstly, acquiring basic properties of an item: the method comprises the steps of (1) including a project name, a project number, a project release date and a project address;
the second step is that: acquiring project reference primitive information: comprises an elevation axis network and a reference plane; the elevation is the benchmark of the whole building model, and most elements are positioned based on the elevation, such as walls, floors, ceilings, roofs and the like. The elevation corresponding to the Level is Level, inherits from an Element class, and acquires the elevation height through a Level.
Thirdly, acquiring the information of the project material library:
(1) creating a collector MaterialCollector and filter ElementClassFilter materialFilter = new ElementClassFilter (typeof (Material)), and calling the Wherepass function of the collector to filter the elements, materialCollector = new filtered Elementcollector (revitDoc).
(2) Traversing the elements in the collector and converting the elements into material, and acquiring material attribute information corresponding to each material element, wherein the material attribute information comprises uniqueId, name, RGB color and transparency;
foreach(Element element in MaterialCollector)
{
Material material=elem as Material;
materialModel.MaterialId=elem.UniqueId;
//...
}
(3) obtaining Appearance attribute information Appearance of the Material, and obtaining AppearanceAssetId by utilizing the AppearanceAssetId attribute of the Material; obtaining an appearance element appearance assessetlement element through appearance assesetId;
(4) calling a method AperanceAssetElement.GetRenderingasset () to obtain an Asset set;
(5) analyzing the acquired Asset set, analyzing each object of the Asset Property in the set one by one, traversing the attributes in the Asset Property one by one, and respectively acquiring the attribute values of the attributes;
(6) and (3) material information packaging and calling: packaging the material attribute information by establishing a List < materialModel > GetMaterial (Document revitDoc), and calling List < AppliearAssetModel > appaearAssetLists = GetAppeaearAsceneSetElements (revitDoc, library yAsset) by a main function performing method; the complete extraction of the material information base is realized, and the material information base is written into a database for unified management;
s32, acquiring component attribute parameters:
(1) creating filters for filtering according to categories, and collecting each component by using a collector so as to acquire specific information of the corresponding component; the core code is as follows:
ElementClassFilter wallFilter=new ElementClassFilter(typeof(Wall));
ElementClassFilter floorFilter=new ElementClassFilter(typeof(Floor));
...
(2) parameter information extraction: the method comprises the steps that component Parameter information comprises instance parameters and type parameters, firstly, traversed element elements are converted into familyinstance, parameter information of corresponding primitive instances is checked by using LookUp, then, a get _ Parameter (BuiltInParameter) method is called, parameters of family instances are obtained through enumeration according to built-in Parameter BuiltInParameter, parameter information contained in components, including locating points, rotation angles, deformation matrixes and sizes, is extracted from a BIM model, finally, attribute Parameter information of the components is completely extracted and packaged, and calling is carried out through a main function; the core code is as follows:
LocationPoint lp=elem.Location as LocationPoint;
double lp1=lp.Rotation/(Math.PI/180);
Transform transform=familyInstance.GetTransform();
columnHeight=familyInstance.get_Parameter(BuiltInParameter.INSTANCE_LENGTH_PARAM);
...
(3) extracting the geometrical entity information of the component: acquiring geometric data of an entity object through an element.
A. For a family of systems: the geometry attribute directly contains the geometric entity solid of the example, and elements in the geometric entity solid can be directly traversed to obtain geometric data of the example;
B. for the standard family: the geometric data of the standard family is defined by a family file, the geometric data of the standard family is stored in a geotry instance, wherein the geometric data of the family type is obtained by a geotry instance GetSymbolGeometry method, and the geometric data of the family instance is obtained by a Getry instance GetInstance method;
when acquiring geometric data, firstly, acquiring a family type geometric element symbolgeometry, and sequentially acquiring an edge, a face and a body of a component by traversing the family type geometric elements layer by layer;
the extraction flow chart and the core code are as follows:
Figure BDA0002687609320000061
s33, acquiring component graph information:
the three-dimensional model is essentially presented in the form of a triangular mesh (mesh), and a geometry needs to be created by two attributes of triangular patch point coordinates (vertices) and face indices (faces). Therefore, obtaining the point coordinates and the face indexes of the triangular mesh is the key for realizing the cross-platform transmission of the data. The extraction of the graphic information still takes the graphic element as the center, and the information is associated to each graphic element component through the ID, and the specific steps are as follows:
(1) defining two list sets to store data in a classified manner, defining an XYZ list to store vertex coordinates of a triangular patch, and defining an Int list to store a face index of the triangular patch; the core code is as follows:
List<XYZ>triangularPoints=new List<XYZ>();
List<int>index=new List<int>();
(2) traversing each face in the entity and converting the faces into triangular patches; the core code is as follows:
foreach(Face face in solid.Faces)
{
Mesh mesh=face.Triangulate();
//...
(3) acquiring vertex coordinates of a triangular patch, and putting the vertex coordinates into an XYZ list; the core code is as follows:
For(int n=0;n<3;n++)
{
XYZ point=triangular.get_Vertex(n);
triangularPoints.Add(point);
}
(4) the vertex coordinates are associated with index values: creating a dictionary, storing vertex coordinates of the triangular patch into the dictionary by traversing an XYZ list, removing repeated vertex coordinates, and finally obtaining an index value of a corresponding point coordinate by traversing the vertex coordinates in the dictionary;
Figure BDA0002687609320000071
s4, creating an information extraction plug-in:
functional plug-ins for automatically extracting building information models are manufactured on Revit software through custom programming interfaces, revit API.DLL and Revit API.DLL of Revit2016 versions are quoted on a Visual Studio2017 platform, a part of naming space provided by Revit API is quoted, and plug-in development is realized by using C # language;
the text information extraction function plug-in is in a mode of expanding functions based on external application (Externalapplication), the extraction component information is started from the inside of Revit software through an Add-in file, is called along with the start of the Revit software and is stopped along with the close of the Revit software;
the method comprises the following specific steps:
(1) create class library and add references: creating a class library, and adding a database API, an interface API, an application service API, an attribute API, a selection function API, a Windows form control and a data stream operation namespace in sequence according to the functions to be realized; the core code is as follows:
Using Autodesk.Revit.UI;
Using Autodesk.Revit.DB;
Using System.Windows.Forms;
Using System.IO;
...
(2) creating a Transaction: submitting a series of operations for modifying the Revit model to an object of a document, wherein any one operation for modifying the document needs to be contained in an opened transaction belonging to the document, and otherwise, the operation is abnormally thrown out; the core code is as follows:
Figure BDA0002687609320000081
(3) and (3) main code compilation: writing the main function code of the extracted information;
(4) create plug-in button GetInfo: firstly, adding an embedded panel, then calling a PushButton class to add a button control, and finally calling a Uri class to introduce a corresponding icon into a button;
(5) registering and running an expansion module: after the button is manufactured, writing an Add-in file as an internal starting file, so that the button can be led into the interior of Revit software;
(6) writing the path sum of the dll file generated by the function program of the plug-in for extracting the component information into the file, opening Revit software to obtain the plug-in for extracting the component information (as shown in the figure), and clicking the button to extract the BIM model component information;
the core code of the XML file of addin is as follows:
<?xml version="1.0"encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="Application">
<Name>ClickMe</Name>
<Assembly>E:\ECKF\TQXX\column\column\bin\Debug\column.dll</Assembly>
<ClientId>db506a0f-a313-4c6d-a7e6-459ee261a263</ClientId>
<FullClassName>column.Loader</FullClassName>
<VendorId>ADSK</VendorId>
</AddIn>
</RevitAddIns>。
further, in the step S1, the unit project includes building, structure, and electromechanical installation.
Further, in step S2, the Revit plug-in call needs to complete registration by loading a Revit.
Further, in the step S2, the tool built and used by the Revit secondary development platform includes Visual Studio2017, revit SDK, revit Lookup and addin manager.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and the technical solutions of the embodiment are equally replaced by one or more technical parameters to form a new technical solution, which is also within the scope of the present invention; it will be apparent to those skilled in the art that various modifications and variations can be made in the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (4)

1. An information extraction method based on a revit primitive model is characterized by comprising the following steps:
s1, revit three-dimensional modeling: building information model software REVIT is utilized to build a three-dimensional building model, and the three-dimensional building model comprises a plurality of unit projects;
s2, building a Revit secondary development platform:
the operation of the Revit API for realizing software function expansion is in any one of the following two modes:
A. the interface through external command accomplishes: the interface of the external command has and only has an abstract function Excute, when the plug-in runs, the plug-in is called as a main function, and the plug-in creation is completed by adding a function code to be realized in the main function;
B. the following steps are completed through an interface of an external application: the interface of the external application has two abstract functions OnStartup and OnShutdown, and the establishment of the function is completed by reloading the OnStartup and OnShutdown abstract functions when an external command is used;
s3, extracting the revit primitive model information:
the revit primitive model information comprises project information parameters and component parameters, the project information parameters comprise project benchmark information and project material library parameter information, and the revit primitive model information is extracted and executed by the following operations:
s31, acquiring project parameters:
firstly, acquiring basic properties of an item: including project name, project number, project release date and project address;
the second step is that: acquiring project reference primitive information: the method comprises the steps that an elevation axis network and a reference plane are included, the class corresponding to the elevation is Level and is inherited from an Element class, the elevation height is obtained through a Level.
Thirdly, acquiring the information of the project material library:
(1) creating a collector and a filter, and calling a Wherepass function of the collector to filter the elements;
(2) traversing the elements in the collector and converting the elements into material, and acquiring material attribute information corresponding to each material element, wherein the material attribute information comprises uniqueId, name, RGB color and transparency;
(3) acquiring Appearance attribute information of a Material, and acquiring an Appearance AssetId by utilizing an AppearanceAssetId attribute of the Material; obtaining the Appearance element through the Appearance AssetId;
(4) calling a method AperanceAssetElement.GetRenderingasset () to obtain an Asset set;
(5) analyzing the acquired Asset set, analyzing each object of the Asset Property in the set one by one, traversing the attributes in the Asset Property one by one, and respectively acquiring the attribute values of the attributes;
(6) and (3) material information packaging and calling: packaging the material attribute information by establishing a List < Material model > GetMaterial (Document revitDoc) set, and calling the method by a main function to realize the complete extraction of a material information base and write the material information base into a database for unified management;
s32, acquiring component attribute parameters:
(1) creating filters for filtering according to categories, and collecting each component by using a collector so as to acquire specific information of the corresponding component;
(2) parameter information extraction: the method comprises the steps that component Parameter information comprises instance parameters and type parameters, firstly, traversed element elements are converted into familyinstance, parameter information of corresponding primitive instances is checked by using LookUp, then, a get _ Parameter (BuiltInParameter) method is called, parameters of family instances are obtained through enumeration according to built-in Parameter BuiltInParameter, parameter information contained in components, including locating points, rotation angles, deformation matrixes and sizes, is extracted from a BIM model, finally, attribute Parameter information of the components is completely extracted and packaged, and calling is carried out through a main function;
(3) extracting the geometrical entity information of the component: acquiring geometric data of an entity object through an element.
A. For a family of systems: the geometry attribute directly contains the geometric entity of the example, and elements in the geometric entity can be directly traversed to acquire geometric data of the example;
B. for the standard family: the geometric data of the standard family is defined by a family file, the geometric data of the standard family is stored in a geotry instance, wherein the geometric data of the family type is obtained by a geotry instance GetSymbolGeometry method, and the geometric data of the family instance is obtained by a Getry instance GetInstance method;
when acquiring geometric data, firstly, acquiring a family type geometric element symbolgeometry, and sequentially acquiring the edge, the face and the body of the component by traversing the family type geometric elements layer by layer;
s33, acquiring component graph information:
(1) defining two list sets to store data in a classified manner, defining an XYZ list to store vertex coordinates of a triangular patch, and defining an Int list to store a face index of the triangular patch;
(2) traversing each face in the entity and converting the faces into triangular patches;
(3) acquiring vertex coordinates of a triangular patch, and putting the vertex coordinates into an XYZ list;
(4) the vertex coordinates are associated with index values: creating a dictionary, storing vertex coordinates of the triangular patch into the dictionary by traversing an XYZ list, removing repeated vertex coordinates, and finally obtaining an index value of a corresponding point coordinate by traversing the vertex coordinates in the dictionary;
s4, creating an information extraction plug-in:
(1) create class library and add references: creating a class library, and sequentially adding a database API, an interface API, an application service API, an attribute API, a selection function API, a Windows form control and a namespace of data stream operation according to functions to be realized;
(2) creating a transaction: submitting a series of operations for modifying the Revit model to an object of a document;
(3) and (3) main code compilation: writing the main function code of the extracted information;
(4) creating a plug-in button: firstly, adding an embedded panel, then calling a PushButton class to add a button control, and finally calling a Uri class to introduce a corresponding icon into a button;
(5) registering and running an expansion module: after the button is manufactured, writing an Add-in file as an internal starting file, so that the button can be led into the interior of Revit software;
(6) and writing the path of the dll file and the ID of the dll generated by the function program for extracting the component information into the file, opening the Revit software to obtain the plug-in for extracting the component information, and clicking the button to extract the BIM model component information.
2. The method for extracting information based on revit primitive model according to claim 1, wherein: in the step S1, the unit project includes building, structure, and electromechanical installation.
3. The method for extracting information based on revit primitive model according to claim 1, wherein: in step S2, the Revit plug-in calls need to complete registration by loading a Revit.
4. The method for extracting information based on revit primitive model according to claim 1, wherein: in the step S2, the tool used for building the Revit secondary development platform includes Visual Studio2017, revit SDK, revit Lookup and AddinManager.
CN202010981292.7A 2020-09-17 2020-09-17 Information extraction method based on revit primitive model Active CN112182699B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010981292.7A CN112182699B (en) 2020-09-17 2020-09-17 Information extraction method based on revit primitive model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010981292.7A CN112182699B (en) 2020-09-17 2020-09-17 Information extraction method based on revit primitive model

Publications (2)

Publication Number Publication Date
CN112182699A CN112182699A (en) 2021-01-05
CN112182699B true CN112182699B (en) 2022-11-18

Family

ID=73921640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010981292.7A Active CN112182699B (en) 2020-09-17 2020-09-17 Information extraction method based on revit primitive model

Country Status (1)

Country Link
CN (1) CN112182699B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860701B (en) * 2021-03-01 2023-06-30 成都理工大学 System and method for modeless frame data transmission based on Revit
CN113609556B (en) * 2021-07-20 2023-09-08 国网河北省电力有限公司雄安新区供电公司 GIM format and XDB format lossless conversion method based on C#
CN113744406B (en) * 2021-08-31 2024-03-26 中建五局第三建设有限公司 Revit-based component outer surface relation analysis method
CN114398694A (en) * 2021-11-29 2022-04-26 中冶天工集团有限公司 Method for realizing rapid building information model based on Dynamo program
CN115097974A (en) * 2022-07-06 2022-09-23 成都建工第四建筑工程有限公司 Intelligent auxiliary consultation system and method for BIM (building information modeling)
CN115115787B (en) * 2022-07-22 2024-04-16 重庆筑信云智建筑科技有限公司 DirectVR-based two-dimensional drawing to 3D model method
CN116126809B (en) * 2023-04-19 2023-07-21 中亿丰数字科技集团有限公司 Building information model data storage conversion method based on national standard

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408044A (en) * 2018-10-19 2019-03-01 宁波睿峰信息科技有限公司 A kind of integration method of BIM data and GIS data based on glTF
CN110096484A (en) * 2019-04-12 2019-08-06 华东师范大学 A kind of 3D model batch deriving method based on Revit
JP2019168976A (en) * 2018-03-23 2019-10-03 株式会社ジオ技術研究所 Three-dimensional model generation device
CN110414148A (en) * 2019-07-30 2019-11-05 中北大学 The cross-platform online method for visualizing of open BIM based on WebGL
CN110941871A (en) * 2019-12-16 2020-03-31 山东建筑大学 Automatic labeling method and system based on room information in Revit three-dimensional model

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954479B2 (en) * 2012-06-13 2015-02-10 International Business Machines Corporation End-to-end interoperability and workflows from building architecture design to one or more simulations

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019168976A (en) * 2018-03-23 2019-10-03 株式会社ジオ技術研究所 Three-dimensional model generation device
CN109408044A (en) * 2018-10-19 2019-03-01 宁波睿峰信息科技有限公司 A kind of integration method of BIM data and GIS data based on glTF
CN110096484A (en) * 2019-04-12 2019-08-06 华东师范大学 A kind of 3D model batch deriving method based on Revit
CN110414148A (en) * 2019-07-30 2019-11-05 中北大学 The cross-platform online method for visualizing of open BIM based on WebGL
CN110941871A (en) * 2019-12-16 2020-03-31 山东建筑大学 Automatic labeling method and system based on room information in Revit three-dimensional model

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Structural sustainability appraisal in BIM;A.H.Oti等;《Automation in Construction》;20160607;44-58 *
基于BIM+AR技术的建筑模型信息提取及应用研究;张翼飞;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20210915(第(2021)09期);C038-68 *
基于IFC的建筑模型信息提取研究及应用;薛建英 等;《土木工程新材料、新技术及其工程应用交流会论文集(上册)》;20190530;387-391 *
面向BIM模型二次开发数据提取与应用技术;钟辉 等;《沈阳建筑大学学报(自然科学版)》;20190531;第35卷(第03期);560-566 *

Also Published As

Publication number Publication date
CN112182699A (en) 2021-01-05

Similar Documents

Publication Publication Date Title
CN112182699B (en) Information extraction method based on revit primitive model
CN112182698B (en) Depth extraction method based on revit wall body component
CN102449598B (en) Bag design and generation
US8026910B2 (en) Offline optimization pipeline for 3D content in embedded devices
US20080163159A1 (en) System and method for extracting UML models from legacy applications
WO2005089238A2 (en) Knowledge management system with integrated product document management for computer-aided design modeling
CN111427561A (en) Service code generation method and device, computer equipment and storage medium
WO2003036469A2 (en) A template-based method and system for reverse engineering
CN113051650B (en) Real-time acquisition method and device for building information model component data
CN106600700B (en) Three-dimensional model data processing system
US7013468B2 (en) Method and apparatus for design and manufacturing application associative interoperability
CN112465958A (en) WebGL-based BIM model lightweight display method
CN113778961B (en) Production management method, device and system for CIM model data
CN109858059B (en) Application method of virtual reality technology based on CAD (computer-aided design) super-large model in hydropower station simulation
CN106250134A (en) The code automatic generation method of unicity language
CN114168117A (en) Credit low-code development tool based on designer and storage device
CN111737785B (en) Data interaction method, device and system of Revit and AutoCAD
CN117077256A (en) Method for converting rvt format into b3d format, plug-in and system thereof
CN110554873B (en) System, computer device and storage medium for realizing man-machine interaction interface
CN116483707A (en) Test method, test device, test apparatus, test program, and test program
CN116166245A (en) Domain modeling method and device, computer equipment and storage medium
CN112182705B (en) BIM technology-based simulation model data analysis method
CN115115787A (en) Method for converting two-dimensional drawing into 3D model based on DirectVR
US8522198B2 (en) Model-operative pattern representation harvesting using an automated exemplar-directed approach
CN112015560B (en) Device for building IT infrastructure

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