import java.io.File;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.TreeMap;

import javax.swing.tree.DefaultMutableTreeNode;

import ifc2x3javatoolbox.demo.IfcSpatialStructure;
import ifc2x3javatoolbox.ifc2x3tc1.IfcBuildingStorey;
import ifc2x3javatoolbox.ifc2x3tc1.IfcWall;
import ifc2x3javatoolbox.ifcmodel.IfcModel;

public class Test {
public static void main(String[] args) throws Exception{
IfcModel ifcModel = new IfcModel();
//File file = new File("C:\\Users\\new\\Desktop\\项目1.ifc");
File file  = new File("C:\\Users\\new\\Desktop\\项目2016-0002.ifc");
ifcModel.readStepFile(file);

DefaultMutableTreeNode rootTreeNode = new DefaultMutableTreeNode("no model loaded");

Enumeration<?> enumeration;
enumeration=rootTreeNode.depthFirstEnumeration();//以深度遍历节点
//enumeration=rootTreeNode.preorderEnumeration();//按前序遍历根节点
//enumeration=rootTreeNode.breadthFirstEnumeration();//以广度遍历节点
//enumeration=rootTreeNode.postorderEnumeration();//按后序遍历节点
//enumeration=rootTreeNode.children();//遍历该节点的所有子节点.

//知道了遍历方式,开始遍历.
  while(enumeration.hasMoreElements()){ 
  //遍历枚举对象.
  //先定义一个节点变量.
  DefaultMutableTreeNode node;
  node=(DefaultMutableTreeNode) enumeration.nextElement();//将节点名称给node.
  //根据级别输出占位符.
  for(int l=0;l<node.getLevel();l++){
  System.out.print("---");
  }
  //System.out.println(node.getUserObject()+"       "+node.getUserObject().getClass().getName()+"    "+node.getUserObject().getClass().getSimpleName());//输入节点标签.
  System.out.println(node.getUserObject());
}

}

}

使用java开源包解析ifc并获取数据(树形结构)的更多相关文章

  1. java jar包解析:打包文件,引入文件

    java jar包解析:打包文件,引入文件 cmd下: jar命令:package包打包 javac命令:普通类文件打包 Hello.java: package org.lxh.demo; publi ...

  2. (笔记)Mysql命令desc:获取数据表结构

    desc命令用于获取数据表结构. desc命令格式:    desc 表名;同样    show columns from 表名;也能获取数据表结构. 举例如下:mysql> desc MyCl ...

  3. 在java项目中怎样利用Dom4j解析XML文件获取数据

    在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据.比方数据库的连接字符串儿等.这个时候在读取配置文件的时候.我们一般会用到一个雷configuration,通过这个类来进 ...

  4. java 根据包名、目录名获取所有定义的类

    /** * Scans all classes accessible from the context class loader which belong to the given package a ...

  5. Json--Android中数据文件解析(Json解析--从服务器端获取数据并且解析,显示在客户端上面)

    前面学习过了使用SAX解析XML数据(点击进入:SAX解析XML数据),今天学习Json解析: 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Json数据 ...

  6. java工作流系统表单自动 获取数据

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 什么是数据自动获 ...

  7. java之初识服务器跨域获取数据

    当一个项目膨大到无法进行整理时,而作为新负责维护的团队是非常苦恼的.对于想实现两个系统的数据访问,使用Ajax数据请求方式获取jsonp格式的数据 需要有前端jquery库文件. 前端代码通过jque ...

  8. java下载excel,excel从数据库获取数据

    <!-- poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId&g ...

  9. java中JSON串转换并获取数据

    String strAllImp= " [{"id":2,"name":"还不错","count":3}]&q ...

随机推荐

  1. android:descendantFocusability用法简析(转)

        开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题 ...

  2. CentOS7下Tomcat启动特别慢【有效解决】

    多次亲测! 很简单,记录保存一下: 编辑 $JAVA_HOME/jre/lib/security/java.security 文件, 找到 securerandom.source=file:/dev/ ...

  3. KVM-环境安装

    1.操作系统安装 本文采用Centos6.4X64操作系统,也可以采用RHEL/CentOS6.x. (1)查看系统版本.内核版本 ##查看系统版本 [root@KVM ~]# cat /etc/re ...

  4. hdu4970(线性区间更新的懒操作)

    思路是求出从每一点出发走到终点分别要受到多少伤害,然后和每个怪兽的血量比一下.给一个数组,告了哪些区间需要更新,我需要的就是都更新以后每个点的伤害值是多少.不涉及到区间查询,没必要用线段树或树状数组( ...

  5. mysql1130远程连接没有权限的解决方法

    网上查了半天,终于解决 远程连接没有权限的原因有两种,一个是因为mysql的限制,一个是防火墙的限制. ,解决防火墙限制: 在mysql服务主机上将防火墙关闭或者在防火墙高级设置里面加入出入站规则,加 ...

  6. ICE的Glacier2使用

    1.使用Glacier2的步骤:   A.编写一个Glacier2的配置文件,参见样例   B.设置Glacier2的访问鉴权(密码或者证书),passwords文件每行样例"test xx ...

  7. EF各版本增删查改及执行Sql语句

    自从我开始使用Visual Studio 也已经经历了好几个版本了,而且这中间EF等框架的改变也算是比较多的.本篇文章记录下各个版本EF执行Sql语句和直接进行增删查改操作的区别,方便自己随时切换版本 ...

  8. Rabbitmq用户权限配置

    由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该 ...

  9. AMD 规范

    AMD(异步模块定义)是为浏览器环境设计的,因为 CommonJS 模块系统是同步加载的,当前浏览器环境还没有准备好同步加载模块的条件. AMD 定义了一套 JavaScript 模块依赖异步加载标准 ...

  10. YII1.1分页

    一.控制器 $criteria = new CDbCriteria(); //这里可以加一些条件 $criteria->addCondition('parent_id='.$this->c ...