Commit Graph

35 Commits

Author SHA1 Message Date
Thomas Krijnen cb6884b48e Encode characters outside the valid range for IFC SPF files and escape backslashes when writing IFC files 2012-09-09 11:55:53 +00:00
Thomas Krijnen 6f1e1c3bad NOTE: From now on Boost is required in order to compile IfcOpenShell
====================================================================

- Use boost::optional for optional IFC arguments
- Use boost::uuid for the creation of GlobalIds
- New IfcGeomObjects setting to force alignment of TopoDS_Face normal to CCW orientation
- Removed static Ifc class, renamed to non-static IfcFile. IfcFile renamed to IfcSpfStream
- Introduced Logger class
- Introduced EntityBuffer class that keeps track of all writable entities created to add them all in once to the IfcFile class
2012-08-11 13:24:08 +00:00
Thomas Krijnen 31daf8dd20 Forget information about plane angle units in previously processed files 2012-07-29 15:26:36 +00:00
Thomas Krijnen 4b2bbc63de Correctly redirect parse status update messages 2012-07-21 21:48:10 +00:00
Thomas Krijnen b4e42025fd Convert all .cpp and .h files to UTF-8 with BOM 2012-07-19 18:26:47 +00:00
Thomas Krijnen 6ced646413 IfcParse: get entities by type string 2012-07-19 00:14:01 +00:00
Thomas Krijnen 1d4a999381 Initial draft of writing and modifying IFC files 2012-07-18 19:32:58 +00:00
Thomas Krijnen 700cc772fb - Add an alternative method to process openings that is potentially faster. Use IfcGeomObjects::FASTER_BOOLEANS to enable.
- Begin working on verbosity levels
2012-06-07 14:38:21 +00:00
Thomas Krijnen 82289bf065 Correctly interpret integer tokens without a leading #. Bug report: https://sourceforge.net/projects/ifcopenshell/forums/forum/1782717/topic/5280357 2012-06-07 11:56:20 +00:00
Thomas Krijnen ca194ea423 Disable to paging functionality of the parser, IFC files are now always entirely read into memory. 2012-05-26 09:00:30 +00:00
Thomas Krijnen 5c71ae6f89 Catch one more IfcException 2012-03-31 09:54:15 +00:00
Thomas Krijnen a9bba39b9d Applied Patch #3509752 by mv2ax
Made the sewing of TopoDS_Shells into a IfcGeomObjects::Setting
Limit the maximum number of faces a shell to be sewed
2012-03-23 17:38:44 +00:00
Thomas Krijnen cdbafac676 Fix a bug in the order of applying the scaling of a IfcCartesianTransformationOperator3DnonUniform
Fix a bug in the formatting of IFC simple types
Provide a way of iterating over all entities in the IFC file
Added IFC test file by Ryan Schultz
Added another IFC test file from AutoCAD Architecture 2010
2012-03-16 15:21:52 +00:00
Thomas Krijnen 3bb008c89f - Switch to double precision
- Allow accessing entities by GlobalId
- Some more support for writing back IFC
- Prefix EXPRESS Enum values to avoid collisions
- Fix a bug in the SenseAgreement of Cartesian trimmed curves
- Use straight line segment in case point projection failed on trimmed curve
- Add epsilon to polylines and -loops point equality test
- Decompose a convex polygonal bounded halfspace into several unbounded halfspace and process only if they operate on a volume larger than some epsilon
- No longer fail connected facesets if a single face is invalid
- Updated IfcBlender for compatibility with Blender 2.62
- Added additional test files
2012-03-13 11:56:52 +00:00
Thomas Krijnen a9a5f8dc69 - Fix a crash if eof is unexpectedly encountered
- Warn if an entity with same ENTITY_NAME is encountered
2012-02-04 15:10:17 +00:00
Thomas Krijnen 9d88d75b3b Fixes #3452363 Fail to create meshes of parametric curves when no angular unit information is present in the IFC file 2011-12-07 14:07:22 +00:00
Thomas Krijnen 4dc0bdbe02 Guess units if none are present and convert back if needed 2011-11-02 12:52:35 +00:00
Thomas Krijnen ac155dc810 - Jave Native Interface library for use with the open source http://BIMserver.org
- IfcParse accepts char* as input
- IfcOpeningElements now return geometry
2011-10-27 16:13:29 +00:00
Thomas Krijnen bede68bef7 Properly clear log_stream 2011-10-24 19:26:55 +00:00
Thomas Krijnen 39dafce084 Catch errors while looking for IfcUnitAssignments 2011-10-18 08:12:39 +00:00
Thomas Krijnen 6dbf618360 - Throw and catch IfcExceptions while parsing
- Fix issues with left-handed IfcCartesianTransformationOperator3D [fixes #3405491 Issues with MappingTarget of IfcMappedItem]
2011-10-13 11:25:59 +00:00
Thomas Krijnen 34efb480d6 - Provide logging information to IfcBlender
- Disallow open curves for IfcPolygonalBoundedHalfSpace [fixes #3405490 Incorrectly rendered wall in FZK-Haus-EliteCAD.ifc]
- Disable tolerance on IfcCompositeCurve
- Try to convert IfcConnectedFaceSets to TopoDS_Solids regardless of whether they are open or closed shells, improves openings in IFC files exported by Revit
- Provide debugging information based on shape volume on IfcBooleanClippingResult and IfcOpeningElement
2011-10-12 16:43:29 +00:00
Thomas Krijnen f7abadc081 Ensure correct parsing and decoding of strings [#3395016] 2011-09-25 09:53:22 +00:00
Thomas Krijnen d02eeac132 Reduce unnecessary use of smart pointers
Speed up type checking by using std::maps and switch statements
Add compile flag to win/IfcGeom.vcproj
2011-09-03 13:58:59 +00:00
Thomas Krijnen 2561f94acb - Fixed a bug regarding IfcUnitAssignment
- Separate IFC parsing library and geometry libraries [#3395025]
- Added example for IfcParse usage without geometry or Open CASCADE functionality
- Cleanup of vcproj Open CASCADE dependencies
- Added function to query parent class type in IfcExpressParser.py
2011-08-24 12:21:07 +00:00
Thomas Krijnen 0b45066736 IfcParse: allow reading of IFC file from stdin
IfcServer: first commit of a stdin/stdout interface to IfcGeomObjects [undocumented for now]
BIMserver_plugin: first commit of IfcEngine plugin implementation for use with http://BIMserver.org [undocumented for now]
2011-08-20 09:08:56 +00:00
Thomas Krijnen 086d314a0c Fixed a crash when accessing the wrappedValue of a simple type in a SELECT 2011-08-16 18:26:02 +00:00
Thomas Krijnen c99633eb90 - Fixed CMake errors, added missing libraries
- Basic checks for valid file stream, seperated logging to stdout and stderr
- Use placement new to reconstruct MakeFace for non-planar face
2011-08-07 10:21:22 +00:00
Thomas Krijnen 9b36321861 Rewritten library to use code generated from IFC2X3_TC1.exp 2011-07-25 14:56:40 +00:00
Thomas Krijnen 75c26a34e1 Patch by Antti Risteli (andepoikka)
Compile problems on gcc ubuntu-4.4.3 + misc
2011-07-22 08:24:00 +00:00
Thomas Krijnen 8767f6e52a IfcBlender: updated to Blender 2.58 (Patch by Yorik van Havre)
IfcParse: lazy loading of entities
IfcGeom: caching of binary entities
2011-07-11 09:33:18 +00:00
Thomas Krijnen 1040a5ef6e - Parsing: make argument out of range errors catchable
- Geometry: support for IfcLine
- Geometry: more correct initialization of placements
2011-06-17 13:07:06 +00:00
Thomas Krijnen a7ed78c4a8 - Parsing: support for comments
- Geometry: support for some complex filleted profiles ( e.g. IfcIShapeProfileDef, IfcCShapeProfileDef )
2011-06-13 12:28:38 +00:00
Thomas Krijnen 93d7b8fba9 - Parsing: support for nested types
- Parsing: some support for units
- Geometry: IfcCircleProfileDef, IfcCircleHollowProfileDef, IfcCompositeCurve, IfcTrimmedCurve, IfcCircle, IfcEllipse
2011-06-13 07:23:09 +00:00
Thomas Krijnen a1016d82da Initial commit 2011-05-08 11:04:32 +00:00