private void updateObject(IfcObject ifcObject, PropertyNode root)
{
/*
if(ifcObject.getClassName().toString().indexOf("IfcBuildingElementProxy") ==-1 && ifcObject.getClassName().toString().indexOf("IfcWallStandardCase") ==-1 && ifcObject.getClassName().toString().indexOf("IfcSpace") ==-1 && ifcObject.getClassName().toString().indexOf("IfcAnnotation") ==-1 && ifcObject.getClassName().toString().indexOf("IfcOpeningElement") ==-1 && ifcObject.getClassName().toString().indexOf("IfcRailing") ==-1 ){
System.out.println("com.apstex.gui.ifc.views.propertiesview ---> PropertiesPanel.java ---> update() "+ifcObject.getName()+" class "+ifcObject.getClassName()+" id #"+ifcObject.getStepLineNumber());
}
*/
if(ifcObject instanceof IfcObject.Ifc2x3)
{
IfcObject.Ifc2x3 ifcObject2x3 = (IfcObject.Ifc2x3) ifcObject;
if(ifcObject2x3.getIsDefinedBy_Inverse() == null)
return;
PropertyNode objectNode = new PropertyNode(ifcObject);
System.out.println("com.apstex.gui.ifc.views.propertiesview ---> PropertiesPanel.java 195 ---> update() "+objectNode.getUserObject().toString());
for (IfcRelDefines ifcRelDefines : ifcObject2x3.getIsDefinedBy_Inverse())
{
if(ifcRelDefines instanceof IfcRelDefinesByProperties)
{
IfcPropertySetDefinition ifcPropertySetDefinition = ((IfcRelDefinesByProperties.Ifc2x3)ifcRelDefines).getRelatingPropertyDefinition();
//System.out.println("com.apstex.gui.ifc.views.propertiesview ---> PropertiesPanel.java 201 ---> update() "+ifcPropertySetDefinition.getName());
updateProperty(ifcPropertySetDefinition, objectNode);
}
}
if(objectNode.getChildCount() > 0)
{
/*
if(ifcObject.getClassName().toString().indexOf("IfcBuildingElementProxy") ==-1 && ifcObject.getClassName().toString().indexOf("IfcWallStandardCase") ==-1 && ifcObject.getClassName().toString().indexOf("IfcSpace") ==-1){
System.out.println("com.apstex.gui.ifc.views.propertiesview ---> PropertiesPanel.java ---> update() "+ifcObject.getClassName()+" "+ifcObject.getDescription()+" "+ifcObject.getGlobalId()+" "+ifcObject.getStepParameter(true));
}
*/
//System.out.println("===="+ifcObject.getClassName()+" objectNode "+objectNode.toString());
objectToNodeMap.put(ifcObject, objectNode);
root.addChild(objectNode);
}
}
else if(ifcObject instanceof IfcObject.Ifc4)
{
IfcObject.Ifc4 ifcObject4 = (IfcObject.Ifc4) ifcObject;
if(ifcObject4.getIsDefinedBy_Inverse() == null)
return;
PropertyNode objectNode = new PropertyNode(ifcObject);
for (IfcRelDefinesByProperties.Ifc4 ifcRelDefines : ifcObject4.getIsDefinedBy_Inverse())
{
IfcPropertySetDefinitionSelect IifcPropertySetDefinitionSelect1 = ifcRelDefines.getRelatingPropertyDefinition();
if(IifcPropertySetDefinitionSelect1 instanceof IfcPropertySetDefinition)
{
updateProperty((IfcPropertySetDefinition) IifcPropertySetDefinitionSelect1, objectNode);
}
else if(IifcPropertySetDefinitionSelect1 instanceof IfcPropertySetDefinitionSet)
{
for (IfcPropertySetDefinition def : (IfcPropertySetDefinitionSet.Ifc4) IifcPropertySetDefinitionSelect1)
{
updateProperty(def, objectNode);
}
}
}
if(objectNode.getChildCount() > 0)
{
objectToNodeMap.put(ifcObject, objectNode);
root.addChild(objectNode);
}
}
else
{
throw new IllegalArgumentException("Scheme not supported: "+ifcObject.getClass().getName());
}
}

