IfcRelDefinesByProperties IfcPropertySetDefinitionSelect IfcPropertySetDefinition IfcPropertySetDefinitionSet
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的更多相关文章
- IFC是什么
IFC是用EXPRESS语言来描述的一种数据格式 IFC的物理文件 为了数据交换的目的,STEP标准Prat 21规定了正文文件的结构,认为一个STEP文件或一个Part 21文件包括两端:头段和数据 ...
- xBIM 格式之间转换
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...
- xBIM IFC 墙壁案例
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...
- xBIM 基本的模型操作
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...
- IFC文件解析
什么是IFC? EXPRESS语言与IFC体系 一.IFC 1.IFC简介 IFC是一个数据交换标准, 用于不同系统交换和共享数据.当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的 ...
- 一堵墙IFC数据-wall.ifc
这是一面墙的IFC数据内容 =====================================文档内容======================================= ISO-1 ...
- xBIM 基础06 将STEP物理文件转换为XML
系列目录 [已更新最新开发文章,点击查看详细] 一.STEP标准简介 STEP,它是Standard for the Exchange of Product model data的缩写.产品数 ...
- xBIM 基础05 3D墙案例
系列目录 [已更新最新开发文章,点击查看详细] 使用编码的形式去生成一堵墙的模型需要做很多的工作. using System; using System.Collections.Generic ...
- xBIM 基础03 基本模型操作
系列目录 [已更新最新开发文章,点击查看详细] 本篇将使用基本的代码示例来表示如何使用xBIM.我们将介绍持久存储的四个基本功能,即 CRUD(创建,检索,更新和删除).以下示例通常适用于IF ...
随机推荐
- Windows server 2012 利用ntdsutil工具实现AD角色转移及删除域控方法
场景1:主域控制器与辅助域控制器运行正常,相互间可以实现AD复制功能.需要把辅助域控制器提升为主域控制器 ,把主域控制器降级为普通成员服务器:这种场景一般应用到原主域控制器进行系统升级(先转移域角色, ...
- 部署Nginx网站服务实现访问状态统计以及访问控制功能
原文:https://blog.51cto.com/11134648/2130987 Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物 ...
- Jenkins企业应用
一,CI/CD,DevOps介绍 持续集成(Continuous Integration,CI): 代码合并,构建,部署,测试都在一起,不断地执行这个过程,并对结果反馈 持续交付(Continuous ...
- Codeforces Round 585
Codeforces Round 585 浅论如何发现自己是傻子的-- 反正今天是完全蒙的,水了签到题就跑了-- A. Yellow Cards 签到题. 众所周知,CF的签到题一般是一道神神奇奇的数 ...
- 个性化召回算法实践(五)——item2vec
item2vec将用户的行为序列转化成item组成的句子,模仿word2vec训练word embedding将item embedding.基本思想是把原来高维稀疏的表示方式(one_hot)映射到 ...
- 【搜索/tarjan找环】zznu-简单环路
简单环路 题目描述 有一个N x M 大小的地图,地图中的每个单元包含一个大写字母. 若两个相邻的(这里的相邻指“上下左右”相邻)点上的字母相同,我们可以用线段连接这两个点. 若存在一个包含同一字母的 ...
- 【记忆化搜索】[NOIP-2017--普及组] -- 棋盘
[题目描述] 原题目链接地址: 有一个m × m的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在的位置必须是有颜色的( ...
- Oracle使用游标查询所有数据表备注
功能作用:应用对应的SQL语句,能方便快速的查询Oracle数据库指定用户的所有用户表说明,快速知道每个数据表是做什么的,方便写文档和方案. 运行环境:搭建好Oracle数据库,并使用PQ/SQL D ...
- vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.
默认,webpack无法打包.vue文件,需要安装 相关的loader: cnpm i vue-loader vue-template-compiler -D 提示以下错误信息: Module Err ...
- celery 笔记
参考:https://blog.csdn.net/tichimi3375/article/details/82415412 中文翻译:https://www.celerycn.io/ htt ...