From 86db690bb31944c224933750cd5da2e256498db8 Mon Sep 17 00:00:00 2001 From: ifcquery Date: Thu, 18 Jan 2024 14:37:10 +0700 Subject: [PATCH] Update README.md --- README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 99fcab989..bb651c27a 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,57 @@ ABOUT IFC++ ============= -## Summary -IFC++ is an open source IFC implementation for C++. It was originally developed at the Bauhaus University Weimar. +IFC++ is an open source IFC implementation for C++. +It is very fast, but it has not the lowest possible memory footprint, because it has a complete class model. + + + +Benefits of the complete class model are (among others): +- you can easily instantiate objects and access member variables, for example: +```cpp + shared_ptr ifcPoint = make_shared(); + shared_ptr polyLoop = make_shared() + polyLoop->m_Polygon.push_back(ifcPoint); +``` + +- you can navigate the model easily by accessing member variables directly, including inverse attributes: +```cpp +shared_ptr currentBuildingStorey = ...; +for (auto it : currentBuildingStorey->m_IsDecomposedBy_inverse) +{ + shared_ptr relAggregates(it); + + for (auto it2 : relAggregates->m_RelatedObjects) + { + shared_ptr child_obj = (it2); + shared_ptr wall = dynamic_pointer_cast(child_obj); + if(wall) + { + // do something with wall + } + } + } +``` + Inverse attribute pointers are automatically generated by IFC++ for all object references in the model. + +- casting is possible for all types: + ```cpp + shared_ptr pset = dynamic_pointer_cast(relatingPropertyDefinition); + ``` + +- Professional support is available for bug fixing or custom implementations on www.ifcquery.com. + + + + + ## License The project is published under the MIT license, which means that you can use it for any purpose, personal or commercial. There is no obligation to publish your source code. + ## Details and download of executable -Additional information as well as download links to the viewer application is on this project website: http://www.ifcquery.com +Open source example application for Qt here available: https://github.com/ifcquery/ifcplusplus/releases + ## How to build the library and example application on Windows and Linux https://github.com/ifcquery/ifcplusplus/wiki/Build-instructions