系列目錄 【已更新最新開發文章,點選檢視詳細】
一、建立項目
Visual Studio 建立項目、項目建立完成後 Nuget ,項目添加 Xbim.Essentials,那麼如果項目需要幾何引擎還需要內建 Xbim.Geometry。xBIM背後有多年的發展,這兩個包都很成熟,非常穩定。

由于選擇了Xbim.Essentials 5.0.213版本,其依賴性較多
安裝該dll後,引用了很多dll
二、建立憑證,打開檔案
首先,您應該建立憑據,用于 在IFC世界中保留所有實體的所有者曆史記錄。
xBIM中所有對IModel接口的所有實作都是可釋放的(IDisposable),是以總是應該在using語句中使用它們,如下所示:
IfcStore.Open()足夠智能識别檔案格式( .ifc,.ifczip,*。xml)和IFC版本(IFC2x3,IFC4)。使用此靜态函數,它還決定是否應使用記憶體模型或Esent資料庫來存儲資料。您可以使用其他參數來明确說出您想要的内容。您還可以傳入将報告進度的委托。
三、建立檔案
如果要從頭開始建立新模型,也可以使用以下功能。在這種情況下,您必須指定應該使用哪個架構和存儲,因為我們不知道您需要什麼,并且模型需要從一開始就知道這兩件事。還要確定為您建立的模型使用正确的模式名稱空間,因為您無法在單個模型中混合來自多個模式的資料。
IfcSchemaVersion.Ifc4 是枚舉,代表IFC的版本,目前最新的版本是IFC 4
如果要在模型中建立或修改任何内容,則必須使用事務。這些也應該在using語句中使用,是以它們具有适當的範圍,以便在發生某些情況時進行最終復原操作。您必須明确送出事務以保留更改。事務不能嵌套,是以當時總是隻有一個事務。
所有與實體相關的操作都可通過IModel.Instances建立。這是您在模型中擷取,更改和建立新實體的通路入口。要建立任何新對象,請使用此模闆化函數。
【您始終必須指定要建立的非抽象類型。這是在xBIM中建構的,如果不這樣,就會出現編譯時錯誤。每個模型都是特定于模式的,是以它是IFC2x3或IFC4或其他特定模式。IfcStore使它更容易,因為它可以打開兩個IFC版本,并會告訴你它是什麼,但是當你想要建立資料時,請確定你不要搞砸你的using陳述。如果您嘗試使用初始化為IFC2x3的模型建立IFC4實體,則會抛出運作時異常。】
除了使用此功能之外,無法以任何其他方式建立新實體。您将在上面的代碼中看到,此函數使用可選的類型化對象初始值設定項來設定對象的值。沒有必要使用它們,但我個人喜歡它,因為我可以看到結果實體的結構。要查找所需的實體,您将使用以下功能:除了使用此功能之外,無法以任何其他方式建立新實體。您将在上面的代碼中看到,此函數使用可選的類型化對象初始值設定項來設定對象的值。沒有必要使用它們,但我個人喜歡它,因為我可以看到結果實體的結構。要查找所需的實體,您将使用以下功能:
您可以看到所有這些函數都是模闆化的,是以它們使用對象的類型作為第一級過濾器。如果您知道所需的類型,則應始終指定它以提高性能。對于所有搜尋查詢,您還可以使用接口來檢索實體。我們在IFC2x3實體上實作了IFC4接口,這意味着您可以使用單個代碼庫查詢IFC2x3和IFC4 。
使用所有這些基本的東西,您的第一個簡單代碼可能如下所示。因為它使用Xbim.Ifc4.Interfaces,此代碼将同時适用于IFC2x3和IFC4。
成在管理,敗在經驗;嬴在選擇,輸在不學! 貴在堅持!
·
個人作品
1、BIMFace.Community.SDK.NET
開源位址:https://gitee.com/NAlps/BIMFace.SDK·
2、ZCN.NET.Common
開源位址:https://gitee.com/NAlps/zcn.net.common
技術棧
1、Visual Studio、.C#/.NET、.NET Core、MVC、Web API、RESTful API、gRPC、SignalR、Python
2、jQuery、Vue.js、Bootstrap
3、資料庫:SQLServer、MySQL、PostgreSQL、Oracle、SQLite、Redis、MongoDB、ElasticSearch、TiDB、達夢DM、人大金倉、 神通、南大通用 GBase、華為 GaussDB 、騰訊 TDSQL 、阿裡 PolarDB、螞蟻金服 OceanBase、東軟 OpenBASE、浪潮雲溪資料庫 ZNBase
4、ORM:Dapper、Entity Framework、FreeSql、SqlSugar、分庫分表、讀寫分離
5、架構:領域驅動設計 DDD、ABP
6、環境:跨平台、Windows、Linux(CentOS、麒麟、統信UOS、深度Linux)、maxOS、IIS、Nginx、Apach
7、移動App:Android、IOS、HarmonyOS、微信、小程式、快應用、Xamarin、uni-app、MUI、Flutter、Framework7、Cordova、Ionic、React Native、Taro、NutUI、Smobiler
雲原生、微服務、Docker、CI/CD、DevOps、K8S;
Dapr、RabbitMQ、Kafka、分布式、大資料、高并發、負載均衡、中間件、RPC、ELK;
.NET + Docker + jenkins + Github + Harbor + K8S;·
作者:張傳甯 微軟MCP、系統架構設計師、系統內建項目管理工程師、科技部創新工程師。
專注于微軟.NET技術(.NET Core、Web、MVC、WinForm、WPF)、通用權限管理系統、工作流引擎、自動化項目(代碼)生成器、SOA 、DDD、 雲原生(Docker、微服務、DevOps、CI/CD);PDF、CAD、BIM 審圖等研究與應用。
多次參與電子政務、圖書教育、生産制造等企業級大型項目研發與管理工作。
熟悉中小企業軟體開發過程:需求分析、架構設計、編碼測試、實施部署、項目管理。通過技術與管理幫助中小企業快速化實作網際網路技術全流程解決方案。
本文版權歸作者·有,歡迎轉載,但未經作者同意必須保留此段聲明·,否則保留追究法律責任的權利。·