Commit Graph

27 Commits

Author SHA1 Message Date
blocovin 6e2038c1f5 Use model-offset in IfcGeom::Kernel and add model-rotation 2020-06-14 12:16:20 +02:00
Thomas Krijnen afb05f42db Merge branch 'master' into v0.6.0 2020-06-07 20:23:00 +02:00
Thomas Krijnen 86d7205760 layerset-first setting 2020-06-07 19:46:10 +02:00
Thomas Krijnen 72c96905b9 Option to validate created geometries based on explicit quantities 2018-12-12 12:33:09 +01:00
Anders Granskogen Bjørnstad 8a316e45ed IfcConvert: Add --building-local-placement argument
Similar to --site-local-placement. Motivated by dealing with at least
two examples where IFC files for the same construction site have
inconsistent ObjectPlacement hierarchy:

- MEP models exported from MagiCAD for Revit:
   ObjectPlacement.PlacementRelTo of IfcBuilding is empty
- Regular construction models exported from Revit:
   ObjectPlacement.PlacementRelTo of IfcBuilding is pointing to
   IfcSite's placement
2018-02-19 16:17:12 +01:00
Anders Granskogen Bjørnstad 475b8554a8 Site local placement (#240)
* ifcgeom: Add placement_rel_to for convert()

Change geometry conversion in `convert()` for `ObjectPlacement` such
that we can stop the `PlacementRelTo()` recursion when we hit an
`ObjectPlacement` that places a certain type, e.g. a `IfcSite'.

Introduce a new IteratorSetting `SITE_LOCAL_PLACEMENT` which will be
exposed in `IfcConvert`.

* IfcConvert: Add --site-local-placement

Some IFC authoring tools may put the global origo at a large distance
away from the actual building geometry. Also, the global X- and Y-axes
may be at arbitrary angles with natural building axes. Using
--center-model or --model-offset may place the converted geometry closer
to origo, but will still use the global IFC definition of axis
directions. Also, in a scenario with multiple IFC files for one
construction site, using --center-model on each of them would not
generate consistent geometry across OBJ or DAE files.

Solve this by introducing --site-local-placement which will disregard
the ObjectPlacement at the IfcSite level.
2017-08-19 17:21:10 +02:00
Thomas Krijnen 5e0da9725a ifcparse refactoring (#190)
Unify attribute containers, provide latebound attribute access on IfcBaseEntity, more basic tests on Travis
2017-06-05 17:26:58 +02:00
Balleux Benjamin 95acd4c517 Clean : remove debug lines
Find the floor of an element in the IfcGeomIterator class
2017-04-21 15:49:34 +02:00
Stinkfist0 678d422ec8 Fix errors in rebase merge. 2017-03-04 13:54:19 +01:00
Stinkfist0 d8a11dd096 Refactoring and cleaning up geom iterator filtering. 2017-03-04 13:54:19 +01:00
Stinkfist0 2d58a1bc7c Separate serialization-specific settings from IteratorSettings into its own class, SerializerSettings. 2017-01-14 20:13:46 +01:00
Ali Kämäräinen 714a365942 IfcConvert/IfcGeom --traverse option (#159)
geometry filtering option for including/excluding decomposition and containment of filtered entities.
Usage example: IfcConvert Duplex_A_20110907.ifc Level1.dae --include --traverse --names "Level 1"
2016-11-13 13:44:38 +01:00
Stinkfist0 fb98275f50 Typo fix. 2016-08-06 19:08:13 +03:00
Stinkfist0 6bcabfd567 Dllimport/export for IfcGeom. Closes #77 2016-07-11 22:37:50 +03:00
Thomas Krijnen 39e26dff46 Merge branch 'master' into layerset_slicing
# Conflicts:
#	src/ifcconvert/IfcConvert.cpp
#	src/ifcgeom/IfcGeom.h
#	src/ifcgeom/IfcGeomFunctions.cpp
#	src/ifcgeom/IfcGeomIteratorSettings.h
2016-05-02 15:13:30 +02:00
Stinkfist0 4953b35849 --generate-uvs, applicable for DAE only currently 2016-03-10 16:46:20 +02:00
Stinkfist0 83e5096570 Support for --deflection-tolerance 2016-03-10 16:09:39 +02:00
Stinkfist0 5008c3503d --center-model for DAE output, fixes #8 (TODO: implement also for OBJ) 2016-03-10 14:39:42 +02:00
Stinkfist0 ce38854cff Add --no-normals 2016-03-10 13:29:22 +02:00
Stinkfist0 24e2aece0b Rename --use-guids and --use-names to --use-element-guids and --use-element-names. Add explicit --use-material-names for controlling material naming. 2016-03-10 12:01:04 +02:00
Stinkfist0 43f5d446ec Implement --use-names and --use-guids for DAE, OBJ, and SVG output. 2016-03-10 11:35:32 +02:00
Stinkfist0 0da0e63687 Begin to implement IfcConvert enhancements discussed in #20. Remove C++-specific getters and setters and use the same set() and get() functions in in both C++ and Python. Enhance output of IfcConvert, especially in error situations (spamming a hundred lines of options always hides the original error message), utilize Boost's foreach macro to provide cleaner iteration code. 2016-03-07 22:37:36 +02:00
aothms c9db70c7c3 Initial implementation of layerset slicing 2015-10-07 17:33:30 +02:00
Thomas Krijnen 40a60386c8 Brand new implementation of IfcFace(Surface) 2015-05-20 08:55:02 +00:00
Thomas Krijnen c97cf661a2 1. Also emit Plan and Axis shape representations and IfcTopologyRepresentations if requested. 2. Add serialization for curves. 3. In Python add option to specify representation for which to generate shape. 2015-04-22 09:15:48 +00:00
Thomas Krijnen 0552c336df Correct omitted initialization list item from IfcGeom::IteratorSettings 2015-02-20 17:16:01 +00:00
Thomas Krijnen 2a403e240d *** See: https://sourceforge.net/p/ifcopenshell/discussion/1782718/thread/6bd0f843/ ***
Massive refactor of the IfcGeomObjects module, which is now the IfcGeom::Iterator class.
2014-12-19 12:14:36 +00:00