diff --git a/.gitignore b/.gitignore
index eb5343346..3069368a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,9 +43,6 @@ IfcPlusPlus/src/ifcpp---/
IfcPlusPlus/src/ifcpp----/
examples/LoadFileExample/dump_mesh_debug.txt
examples/CreateIfcWallAndWriteFile/example.ifc
-examples/SimpleViewerExampleQt/SimpleViewerExampleQt.vcxproj.user
-examples/SimpleViewerExampleQt/SimpleViewerExampleQt.vcxproj.user
-.vs/IfcPlusPlus/v17/DocumentLayout.json
-examples/SimpleViewerExampleQt/.vs/SimpleViewerExampleQt/v17/DocumentLayout.json
-examples/LoadFileExample/.vs/LoadFileExample/v17/DocumentLayout.json
+*.vcxproj.user
+.vs/
examples/SimpleViewerExampleQt2/
diff --git a/IfcPlusPlus/IfcPlusPlus.vcxproj.user b/IfcPlusPlus/IfcPlusPlus.vcxproj.user
deleted file mode 100644
index 2c48fb598..000000000
--- a/IfcPlusPlus/IfcPlusPlus.vcxproj.user
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- true
-
-
\ No newline at end of file
diff --git a/examples/CreateIfcWallAndWriteFile/.vs/CreateIfcWallAndWriteFile/v17/DocumentLayout.json b/examples/CreateIfcWallAndWriteFile/.vs/CreateIfcWallAndWriteFile/v17/DocumentLayout.json
deleted file mode 100644
index 300ec9d12..000000000
--- a/examples/CreateIfcWallAndWriteFile/.vs/CreateIfcWallAndWriteFile/v17/DocumentLayout.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "Version": 1,
- "WorkspaceRootPath": "D:\\work\\ifcplusplus\\examples\\CreateIfcWallAndWriteFile\\",
- "Documents": [
- {
- "AbsoluteMoniker": "D:0:0:{ECE47E9B-9C3B-45AF-AA56-8DE83C3E5955}|CreateIfcWallAndWriteFile.vcxproj|D:\\work\\ifcplusplus\\examples\\CreateIfcWallAndWriteFile\\src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
- "RelativeMoniker": "D:0:0:{ECE47E9B-9C3B-45AF-AA56-8DE83C3E5955}|CreateIfcWallAndWriteFile.vcxproj|solutionrelative:src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{ECE47E9B-9C3B-45AF-AA56-8DE83C3E5955}|CreateIfcWallAndWriteFile.vcxproj|D:\\WORK\\IFCPLUSPLUS\\IFCPLUSPLUS\\SRC\\IFCPP\\IFC4X3\\INCLUDE\\IFCCARTESIANPOINT.H||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\work\\ifcplusplus\\examples\\CreateIfcWallAndWriteFile\\CMakeLists.txt||{8B382828-6202-11D1-8870-0000F87579D2}",
- "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:CMakeLists.txt||{8B382828-6202-11D1-8870-0000F87579D2}"
- }
- ],
- "DocumentGroupContainers": [
- {
- "Orientation": 0,
- "VerticalTabListWidth": 256,
- "DocumentGroups": [
- {
- "DockedWidth": 227,
- "SelectedChildIndex": 5,
- "Children": [
- {
- "$type": "Bookmark",
- "Name": "ST:17:0:{dcc4ea97-1c0c-482b-b205-e541c0df9728}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:11:0:{dcc4ea97-1c0c-482b-b205-e541c0df9728}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:8:0:{dcc4ea97-1c0c-482b-b205-e541c0df9728}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:4:0:{dcc4ea97-1c0c-482b-b205-e541c0df9728}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:1:0:{dcc4ea97-1c0c-482b-b205-e541c0df9728}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "main.cpp",
- "DocumentMoniker": "D:\\work\\ifcplusplus\\examples\\CreateIfcWallAndWriteFile\\src\\main.cpp",
- "RelativeDocumentMoniker": "src\\main.cpp",
- "ToolTip": "D:\\work\\ifcplusplus\\examples\\CreateIfcWallAndWriteFile\\src\\main.cpp",
- "RelativeToolTip": "src\\main.cpp",
- "ViewState": "AQIAAG8AAAAAAAAAAAAnwH0AAAArAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
- "WhenOpened": "2024-04-28T12:18:08.112Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "IfcCartesianPoint.h",
- "DocumentMoniker": "D:\\work\\ifcplusplus\\IfcPlusPlus\\src\\ifcpp\\IFC4X3\\include\\IfcCartesianPoint.h",
- "RelativeDocumentMoniker": "..\\..\\IfcPlusPlus\\src\\ifcpp\\IFC4X3\\include\\IfcCartesianPoint.h",
- "ToolTip": "D:\\work\\ifcplusplus\\IfcPlusPlus\\src\\ifcpp\\IFC4X3\\include\\IfcCartesianPoint.h",
- "RelativeToolTip": "..\\..\\IfcPlusPlus\\src\\ifcpp\\IFC4X3\\include\\IfcCartesianPoint.h",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAAAoAAAAXAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
- "WhenOpened": "2024-04-28T12:18:07.611Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "CMakeLists.txt",
- "DocumentMoniker": "D:\\work\\ifcplusplus\\examples\\CreateIfcWallAndWriteFile\\CMakeLists.txt",
- "RelativeDocumentMoniker": "CMakeLists.txt",
- "ToolTip": "D:\\work\\ifcplusplus\\examples\\CreateIfcWallAndWriteFile\\CMakeLists.txt",
- "RelativeToolTip": "CMakeLists.txt",
- "ViewState": "AQIAAAAAAAAAAAAAAAAAABIAAAAmAAAA",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|",
- "WhenOpened": "2024-04-28T12:17:52.913Z",
- "EditorCaption": ""
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIf.C16D1427.Up2Date b/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIf.C16D1427.Up2Date
deleted file mode 100644
index e69de29bb..000000000
diff --git a/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIfcWallAndWriteFile.exe.recipe b/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIfcWallAndWriteFile.exe.recipe
deleted file mode 100644
index 32ceb6814..000000000
--- a/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIfcWallAndWriteFile.exe.recipe
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\CreateIfcWallAndWriteFile.exe
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIfcWallAndWriteFile.vcxproj.FileListAbsolute.txt b/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIfcWallAndWriteFile.vcxproj.FileListAbsolute.txt
deleted file mode 100644
index e1d72d885..000000000
--- a/examples/CreateIfcWallAndWriteFile/CreateIf.ECE47E9B/x64/Debug/CreateIfcWallAndWriteFile.vcxproj.FileListAbsolute.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\concrt140d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\msvcp140d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\msvcp140d_atomic_wait.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\msvcp140d_codecvt_ids.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\msvcp140_1d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\msvcp140_2d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\vccorlib140d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\vcruntime140d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\vcruntime140_1d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\vcruntime140_threadsd.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\vcamp140d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\vcomp140d.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\libomp140.x86_64.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\libomp140d.x86_64.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\x64\Debug\ucrtbased.dll
-D:\work\ifcplusplus\examples\CreateIfcWallAndWriteFile\CreateIf.ECE47E9B\x64\Debug\CreateIf.C16D1427.Up2Date
diff --git a/examples/CreateIfcWallAndWriteFile/CreateIfcWallAndWriteFile.vcxproj.user b/examples/CreateIfcWallAndWriteFile/CreateIfcWallAndWriteFile.vcxproj.user
deleted file mode 100644
index 5f435693c..000000000
--- a/examples/CreateIfcWallAndWriteFile/CreateIfcWallAndWriteFile.vcxproj.user
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- true
-
-
- PATH=..\..\IfcPlusPlus\bin%3b$(PATH)
- WindowsLocalDebugger
-
-
- PATH=..\..\IfcPlusPlus\bin%3b$(PATH)
- WindowsLocalDebugger
-
-
\ No newline at end of file
diff --git a/examples/LoadFileExample/LoadFileExample.vcxproj.user b/examples/LoadFileExample/LoadFileExample.vcxproj.user
deleted file mode 100644
index 966b4ffb6..000000000
--- a/examples/LoadFileExample/LoadFileExample.vcxproj.user
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- true
-
-
\ No newline at end of file
diff --git a/examples/SimpleViewerExampleQt/SimpleViewerExampleQt.vcxproj.user b/examples/SimpleViewerExampleQt/SimpleViewerExampleQt.vcxproj.user
deleted file mode 100644
index c9d7d8c11..000000000
--- a/examples/SimpleViewerExampleQt/SimpleViewerExampleQt.vcxproj.user
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- true
-
-
- WindowsLocalDebugger
- PATH=$(QTDIR)\bin%3b$(OSG_DIR)\build\bin%3b$(QTDIR)\bin%3b$(QTDIR)\plugins%3b$(QTDIR)%3b$(QTDIR)\plugins\platforms%3b$(QTDIR)\bin%3b$(QTDIR)%3b$(QTDIR)\bin%3b..\..\IfcPlusPlus\bin%3b$(PATH)
-
-
- WindowsLocalDebugger
- PATH=$(QTDIR)\bin%3b$(IFCPP_DIR)\IfcPlusPlus\bin%3b$(QTDIR)\bin%3b$(OSG_DIR)\build\bin%3b$(PATH)
-
-
- 2024-04-30T05:42:20.7568924Z
-
-
-
-
- 2024-04-30T05:42:20.8565894Z
-
-
-
-
\ No newline at end of file
diff --git a/optimbuild.patch b/optimbuild.patch
deleted file mode 100644
index 74a31e366..000000000
--- a/optimbuild.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-diff --git a/IfcPlusPlus/CMakeLists.txt b/IfcPlusPlus/CMakeLists.txt
-index a1d58071..77c35e73 100644
---- a/IfcPlusPlus/CMakeLists.txt
-+++ b/IfcPlusPlus/CMakeLists.txt
-@@ -29,6 +29,7 @@ if(UNIX)
- set(IFCPP_SOURCE_FILES
- src/ifcpp/IFC4/EntityFactory.cpp
- src/ifcpp/IFC4/TypeFactory.cpp
-+ src/ifcpp/model/BuildingGuid.cpp
- src/ifcpp/model/BuildingModel.cpp
- src/ifcpp/model/UnitConverter.cpp
- src/ifcpp/reader/AbstractReader.cpp
-@@ -44,6 +45,7 @@ else(UNIX)
- set(IFCPP_SOURCE_FILES
- src/ifcpp/IFC4/EntityFactory.cpp
- src/ifcpp/IFC4/TypeFactory.cpp
-+ src/ifcpp/model/BuildingGuid.cpp
- src/ifcpp/model/BuildingModel.cpp
- src/ifcpp/model/UnitConverter.cpp
- src/ifcpp/reader/AbstractReader.cpp
-diff --git a/IfcPlusPlus/src/ifcpp/reader/ReaderSTEP.cpp b/IfcPlusPlus/src/ifcpp/reader/ReaderSTEP.cpp
-index 36de9829..307d3ddd 100644
---- a/IfcPlusPlus/src/ifcpp/reader/ReaderSTEP.cpp
-+++ b/IfcPlusPlus/src/ifcpp/reader/ReaderSTEP.cpp
-@@ -108,17 +108,17 @@ void ReaderSTEP::loadModelFromFile( const std::wstring& filePath, shared_ptr
--#ifdef WIN32
--#include
--#endif
--
- #include
-
- #include "ifcpp/model/BuildingException.h"
-diff --git a/IfcPlusPlus/src/ifcpp/reader/ReaderUtil.h b/IfcPlusPlus/src/ifcpp/reader/ReaderUtil.h
-index 95a26b1f..da21dd3d 100644
---- a/IfcPlusPlus/src/ifcpp/reader/ReaderUtil.h
-+++ b/IfcPlusPlus/src/ifcpp/reader/ReaderUtil.h
-@@ -27,8 +27,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OU
- #include
- #include
- #include
--#include
--#include
- #include "ifcpp/model/BasicTypes.h"
- #include "ifcpp/model/BuildingException.h"
- #include "ifcpp/model/BuildingObject.h"
-@@ -86,21 +84,7 @@ inline void readIntegerValue( const std::wstring& str, int& int_value )
- int_value = std::stoi( str );
- }
- }
--inline void readIntegerValue( const std::wstring& str, boost::optional& int_value )
--{
-- if( str.compare( L"$" ) == 0 )
-- {
-- int_value = boost::none;
-- }
-- else if( str.compare( L"*" ) == 0 )
-- {
-- int_value = boost::none;
-- }
-- else
-- {
-- int_value = std::stoi( str );
-- }
--}
-+
- inline void readRealValue( const std::wstring& str, double& real_value )
- {
- if( str.compare( L"$" ) == 0 )
-@@ -116,50 +100,35 @@ inline void readRealValue( const std::wstring& str, double& real_value )
- real_value = std::stod( str );
- }
- }
--inline void readRealValue( const std::wstring& str, boost::optional& real_value )
--{
-- if( str.compare( L"$" ) == 0 )
-- {
-- real_value = boost::none;
-- }
-- else if( str.compare( L"*" ) == 0 )
-- {
-- real_value = boost::none;
-- }
-- else
-- {
-- real_value = std::stod( str );
-- }
--}
-
- void copyToEndOfStepString( char*& stream_pos, char*& stream_pos_source );
- IFCQUERY_EXPORT void decodeArgumentStrings( std::vector& entity_arguments, std::vector& args_out );
-
- inline void readBool( const std::wstring& attribute_value, bool& target )
- {
-- if( std_iequal( attribute_value, L".F." ) )
-+ if( std_iequal( attribute_value, L".F." ) )
- {
- target = false;
- }
-- else if( std_iequal( attribute_value, L".T." ) )
-+ else if( std_iequal( attribute_value, L".T." ) )
- {
-- target = true;;
-+ target = true;
- }
- }
-
- inline void readLogical( const std::wstring& attribute_value, LogicalEnum& target )
- {
-- if( std_iequal(attribute_value, L".F." ) )
-+ if( std_iequal(attribute_value, L".F." ) )
- {
- target = LOGICAL_FALSE;
- }
-- else if( std_iequal( attribute_value, L".T." ) )
-+ else if( std_iequal( attribute_value, L".T." ) )
- {
- target = LOGICAL_TRUE;
- }
-- else if( std_iequal( attribute_value, L".U." ) )
-+ else if( std_iequal( attribute_value, L".U." ) )
- {
-- target = LOGICAL_UNKNOWN;;
-+ target = LOGICAL_UNKNOWN;
- }
- }
-
-diff --git a/external/Carve/src/lib/mesh.cpp b/external/Carve/src/lib/mesh.cpp
-index ecd3d18e..5aecd0ec 100644
---- a/external/Carve/src/lib/mesh.cpp
-+++ b/external/Carve/src/lib/mesh.cpp
-@@ -33,10 +33,6 @@
- #include
- #include
-
--#if defined(_MSC_VER)
--inline int random() { return rand(); }
--#endif
--
- namespace {
- inline double CALC_X(const carve::geom::plane<3>& p, double y, double z) {
- return -(p.d + p.N.y * y + p.N.z * z) / p.N.x;
-diff --git a/external/Carve/src/lib/polyhedron.cpp b/external/Carve/src/lib/polyhedron.cpp
-index aab41b41..b9cc130d 100644
---- a/external/Carve/src/lib/polyhedron.cpp
-+++ b/external/Carve/src/lib/polyhedron.cpp
-@@ -44,10 +44,6 @@
- #include
- #include
-
--#if defined(_MSC_VER)
--inline int random() { return rand(); }
--#endif
--
- namespace {
- bool emb_test(carve::poly::Polyhedron* poly,
- std::map >& embedding, carve::geom3d::Vector v,