New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[For v0.19] Fix ifc #1938

Open
wants to merge 45 commits into
base: master
from

Conversation

Projects
None yet
3 participants
@Moult
Copy link
Contributor

Moult commented Jan 29, 2019

Creating this PR to track this issue a bit better.

Thank you for creating a pull request to contribute to FreeCAD! To ease integration, please confirm the following:

  • Branch rebased on latest master git pull --rebase upstream master
  • Unit tests confirmed to pass by running ./bin/FreeCAD --run-test 0
  • Commit message is well-written
  • Commit message includes issue #<id> or fixes #<id> where <id> is the associated MantisBT issue id if one exists

And please remember to update the Wiki with the features added or changed once this PR is merged.


Moult added some commits Jan 23, 2019

Refactor IfcAttributes to be called IfcData.
 * IfcAttributes as a name is misleading, as currently it stores GUID (yes, an attribute), but also stores IFC export settings (i.e. not an IFC "attribute", per say)
 * The previous description of "Custom IFC properties ..." is also misleading, as properties might suggest it stores property sets, which it doesn't (IfcProperties does, currently)
 * IfcData is more generic and allows us to store more data in it in the future
Add support for storing all IFC attributes as text attributes for now…
…. Data is stored in IfcData as a JSON serialised string.
Bump ifc_products.json to have uppercase enums
Enums should be uppercase which matches the IFC docs. This also prevents the need to do a upper() when using these values with IfcOpenShell.
Load JSON based on ifcopenshell schema version
This allows us to support more than one ifc version. The 2X3 jsons cannot be autogenerated and have been manually written based on the hardcoded values in the old codebase.
Refactor all IFC functions into ArchIFC and preload attributes with e…
…xpressions

 * The import code will manually set 2x3 attributes
 * The import code will rely on "smart" attributes for ifc 4
 * ArchSite and ArchBuildingPart now support IFC
 * IfcSite lat/lon is left alone until I better understand how coords work
Refactor IfcAttributes to be called IfcData.
 * IfcAttributes as a name is misleading, as currently it stores GUID (yes, an attribute), but also stores IFC export settings (i.e. not an IFC "attribute", per say)
 * The previous description of "Custom IFC properties ..." is also misleading, as properties might suggest it stores property sets, which it doesn't (IfcProperties does, currently)
 * IfcData is more generic and allows us to store more data in it in the future
Add support for storing all IFC attributes as text attributes for now…
…. Data is stored in IfcData as a JSON serialised string.

Moult added some commits Jan 26, 2019

Bump ifc_products.json to have uppercase enums
Enums should be uppercase which matches the IFC docs. This also prevents the need to do a upper() when using these values with IfcOpenShell.
Load JSON based on ifcopenshell schema version
This allows us to support more than one ifc version. The 2X3 jsons cannot be autogenerated and have been manually written based on the hardcoded values in the old codebase.
Refactor all IFC functions into ArchIFC and preload attributes with e…
…xpressions

 * The import code will manually set 2x3 attributes
 * The import code will rely on "smart" attributes for ifc 4
 * ArchSite and ArchBuildingPart now support IFC
 * IfcSite lat/lon is left alone until I better understand how coords work
@berndhahnebach

This comment has been minimized.

Copy link
Contributor

berndhahnebach commented Jan 29, 2019

forum topic https://forum.freecadweb.org/viewtopic.php?f=39&t=33631

it should be marked with [For v0.19]

@Moult

This comment has been minimized.

Copy link
Contributor Author

Moult commented Jan 30, 2019

Thanks @berndhahnebach - I have updated the forum thread title.

@Moult Moult changed the title Fix ifc [For v0.19] Fix ifc Jan 30, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment