Skip to content
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

Arch becomes BIM #13783

Merged
merged 16 commits into from May 16, 2024
Merged

Arch becomes BIM #13783

merged 16 commits into from May 16, 2024

Conversation

yorikvanhavre
Copy link
Member

This involves:

  • Merging the BIM workbench which consists mostly of GUI commands
  • Merging the NativeIFC which is a standalone module
  • Moved importers to a subdir
  • Removed GUI commands from the Arch* files and put them together with the BIM commands
  • Moved all the make*() functions from the Arch* files and added them to Arch.py
  • Renaming folders, workbench name and CMake targets from Arch to BIM

For the user not much will change (they will have the BIM WB menu and toolbars instead of Arch, which has basically more tools), for developers one should just know Arch is now BIM.

@yorikvanhavre yorikvanhavre marked this pull request as draft May 2, 2024 11:10
@github-actions github-actions bot added the WB BIM Related to the BIM/Arch Workbench label May 2, 2024
@maxwxyz
Copy link
Collaborator

maxwxyz commented May 2, 2024

will the commands and icons have the arch prefix or will they be converted to BIM like it was done with CAM? Or will there be a mix between arch an bim commands?

@yorikvanhavre
Copy link
Member Author

up to now i tried to be as less disruptive as possible, in case other addons are using arch stuff, and for translations to not break. i was thinking to do all the rest (get rid of the arch name entirely) later on...

@furgo16
Copy link
Contributor

furgo16 commented May 2, 2024

This is excellent, looking forward to this!

  • What is the plan with the documentation: will the Arch_* wiki pages stay as they are and the new BIM_* namespace created for the new tools?
  • Is there any way contributors can help with the transition to the "one and only" BIM workbench?

@yorikvanhavre
Copy link
Member Author

for the documentation i propose to keep everything as is for now, since the command names didn't change, and we do thât refined transition at a later moment, with more time to adjust translations.

for now, as soon as this is merged, i'd say the most import-nt would be to update the BIM workbench page, and make sure all the tools are documented

@maxwxyz
Copy link
Collaborator

maxwxyz commented May 2, 2024

are there any other icons that need refinement or changes (BIM, Arch, Draft)?

@yorikvanhavre
Copy link
Member Author

well yes actually 😇 not right now, but the next point on my list is to have an icon for each type of https://standards.buildingsmart.org/IFC/RELEASE/IFC4_1/FINAL/HTML/schema/ifcproductextension/lexical/ifcbuildingelement.htm there are several that have no icon yet, (plate, pile, etc...)

@marcuspollio
Copy link
Contributor

marcuspollio commented May 2, 2024

Hi @yorikvanhavre ,

Wow, nice ! That's a big PR =D

Congrats for reaching this point ! Hopefully, it will be easier to have in one place only all architecture/construction related stuff, for users and developers as well ;D

In this PR, I would suggest :

  • Remove all "exp/experimental" tools and features (walls, join, extend, opening, door, window, arch view and offset). There are too many bugs and inconsistency. They are poorly exposed (only in the Toolbars) and not integrated with the whole workbench. It looks like their IFC support does not match the one of the non-experimental equivalents. Also, @carlopav does not look to be active anymore (maybe he can deny or confirm), making maintenance heavier.

  • Also remove the (generic) Box tool. There's better way for that and there's a report of a deprecated function (use "DraftGeomUtils.placement_from_points" instead)