id: 6232 name: "M_矩形-结构柱:400 x 600mm结构柱:371662" class: IfcColumn global id: "2pjGIuBpj3PPch3_QVbyx_" "M_矩形-结构柱:400 x 600mm结构柱:371662"
"371662" size: 7
===== IfcPropertySet
"Pset_ColumnCommon"
: "LoadBearing"
: "Reference"
: "IsExternal"
: "Slope"
===== IfcPropertySet
"其他"
: "族"
: "族与类型"
: "类别"
: "类型"
: "类型 ID"
===== IfcPropertySet
"尺寸标注"
: "体积"
: "长度"
: "面积"
===== IfcPropertySet
"标识数据"
: "注释"
===== IfcPropertySet
"结构"
: "启用分析模型"
: "钢筋保护层 - 其他面"
: "钢筋保护层 - 底面"
: "钢筋保护层 - 顶面"
===== IfcPropertySet
"阶段化"
: "创建的阶段"
===== IfcPropertySet
"限制条件"
: "底部偏移"
: "房间边界"
: "顶部偏移"
: "柱样式"
: "随轴网移动"
: "底部标高"
: "标高"
: "顶部标高"
: "柱定位标记"

IfcRelDefinesByProperties IfcPropertySetDefinitionSelect IfcPropertySetDefinition IfcPropertySetDefinitionSet的更多相关文章

  1. IFC是什么

    IFC是用EXPRESS语言来描述的一种数据格式 IFC的物理文件 为了数据交换的目的,STEP标准Prat 21规定了正文文件的结构,认为一个STEP文件或一个Part 21文件包括两端:头段和数据 ...

  2. xBIM 格式之间转换

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  3. xBIM IFC 墙壁案例

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  4. xBIM 基本的模型操作

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  5. IFC文件解析

    什么是IFC? EXPRESS语言与IFC体系 一.IFC 1.IFC简介 IFC是一个数据交换标准, 用于不同系统交换和共享数据.当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的 ...

  6. 一堵墙IFC数据-wall.ifc

    这是一面墙的IFC数据内容 =====================================文档内容======================================= ISO-1 ...

  7. xBIM 基础06 将STEP物理文件转换为XML

    系列目录    [已更新最新开发文章,点击查看详细]  一.STEP标准简介 STEP,它是Standard for the Exchange of Product model data的缩写.产品数 ...

  8. xBIM 基础05 3D墙案例

    系列目录    [已更新最新开发文章,点击查看详细]  使用编码的形式去生成一堵墙的模型需要做很多的工作. using System; using System.Collections.Generic ...

  9. xBIM 基础03 基本模型操作

    系列目录    [已更新最新开发文章,点击查看详细]  本篇将使用基本的代码示例来表示如何使用xBIM.我们将介绍持久存储的四个基本功能,即 CRUD(创建,检索,更新和删除).以下示例通常适用于IF ...

随机推荐

  1. kubernetes---ConfigMap管理应用配置

    1.拆分环境 主机名 角色 ip hdss7-11.host.com zk1.od.com(Test环境) 10.4.7.11 hdss7-12.host.com zk2.od.com(Prod环境) ...

  2. PAT_B1013

    这道题就是一道打印素数表的题目,本人使用的是筛选法,用bool数组记录是否为素数,每一次筛掉本轮数字的倍数,如果当前数字bool数组对应位置为false,则为素数. 这道题的坑是:你不知道最大第100 ...

  3. Codeforces Round #511 (Div. 2) C. Enlarge GCD (质因数)

    题目 题意: 给你n个数a[1]...a[n],可以得到这n个数的最大公约数, 现在要求你在n个数中 尽量少删除数,使得被删之后的数组a的最大公约数比原来的大. 如果要删的数小于n,就输出要删的数的个 ...

  4. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...

  5. php多版本配置

    需求分析: 需要在一台装有php5.4的测试服务器跑的上php7.2.x的项目 安装phpenv(php版本控制) $ sudo yum install git $ mkdir -p repos/gi ...

  6. linux 防火墙 firewall 设置

    背景: 机房断电后导致机器关机重启,原先访问的地址访问不了,使用终端能访问到该服务器,服务启起来后,用curl + 地址能访问,但在外部浏览器访问不了该地址: 首先想到了端口限制----防火墙 参考博 ...

  7. 判断字符串是否是IP地址

    #include <stdio.h>#include <string.h> bool isIP(const char* str); int main(){ char str[] ...

  8. ES WIndows 安装 ES与ES-head

    一.ES的安装 1.到ES官网下载ES 安装ES前,需要安装JDK1.8以上版本 https://www.elastic.co/downloads/elasticsearch 2.解压ES 3.安装E ...

  9. ubuntu16.04源码编译安装nginx1.14.2

    1.下载nginx-1.14.2, 官网地址:nginx.org 2.解压nginx-1.14.2.tar.gz tar zxvf nginx-1.14.2.tar.gz 3.切到文件夹nginx-1 ...

  10. ROS手动编写消息发布器和订阅器topic demo(C++)

    1.首先创建 package cd ~/catkin_ws/src catkin_create_pkg topic_demo roscpp rospy std_msgs 2. 编写 msg 文件 cd ...