xBIM 高级01 IFC多模型合并
多模型合并可以实现以下功能:
- 覆盖多个模型以表现得像一个模型
- 统一访问数据,就像它是单个模型一样
- 只读。要修改模型的内容,您必须使用特定模型
- 不限于单个模式(联合IFC2x3 + IFC4→将其作为IFC4接口查询)
- IFC联合可以存储为单个IFC文件(在IfcStore中)
using System;
using Xbim.Common.Step21;
using Xbim.Ifc;
using Xbim.Ifc4.Interfaces; namespace BasicExamples
{
public class FederationExample
{
public void CreateFederation()
{
var editor = new XbimEditorCredentials
{
ApplicationDevelopersName = "You",
ApplicationFullName = "Your app",
ApplicationIdentifier = "Your app ID",
ApplicationVersion = "4.0", EditorsFamilyName = "Santini Aichel",
EditorsGivenName = "Johann Blasius",
EditorsOrganisationName = "Independent Architecture"
};
using (var federation = IfcStore.Create(editor, IfcSchemaVersion.Ifc4, XbimStoreType.InMemoryModel))
{
federation.AddModelReference("SampleHouse.ifc", "Bob The Builder", "Original Constructor"); //IFC4
federation.AddModelReference("SampleHouseExtension.ifc", "Tyna", "Extensions Builder"); //IFC2x3 Console.WriteLine($"Model is federation: {federation.IsFederation}");
Console.WriteLine($"Number of overall entities: {federation.FederatedInstances.Count}");
Console.WriteLine($"Number of walls: {federation.FederatedInstances.CountOf<IIfcWall>()}");
foreach (var refModel in federation.ReferencedModels)
{
Console.WriteLine();
Console.WriteLine($" Referenced model: {refModel.Name}");
Console.WriteLine($" Referenced model organization: {refModel.OwningOrganisation}");
Console.WriteLine($" Number of walls: {refModel.Model.Instances.CountOf<IIfcWall>()}");
} // 保存为单一文件,工其他场景下使用
federation.SaveAs("federation.ifc");
}
}
}
}
控制台输出如下所示:
Model is federation: True
Number of overall entities:
Number of walls: Referenced model: SampleHouse.ifc
Referenced model organization: Bob The Builder
Number of walls: Referenced model: SampleHouseExtension.ifc
Referenced model organization: Tyna
Number of walls:
保存为IFC文件的联合设置如下所示。这个惯例纯粹是我们的发明,所以它不适用于其他工具。但它允许您在系统中创建联合,并在需要时再次重新打开它们。
ISO-10303-21;
HEADER;
FILE_DESCRIPTION ((''), '2;1');
FILE_NAME ('', '2016-10-27T13:14:43', (''), (''), 'Xbim File Processor version 3.2.0.0', 'Xbim version 3.2.0.0', '');
FILE_SCHEMA (('IFC4'));
ENDSEC;
DATA;
#1=IFCACTORROLE(.USERDEFINED.,'Original Constructor',$);
#2=IFCORGANIZATION($,'Bob The Builder',$,(#1),$);
#3=IFCDOCUMENTINFORMATION('1','SampleHouse.ifc',$,$,$,'XbimReferencedModel',$,$,#2,$,$,$,$,$,$,$,$);
#4=IFCACTORROLE(.USERDEFINED.,'Extensions Builder',$);
#5=IFCORGANIZATION($,'Tyna',$,(#4),$);
#6=IFCDOCUMENTINFORMATION('2','SampleHouseExtension.ifc',$,$,$,'XbimReferencedModel',$,$,#5,$,$,$,$,$,$,$,$);
ENDSEC;
END-ISO-10303-21;
xBIM 高级01 IFC多模型合并的更多相关文章
- xBIM 多个IFC文件合并
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...
- xBIM 基础15 IFC导出Excel报表
系列目录 [已更新最新开发文章,点击查看详细] IFC导出Excel空间报表文件 本篇将向您展示从IFC文件读取数据所需的一些概念.它使用IFC4接口,适用于IFC2x3和IFC4型号.要创建 ...
- xBIM 基础01 简介
系列目录 [已更新最新开发文章,点击查看详细] 一.xBIM 简介 BIM(Building Information Modelling)建筑信息模型,xBIM(eXtensible Buil ...
- Zookeeper系列五:Master选举、ZK高级特性:基本模型
一.Master选举 1. master选举原理: 有多个master,每次只能有一个master负责主要的工作,其他的master作为备份,同时对负责工作的master进行监听,一旦负责工作的mas ...
- Smart3D系列教程8之 《模型合并——相邻地区多次建模结果合并》
迄今为止,Wish3D已经出品推出了7篇系列教程,从倾斜摄影的原理方法.采集照片的技巧.Smart3D各模块的功能应用.小物件的照片重建.大区域的地形重建到DSM及正射影像的处理生产,立足于建模软件的 ...
- 牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并)
牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并) 题意:给你一颗树,要求找出简单路径上最大权值为1~n每个边权对应的最大异或和 题解: 根据异或的性质我们可以得到 \ ...
- xBIM 实战01 在浏览器中加载IFC模型文件
系列目录 [已更新最新开发文章,点击查看详细] 一.创建Web项目 打开VS,新建Web项目,选择 .NET Framework 4.5 选择一个空的项目 新建完成后,项目结构如下: 二.添 ...
- xBIM 高级02 插入复制功能
系列目录 [已更新最新开发文章,点击查看详细] IFC 模型中的合并和删除实体是一个非常重要的任务,因为 IFC 不是一个分层结构.它是一个复杂的结构,具有潜在的循环关系,是一个双向导航.在单 ...
- xBIM 高级03 更改日志创建
系列目录 [已更新最新开发文章,点击查看详细] 模型中发生的每一个变化都是事务的一部分,这是我们设计的核心.所有事务都是由 IModel 的实现创建的,并且从中被弱引用,因此当使用 using ...
随机推荐
- 【POJ 1741】 Tree
[题目链接] http://poj.org/problem?id=1741 [算法] 点分治 要求距离不超过k的点对个数,不妨将路径分成两类 : 1. 经过根节点 2. 不经过根节点 考虑第1类路径, ...
- Team Services 自动化部署项目
一.创建Team Services账号 直接使用vs的账号即可,TS上集成了Git.把项目导入到Git中. 使用前提:有自己的服务器,把项目自动化部署到服务器上. 二.创建一个新的定义 三.选择种类( ...
- Cookie是存储在客户端上的一小段数据
背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaSc ...
- ES6的基本语法
ES6 详细参考页面 简介 ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现.一般来说,这两个词是可以互换的. let命令 ES6新增了let命令,用来声明变 ...
- bootstrap-导航条
默认样式的导航条 导航条是在您的应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并且可开可关),且在视口(viewport)宽度增加时逐渐变为水平展开模式. 两端对齐的导航条导航链 ...
- TensorFlow初学
TensorFlow初学 基本概念 1.激活函数和成本函数 激活函数(activation function):一般是非线性函数,就是每个神经元通过这个函数将原有的来自其他神经的输入做一个非线性变化, ...
- Pyhton学习——Day22
#有缩进的代码表示局部作用域的代码#if_name_ =='_main_' # while True#先引入一个os模块import os,sys,time,json# print(os.path.d ...
- 注解实战aftersuite和beforesuite
package com.course.testng;import org.testng.annotations.*; public class BasicAnnotation { //最基本的注解,用 ...
- 😈 HTTP 学习笔记
- 使用 Xshell 连接 linux 系统
一.下载 Xshell 链接:https://pan.baidu.com/s/1htwqpzm 密码:zau7 二.安装 Xshell 无脑下一步就可以了 三.连接 linux 四.安装 Xftp h ...