In later steps (can be done by other contributors as well) :

  • Make the naming consistent and standardized, in particular the whole floor, level, storey confusion so it is compliant with IFC. Most importantly the user-facing stuff, ideally also a refactor of the internal code (if it's breaking compatibility, better now than later).

  • Rearrange a bit the Toolbars, menus, Task panels and "managers" in a more streamlined and less overwhelming way (construction sequence and standards). But this can be improved gradually anyways.

[...] an icon for each type

I can help with that. I did some Flat-Style icons last year with more BIM objects, I can adapt them for the current icon style. Let me know which one you would need first (apart from plate and pile).

Icons-flat

I will give this PR a test when the building checks are all OK.

@carlopav
Copy link
Contributor

carlopav commented May 3, 2024

  • Remove all "exp/experimental" tools and features (walls, join, extend, opening, door, window, arch view and offset). There are too many bugs and inconsistency. They are poorly exposed (only in the Toolbars) and not integrated with the whole workbench. It looks like their IFC support does not match the one of the non-experimental equivalents. Also, @carlopav does not look to be active anymore (maybe he can deny or confirm), making maintenance heavier.

Absolutely agree with @marcuspollio. The experimental tools were a funny experiment, but lacked a general vision of the problem, and I think It's pointless to mantain them.

@yorikvanhavre
Copy link
Member Author

yorikvanhavre commented May 3, 2024

The experimental tools are already out. They are still in the BIM workbench repo though, and they will stay there as I don't plan to remove that repo ever :) @carlopav you might want to back up that code for yourself, who knows there is more to get done with it some day...

The box tool we could remove indeed, but this PR is mostly about transferring the BIM WB "as is" , I think tool removals should be done later, so they can be easily undone if needed.

Same for the Floor/Level/Storey. Indeed, maybe the best name here is then "Storey"?

About general UI layout, I'd be more than happy with a little help ;) Please propose! But yes indeed that's probably matter for later

About icons, this is the whole list we need. I marked those where we already have an icon:

  • IfcBuildingElementProxy
  • IfcCovering
  • IfcBeam
  • IfcColumn
  • IfcCurtainWall
  • IfcDoor
  • IfcMember
  • IfcRailing
  • IfcRamp
  • IfcRampFlight
  • IfcWall
  • IfcSlab
  • IfcStairFlight
  • IfcWindow
  • IfcStair
  • IfcRoof
  • IfcPile
  • IfcFooting
  • IfcBuildingElementComponent
  • IfcPlate

@maxwxyz
Copy link
Collaborator

maxwxyz commented May 3, 2024

@marcuspollio are you already working on it or should we split them? Should the icons in the BIM WB be yellow or white? It shouldn't be mixed.

@yorikvanhavre
Copy link
Member Author

these are for the tree view, i would say they should be white..

@furgo16
Copy link
Contributor

furgo16 commented May 3, 2024

If native IFC is going to become an integral part of BIM in FreeCAD, is it worth shipping IfcOpenShell with the FreeCAD builds as well, to make life easier for users?

@marcuspollio
Copy link
Contributor

The experimental tools are already out.

Sorry, my bad ! I haven't compiled it yet =D

Sure, this PR is big enough, all these further improvements can come later.

I'd be more than happy with a little help ;)

I've asked @maxwxyz if he can create a new BIM Label et Project so we can add issues to that (such as Tools, Icons, UI, etc.) Do you mind ?

@yorikvanhavre
Copy link
Member Author

I've asked @maxwxyz if he can create a new BIM Label et Project so we can add issues to that (such as Tools, Icons, UI, etc.) Do you mind ?

Of course not! Glad with any help :)

@maxwxyz
Copy link
Collaborator

maxwxyz commented May 6, 2024

We can use the arch label. I'll rename it after the merge. I cannot setup a project, this has to be done by an owner.

@yorikvanhavre
Copy link
Member Author

There is still a problem with this PR... After compiling it, the Arch_rc.py resource file fails to load with a QResource: error decompressing zlib content (-3) error when starting FreeCAD, and the BIM icon subsequently does not appear in the Start page, and the BIM WB fails to load and FreeCAD crashes.

Could anyone test this too?

The funny thing is, compiling Arch_rc.py manually with rcc -g python --compress-algo=zlib --compress=1 -o Arch_rc.py src/Mod/BIM/Resources/Arch.qrc produces a valid file that works. And rcc is the same in both cases...

@furgo16
Copy link
Contributor

furgo16 commented May 6, 2024

Could anyone test this too?

I can confirm this behavior. I've wanted to test this branch for days, but I've not been able to because of this error (the BIM workbench would not load). I've not looked at it in detail, though.

