IFC文件解析,有C# C++ VB.Net


IFC文件解析,有C# C++ VB.Net实例
资源截图
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using IfcEngine;

namespace ifceditor
{
    public partial class Form1 : Form
    {
        private Int32 model;
        private Entity[] myEntities;
        private List myInstances = new List();

        public Form1()
        {
            model = 0;
            InitializeComponent();
            textBoxFileName.Text = AppDomain.CurrentDomain.baseDirectory + “myFile.ifc“;
        }

        private void button1_Click(object sender EventArgs e)
        {
            string fileName = textBoxFileName.Text;

            if (model != 0)
            {
                IfcEngine.x86.sdaiCloseModel(model);
            }

            model = IfcEngine.x86.sdaiOpenModelBN(0 fileName “IFC2X3_TC1.exp“);
            if (model != 0)
            {
                IntPtr outputValue = IntPtr.Zero;
                IfcEngine.x86.GetSPFFHeaderItem(model 9 0 IfcEngine.x86.sdaiSTRING out outputValue);
                string s = Marshal.PtrToStringAnsi(outputValue);
                if (s.Contains(“IFC2“) == false)
                {
                    IfcEngine.x86.sdaiCloseModel(model);
                    model = 0;
                    if (s.Contains(“IFC4“) == true)
                    {
                        model = IfcEngine.x86.sdaiOpenModelBN(0 fileName “IFC4.exp“);
                    }
                }
            }

            treeViewLP.Nodes.Clear();
            if (model != 0)
            {
                Int32 cnt = IfcEngine.x86.engiGetEntityCount(model)
                      i = 0;

                myEntities = new Entity[cnt];
                while (i < cnt) {
                    myEntities[i] = new Entity(IfcEngine.x86.engiGetEntityElement(model i));
                    myEntities[i].attributeCnt = IfcEngine.x86.engiGetEntityNoArguments(myEntities[i].ifcEntity);
                    myEntities[i].instanceCnt = IfcEngine.x86.sdaiGetMemberCount(IfcEngine.x86.sdaiGetEntityExtent(model myEntities[i].ifcEntity));
                    i++;
                }

                while (i != 0) {
                    i--;
                    Int32 ifcParentEntity = IfcEngine.x86.engiGetEntityParent(myEntities[i].ifcEntity);
                    if (ifcParentEntity != 0)
                    {
                        Int32 j = 0;
                        while (j < cnt)
                        {
                            if (ifcParentEntity == myEntities[j].ifcEntity)
                            {
                                if (myEntities[j].child != null)
                                {
                                    myEntities[i].next = myEntities[j].child;
                                }
                           

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-10-09 21:17  IFCEngineDLLv1.04 (build 4000+)in
     目录           0  2015-10-11 09:36  IFCEngineDLLv1.04 (build 4000+)in32bit
     文件      117248  2015-10-09 21:46  IFCEngineDLLv1.04 (build 4000+)in32bitchkDisk4Ifc-32bit.exe
     文件     1998168  2014-03-26 02:03  IFCEngineDLLv1.04 (build 4000+)in32bitd3dx9_43.dll
     文件       12419  2015-08-10 10:08  IFCEngineDLLv1.04 (build 4000+)in32bitexample.ifc
     文件      549759  2015-08-10 10:08  IFCEngineDLLv1.04 (build 4000+)in32bitexample.ifcxml
     文件     1764864  2015-10-09 21:47  IFCEngineDLLv1.04 (build 4000+)in32bitHelloHouse-C++_32bit.exe
     文件      132608  2015-10-09 22:01  IFCEngineDLLv1.04 (build 4000+)in32bitHelloWall-32bit.exe
     文件      138240  2015-10-09 22:01  IFCEngineDLLv1.04 (build 4000+)in32bitHelloWall-32bit-Unicode.exe
     文件       87552  2015-10-11 09:15  IFCEngineDLLv1.04 (build 4000+)in32bitHelloWall-C#_32bit.exe
     文件      266688  2014-03-26 02:03  IFCEngineDLLv1.04 (build 4000+)in32bitIFC2X3_TC1.exp
     文件        3624  2014-07-12 12:09  IFCEngineDLLv1.04 (build 4000+)in32bitIFC2X3-Settings.xml
     文件      387456  2014-03-26 02:03  IFCEngineDLLv1.04 (build 4000+)in32bitIFC4.exp
     文件        6630  2014-05-29 14:09  IFCEngineDLLv1.04 (build 4000+)in32bitIFC4-Settings.xml
     文件       29184  2015-10-11 08:00  IFCEngineDLLv1.04 (build 4000+)in32bitIfcEditor-C#_32bit.exe
     文件      124416  2015-10-09 21:53  IFCEngineDLLv1.04 (build 4000+)in32bitifceditor-C++_Unicode_32bit.exe
     文件      796160  2015-10-09 14:15  IFCEngineDLLv1.04 (build 4000+)in32bitifcengine.dll
     文件       66048  2015-10-11 09:27  IFCEngineDLLv1.04 (build 4000+)in32bitIFCViewer-C#_32bit.exe
     文件      118272  2015-10-09 21:39  IFCEngineDLLv1.04 (build 4000+)in32bitifcviewer-C++_Unicode_32bit.exe
     文件       62464  2015-10-11 07:56  IFCEngineDLLv1.04 (build 4000+)in32bitIFCViewer-VB.NET_32bit.exe
     文件        4769  2014-03-28 21:55  IFCEngineDLLv1.04 (build 4000+)in32bitinput.ifc
     文件     4342600  2014-03-26 02:03  IFCEngineDLLv1.04 (build 4000+)in32bitmfc100.dll
     文件      768848  2014-03-26 02:03  IFCEngineDLLv1.04 (build 4000+)in32bitmsvcr100.dll
     文件       36963  2015-03-13 18:41  IFCEngineDLLv1.04 (build 4000+)in32bitmyFile.ifc
     文件       86016  2015-10-09 21:38  IFCEngineDLLv1.04 (build 4000+)in32bitsimpleOpenIFCFile_32bit.exe
     目录           0  2015-10-11 09:35  IFCEngineDLLv1.04 (build 4000+)in64bit
     文件      125952  2015-10-09 21:46  IFCEngineDLLv1.04 (build 4000+)in64bitchkDisk4Ifc-64bit.exe
     文件     2401112  2014-03-26 02:03  IFCEngineDLLv1.04 (build 4000+)in64bitD3DX9_43.dll
     文件       12419  2015-08-10 10:11  IFCEngineDLLv1.04 (build 4000+)in64bitexample.ifc
     文件       58967  2015-08-10 10:11  IFCEngineDLLv1.04 (build 4000+)in64bitexample.ifcxml
     文件      151040  2015-10-09 22:01  IFCEngineDLLv1.04 (build 4000+)in64bitHelloWall-64bit.exe
............此处省略1135个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)