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
Arch becomes BIM #13783
Conversation
7074da6
to
0917bd9
Compare
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? |
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... |
This is excellent, looking forward to this!
|
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 |
are there any other icons that need refinement or changes (BIM, Arch, Draft)? |
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...) |
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 :
In later steps (can be done by other contributors as well) :
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). I will give this PR a test when the building checks are all OK. |
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. |
0917bd9
to
7908dff
Compare
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:
|
@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. |
these are for the tree view, i would say they should be white.. |
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? |
Sorry, my bad ! I haven't compiled it yet =D Sure, this PR is big enough, all these further improvements can come later.
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 :) |
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. |
There is still a problem with this PR... After compiling it, the Arch_rc.py resource file fails to load with a Could anyone test this too? The funny thing is, compiling Arch_rc.py manually with |
0013e27
to
b1865ae
Compare
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. |
The same error is what's provoking the failed CI build on ubuntu 22.04. |
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 |
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. |
Yes, it's there: Unrelated, but worth noting: it's the first time I've ran the |
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... |
This could indicate you are using not the pip version but a home compiled version... Could you try this?
For the rest:
Fixed in above commit
Fixed in above commit
I can't reproduce this... I don't understand what's the problem here, there is well a buttonAssign in that dialog
That's the same problem as above, tool old ifcopenshell version (ifcopenshell/util/placement.py too old) |
@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 $ 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:
|
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... |
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 |
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 |
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 |
Regarding the other issues, I can confirm that the fixes worked. Only the one about BIM_Layers still remains. |
Having upgraded Regarding the outdated version of
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? |
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. |
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? |
They do, but I think it's also the pip version... |
I use AppImage on Fedora Linux for a long time, it has IfcOpenShell 'built-in'. Hope this arrangement would not changed :D |
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 :) |
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 |
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. |
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 |
@yorikvanhavre absolutely, ship it! :-) |
Finally solved my strange issues, no more "Mod/Arch" folders ! 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 ? |
@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:
So I think we should be good and rely on that. |
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
If I understand it correctly, the AppImage bundles the 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 detailsIfcOpenShell 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
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 |
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. |
Thanks @Moult ! |
Okay it's merged! |
This involves:
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.