The error I got was related to Arch_rc, but I don't have a current build to show the exact error. I'll start one to check.

@yorikvanhavre
Copy link
Member Author

The same error is what's provoking the failed CI build on ubuntu 22.04.
There seems to be a problem somewhere with some Qt version. I'll try to find out what

@furgo16
Copy link
Contributor

furgo16 commented May 6, 2024

If that helps, I just built the branch again and here's the output. This time the error is slightly different for me:

During initialization the error "UI file does not exist" occurred in $HOME/dev/freecad-source/build/Mod/Arch/InitGui.py
Please look into the log file for further information
During initialization the error ""'BIMWorkbench' already exists."" occurred in $HOME/.local/share/FreeCAD/Mod/BIM/./InitGui.py
Please look into the log file for further information
Cannot find icon: $HOME/dev/freecad-source/build/share/Mod/BIM/Resources/icons/BIMWorkbench.svg
Cannot find icon: $HOME/dev/freecad-source/build/share/Mod/Web/Resources/icons/WebWorkbench.svg
  1. FreeCAD starts and shows the above message
  2. The BIM workbench appears in the TabBar, but with a ? icon
  3. Activating that icon leads to a bunch of warnings (otherwise the workbench seems to load):
14:39:01  Cannot find icon: $HOME/dev/freecad-source/build/share/Mod/BIM/Resources/icons/BIMWorkbench.svg
14:39:01  Cannot find icon: $HOME/dev/freecad-source/build/share/Mod/Web/Resources/icons/WebWorkbench.svg
14:39:16  Cannot find icon: Sketch
14:39:16  Cannot find icon: Arch_Project_IFC
14:39:16  Cannot find icon: BIM_Column
14:39:16  Cannot find icon: BIM_Beam
14:39:16  Cannot find icon: BIM_Slab
14:39:16  Cannot find icon: BIM_Door
14:39:16  Cannot find icon: BIM_Box
14:39:16  Cannot find icon: BIM_Library
14:39:16  Cannot find icon: BIM_DimensionAligned
14:39:16  Cannot find icon: BIM_DimensionHorizontal.svg
14:39:16  Cannot find icon: BIM_DimensionVertical
14:39:16  Cannot find icon: BIM_Leader
14:39:16  Cannot find icon: techdraw-PageDefault
14:39:16  Cannot find icon: techdraw-ArchView
14:39:16  Cannot find icon: BIM_Copy
14:39:16  Cannot find icon: BIM_Clone
14:39:16  Cannot find icon: BIM_Unclone
14:39:16  Cannot find icon: BIM_Rewire
14:39:16  Cannot find icon: BIM_Glue
14:39:16  Cannot find icon: BIM_Reextrude
14:39:16  Cannot find icon: Tree_Part
14:39:16  Cannot find icon: BIM_Views
14:39:16  Cannot find icon: BIM_Project
14:39:16  Cannot find icon: BIM_Windows
14:39:16  Cannot find icon: BIM_IfcElements
14:39:16  Cannot find icon: BIM_IfcQuantities
14:39:16  Cannot find icon: BIM_IfcProperties
14:39:16  Cannot find icon: BIM_Classification
14:39:16  Cannot find icon: BIM_Layers
14:39:16  Cannot find icon: BIM_Material
14:39:16  Cannot find icon: BIM_Preflight
14:39:16  Cannot find icon: BIM_TogglePanels
14:39:16  Cannot find icon: BIM_Trash
14:39:16  Cannot find icon: BIM_WPView
14:39:16  Cannot find icon: BIM_Diff
14:39:16  Running the Python command 'BIM_Views' failed:
Traceback (most recent call last):
  File "$HOME/dev/freecad-source/build/Mod/Arch/bimcommands/BimViews.py", line 74, in Activated
    dialog = FreeCADGui.PySideUic.loadUi(":/ui/dialogViews.ui")
  File "<string>", line 4, in <module>

image
Workbench loads, but notice the missing icons in the toolbar

I'm not sure if this is a red herring and unrelated to the QResource: error decompressing zlib content (-3) error, though. I have the freecad-daily PPA installed on Ubuntu 22.04, and I'm wondering if there is a clash with the external BIM workbench files installed from there and the now built-in BIM workbench files from this local build.

Note that I'm not running any install target. I simply start the binary from $HOME/dev/freecad-source/build/bin.

@furgo16
Copy link
Contributor

furgo16 commented May 6, 2024

I'm also getting this error when switching workbenches:

Cannot find icon: BIM_Welcome.svg
14:40:53  Cannot find icon: BIM_Help
14:40:53  Cannot find icon: BIM_Tutorial
14:40:53  Cannot find icon: BIM_Help
14:44:19  Traceback (most recent call last):
14:44:19    File "$HOME/dev/freecad-source/build/Mod/Arch/nativeifc/ifc_observer.py", line 240, in propose_conversion
14:44:19      dlg = FreeCADGui.PySideUic.loadUi(
14:44:19    File "<string>", line 4, in <module>
14:44:19  RuntimeError: Cannot open file
14:44:19  Traceback (most recent call last):
14:44:19    File "$HOME/dev/freecad-source/build/Mod/Arch/nativeifc/ifc_observer.py", line 240, in propose_conversion
14:44:19      dlg = FreeCADGui.PySideUic.loadUi(
14:44:19    File "<string>", line 4, in <module>
14:44:19  RuntimeError: Cannot open file

@yorikvanhavre
Copy link
Member Author

Can you check if you have an Arch_rc.py file in your install directory? It should be together with the other BIM files inside the Mod/BIM folder. It is generated at build time.

@furgo16
Copy link
Contributor

furgo16 commented May 6, 2024

Yes, it's there: $INSTALL_PREFIX/usr/local/Mod/BIM/Arch_rc.py

Unrelated, but worth noting: it's the first time I've ran the make install target. Until now, I just executed the built binary from the build/bin folder. I now installed it with make DESTDIR=$HOME/opt install. That seemed to work, but I cannot launch the binary (error while loading shared libraries: libFreeCADGUI.so: cannot open shared object file: No such file or directory), so I cannot really test the BIM workbench changes from that location until I've figured that out.

@yorikvanhavre
Copy link
Member Author

That's strange... I can run FreeCAD from both the build and install dirs here.

In any case we do have a problem with the resource file. It's unloadable for some reason, and since it contains all the icons and ui files, that's why you are getting those "file not found" errors.

Still don't understand why when I run the exact same commands as the build process does, it produces a valid resource file...

@yorikvanhavre
Copy link
Member Author

yorikvanhavre commented May 14, 2024

@furgo16

File "$HOME/.local/lib/python3.10/site-packages/ifcopenshell/util/placement.py"

This could indicate you are using not the pip version but a home compiled version... Could you try this?

import ifcopenshell; print(ifcopenshell.version); print(ifcopenshell.__file__)

For the rest:

  1. Pressing the BIM_IfcProperties toolbar button

Fixed in above commit

  1. Pressing the BIM_Classification toolbar button

Fixed in above commit

  1. Pressing the BIM_Layers toolbar button

I can't reproduce this... I don't understand what's the problem here, there is well a buttonAssign in that dialog

  1. Pressing the BIM_Material toolbar button, then OK, then removing the created material from the tree view

That's the same problem as above, tool old ifcopenshell version (ifcopenshell/util/placement.py too old)

@furgo16
Copy link
Contributor

furgo16 commented May 14, 2024

This could indicate you are using not the pip version but a home compiled version... Could you try this?

import ifcopenshell; print(ifcopenshell.version); print(ifcopenshell.__file__)

@yorikvanhavre, sure:

>>> import ifcopenshell
>>> print(ifcopenshell.version)
v0.7.0-f7c03db75
>>> print(ifcopenshell.__file__)
$HOME/.local/lib/python3.10/site-packages/ifcopenshell/__init__.py

I did not (knowingly at least!) compile ifcopenshell myself. I installed it with pip (as a user, not system-wide, if that makes a difference). The .local/lib location is pip's default installation location for user installs, IIRC. The lines below seem to confirm this:

$ pip show -f ifcopenshell

Name: ifcopenshell
Version: 0.7.0.240423
Summary: Python bindings, utility functions, and high-level API for IfcOpenShell
Home-page: 
Author: 
Author-email: Dion Moult <[email protected]>
License: 
Location: $HOME/.local/lib/python3.10/site-packages

Additional notes:

  1. I ran the commands both on my desktop and laptop. Both return the same result
  2. One thing I noticed was that the import ifcopenshell statement on FreeCAD's console took quite a while to return (10-15 seconds). Doing the same outside FreeCAD with ipython3 did not have this delay.

@yorikvanhavre
Copy link
Member Author

yorikvanhavre commented May 14, 2024

That's really weird... Here with the same version as yours, and no crash:

>>> import ifcopenshell
>>> ifcopenshell.version
'v0.7.0-f7c03db75'
>>> from nativeifc import ifc_tools
>>> from ifcopenshell.util import placement

I also have the 10-seconds delay, though. I suppose the pip version is not optimally compiled...

@furgo16
Copy link
Contributor

furgo16 commented May 14, 2024

I can reproduce the crash on FreeCAD's Python console. I'm running from the build directory, having pulled the latest branch commits:

>>> import ifcopenshell
>>> print(ifcopenshell.version)
v0.7.0-f7c03db75
>>> print(ifcopenshell.__file__)
$HOME/.local/lib/python3.10/site-packages/ifcopenshell/__init__.py
>>> from nativeifc import ifc_tools
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "$HOME/dev/freecad-source/build/Mod/BIM/nativeifc/ifc_tools.py", line 41, in <module>
    from ifcopenshell.util import placement
  File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "$HOME/.local/lib/python3.10/site-packages/ifcopenshell/util/placement.py", line 23, in <module>
    MatrixType = np.ndarray[np.ndarray[float]]
TypeError: 'type' object is not subscriptable

@yorikvanhavre
Copy link
Member Author

Hm the error actually comes from numpy (File "$HOME/.local/lib/python3.10/site-packages/ifcopenshell/util/placement.py", line 23)

Could you try this?

>>> import numpy
>>> numpy.version.full_version
'1.26.4'
>>> numpy.__file__
'/usr/lib/python3/dist-packages/numpy/__init__.py'

Note that indeed the pip version of IfcOpenShell is outdated (mine that I build does not have that numpy line anymore). That's annoying... Means it's likely to be problematic to recommend the pip version

@furgo16
Copy link
Contributor

furgo16 commented May 14, 2024

I have indeed an older numpy version than yours:

>>> import numpy
>>> numpy.version.full_version
'1.21.5'
>>> numpy.__file__
'/usr/lib/python3/dist-packages/numpy/__init__.py'

Let me see if I can find out why it's like that on my system

@furgo16
Copy link
Contributor

furgo16 commented May 14, 2024

Pressing the BIM_Layers toolbar button

I can't reproduce this... I don't understand what's the problem here, there is well a buttonAssign in that dialog

Regarding the other issues, I can confirm that the fixes worked. Only the one about BIM_Layers still remains.

@furgo16
Copy link
Contributor

furgo16 commented May 14, 2024

Having upgraded numpy, I can no longer reproduce the crash. I noticed I had pinned it in the past, to work around an issue with OpenCV. The majority of users won't have done it, so it won't be an issue.

Regarding the outdated version of ifcopenshell on PyPI, do the maintainers there need to be given a nudge? They seem to release the packages fairly often (last one last month), but I cannot see how the pip releases correlate with the upstream releases

What's weird is that the last release in GitHub is from Nov '22, whereas the pip package is Apr '24. Are the pip packagers releasing git snapshots? Have the ifcopenshell people given up on releases on GitHub?

@yorikvanhavre
Copy link
Member Author

Probably the pip version is built on the nov'22 code (last release)... That would explain it. In any case, yes, we can suppose the pip version should be working.

@furgo16
Copy link
Contributor

furgo16 commented May 14, 2024

The IfcOpenShell docs state that the pip packages are built monthly (I guess from git?) => https://docs.ifcopenshell.org/ifcopenshell-python/installation.html#pypi

At least there was a build last month. But there are some gaps, not all months have a pip release: https://pypi.org/project/ifcopenshell/#history. Neither is the release date consistent. So I'm not sure if those monthly builds are automatic or manual.

Alternatively, can the FreeCAD packages ship a known-well-working version of IfcOpenShell?

Update: it seems the upstream blenderbim bundle is the one that's built daily. At a quick glance it seems to include ifcopenshell. Perhaps the developers are prioritizing or pushing for people to use blenderbim?

@yorikvanhavre
Copy link
Member Author

They do, but I think it's also the pip version...

@paullee0
Copy link
Contributor

I use AppImage on Fedora Linux for a long time, it has IfcOpenShell 'built-in'. Hope this arrangement would not changed :D

@paullee0
Copy link
Contributor

Looks like there is a very good progress here, congrats!

Can 'Arch' be somehow be kept in the workbench name? Arch-BIM?

Arch is a much much more commonly understood by the general public. 'BIM' is more cryptic, maybe used for another 10 years, the 'auto' company may spin new terms for more business opportunity. My two cents :)

@yorikvanhavre
Copy link
Member Author

I was going to call you here to have a look, @paullee0 :) (And @Roy-043 )

Yes the idea is to not change anything to how IfcOpenShell is detected/used: The one you have on your system, or the one that comes with your FreeCAD package. But additionally, there is now a tool that can install it from pip too.

About BIM, there is also a bit of a political stance there: The term BIM is ours, it's not a propriety of big vendors. BIM is at the end nothing else than CAD for the AEC sector (architecture, engineering and construction), we should use it and claim it for ouselves :) Also because it's more inclusive than "Arch", it's not only for architecture. And also, same as "Path" that was renamed to CAM, even if path was more understandable, it's important we use the correct technical terms when we have the possibility. What we need to make clear to the user, and that's the important point, is: BIM is for you, it's not dark magic for skilled wizards. So we must work on making those tools easy to discover and use

@yorikvanhavre
Copy link
Member Author

I think all issues are currently solved @furgo16 , aside from the BIM_Layers one, but I propose to merge already, to not wait with this any longer, then we will quickly see if others have the same problem, and find a fix easier.

@yorikvanhavre yorikvanhavre marked this pull request as ready for review May 15, 2024 07:08
@paullee0
Copy link
Contributor

I was going to call you here to have a look, @paullee0 :) (And @Roy-043 )

Yes the idea is to not change anything to how IfcOpenShell is detected/used: The one you have on your system, or the one that comes with your FreeCAD package. But additionally, there is now a tool that can install it from pip too.

About BIM, there is also a bit of a political stance there: The term BIM is ours, it's not a propriety of big vendors. BIM is at the end nothing else than CAD for the AEC sector (architecture, engineering and construction), we should use it and claim it for ouselves :) Also because it's more inclusive than "Arch", it's not only for architecture. And also, same as "Path" that was renamed to CAM, even if path was more understandable, it's important we use the correct technical terms when we have the possibility. What we need to make clear to the user, and that's the important point, is: BIM is for you, it's not dark magic for skilled wizards. So we must work on making those tools easy to discover and use

Thanks for the invitation:) And glad to know IfcOpenShell should hopefully shipped with AppImage 🗡️

And about 'BIM', it just missed the dimension of meaning it associated with art, diluted the role of Architect with capital 'A' LOL. No intention to keep on arguing about the history and theory of Architecture, understood the community is okay with it :D

Would help to test after this is merged, thanks :D

@furgo16
Copy link
Contributor

furgo16 commented May 15, 2024

I think all issues are currently solved @furgo16 , aside from the BIM_Layers one, but I propose to merge already, to not wait with this any longer, then we will quickly see if others have the same problem, and find a fix easier.

@yorikvanhavre absolutely, ship it! :-)

@marcuspollio
Copy link
Contributor

marcuspollio commented May 16, 2024

Hi @yorikvanhavre

Finally solved my strange issues, no more "Mod/Arch" folders !
But have the same errors as @furgo16 above (numpy, shiboken) ...

Otherwise, just wondering about those tools (missing from BIM WB) :

Structural System : should we use the Axis property of e.g. Beam and Column instead ?
Equipment tools : should we use Component instead ?
Also I can't find the Panel Cut, Sheet and Nest tools.

@yorikvanhavre
Copy link
Member Author

yorikvanhavre commented May 16, 2024

@marcuspollio I have a new PR ready right after this one is merged, that reformats a bit the toolbars... I propose we merge this one and then we discuss the toolbar layouts, what goes in, what stays out, okay? Indeed there are some Arch tools missing from BIM. I'd be in favour of reintegrating everything for 1.0 (all Arch tools + all BIM tools) first, to help people transition, then in layer step discuss if tools should be removed

Regarding IfcOpenShell, the current AppImage ships with:

  • IfcOpenShell 0.7.0 which seems to be more recent than the pip one
  • numpy 1.26.2

So I think we should be good and rely on that.

@furgo16
Copy link
Contributor

furgo16 commented May 16, 2024

This is unrelated to the merging of this PR, but since the conversation started, and to keep everything in one place, here is some context on IfcOpenShell versions:

Summary

Package name Forge Package version Upstream version Notes
IfcOpenShell PyPI 0.7.0.240423 v0.7.0-f7c03db75 Package creation date: 2024-04-23. Corresponds to this upstream commit. Not shipped with FreeCAD, at least not with .deb and .snap Linux packages
IfcOpenShell Conda v0.7.0.231127 0.7.0 Package creation date: 2023-11-27. As shipped with FreeCAD's weekly AppImage

If I understand it correctly, the AppImage bundles the IfcOpenShell package from Conda Forge. What puzzles me is that the pip version seems to be newer than the conda version, but I think @yorikvanhavre you mentioned that in your system it's the other way around (i.e. pip's version is older)?

Interestingly, IfcOpenShell upstream have their own dedicated registry/archive/forge at https://anaconda.org/ifcopenshell/ifcopenshell - there you can download IfcOpenShell 0.8.0alpha1

Version details

IfcOpenShell from PyPI (as of today)

>>> import ifcopenshell
>>> print(ifcopenshell.version)
v0.7.0-f7c03db75
>>> print(ifcopenshell.__file__)
$HOME/.local/lib/python3.10/site-packages/ifcopenshell/__init__.py
$ pip show -f ifcopenshell

Name: ifcopenshell
Version: 0.7.0.240423

IfcOpenShell from AppImage (FreeCAD_weekly-builds-37213-conda-Linux-x86_64-py311.AppImage)

>>> import ifcopenshell
>>> print(ifcopenshell.version)
0.7.0
>>> print(ifcopenshell.__file__)
/tmp/.mount_FreeCAtqrYCd/usr/lib/python3.11/site-packages/ifcopenshell/__init__.py

@yorikvanhavre
Copy link
Member Author

yorikvanhavre commented May 16, 2024

The problem is that ifcopenshell.version does not reflect the same thing in all cases... Maybe @Moult or @aothms could help us here? What version should we rely on? Conda or pip? Or any other?

@Moult
Copy link
Contributor

Moult commented May 16, 2024

I'd say go with pip. https://docs.ifcopenshell.org/ifcopenshell-python/installation.html

We have work to do to consolidate all the release channels and version numbering.

@yorikvanhavre
Copy link
Member Author

Thanks @Moult !

@yorikvanhavre yorikvanhavre merged commit acecc2c into FreeCAD:main May 16, 2024
9 checks passed
@yorikvanhavre
Copy link
Member Author

Okay it's merged!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WB BIM Related to the BIM/Arch Workbench
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants