Commit Graph

2592 Commits

Author SHA1 Message Date
Bruno Perdigão 1486dc26e6 minor fix 2024-04-15 13:30:41 +02:00
Bruno Perdigão 72b2cf626f bugfix and alt+click functionality 2024-04-15 13:30:41 +02:00
Bruno Perdigão 4be1fa7632 implements #3268 2024-04-15 13:30:41 +02:00
Andrej730 e792471725 Moving editing roof and railing paths hotkey from Shift+E/Q to Tab 2024-04-15 13:30:41 +02:00
Andrej730 444166b37c Fix #3263 2024-04-15 13:30:41 +02:00
Andrej730 7a91b3d153 railing modifiers - fixing normals for frameless_panel #3277 2024-04-15 13:30:41 +02:00
Dion Moult 200aeb896d See #3359. Bump IfcOpenShell and enable HLR prefiltering optimisation for drawing generation 2024-04-15 13:30:41 +02:00
Andrej730 20d19bfcba type selection error #3318
if you switch ifc_class then relating_type_id can become invalid and we wasn't taking it into account

Also fixed bunch of warning like `pyrna_enum_to_py: current value '17' matches no enum in 'BIMModelProperties', '', 'relating_type_id'`` when some ifc_class has N related types and then you switch to other ifc_class that has less than N related types.
2024-04-15 13:30:40 +02:00
Andrej730 461eeba9ff Revert "enable activating object type when trying to select type from an object ( whilst the type is hidden from view layer)"
This reverts commit 4bc987924d since there was some unintentional changes.

Now when you use select_type in object properties - ifc class and related type gets selected in the BIM Tool  - https://i.imgur.com/drIHYDz.png

#3318
2024-04-15 13:30:40 +02:00
Andrej730 5b10923b45 ShapeBuilder.polyline - skip creating segments if they are not needed 2024-04-15 13:30:40 +02:00
Dion Moult 4efe780df7 Fix #3356. Include version info in status bar for debugging and new copy debug info button to help bugreporting. 2024-04-15 13:30:40 +02:00
Dion Moult a5579d1d69 Fix #3256. Support file profiles made out of multiple representation items. 2024-04-15 13:30:40 +02:00
Andrej730 1109d4cc51 Sync ifc class in BIM Tool and Type Manager
It's seems it would be better for ux if they will be connected
2024-04-15 13:30:40 +02:00
Andrej730 33d3afc35d experimental support for spline curves representation #3233
there is still no full support but as a workaround I've added blender converting curves to meshes and back to curves so we could preserve the actual shapes

before - https://i.imgur.com/9F542Iy.png
after - https://i.imgur.com/t58RlkF.png
2024-04-15 13:30:40 +02:00
c4rlosdias 31a6049eb6 Add extra formats to output file 2024-04-15 13:30:40 +02:00
Andrej730 5474d0f56a Prevent crash on attempt to link the current .blend file 2024-04-15 13:30:40 +02:00
Andrej730 d57e152c7d Storing external styles paths as posix for cross platform compatibility
Also it was wrongly referring to .blend file instead of .ifc to generate relative paths.
2024-04-15 13:30:40 +02:00
Andrej730 3fa5679bd7 disable default vebose mode for getting shader attribute to prevent spam 2024-04-15 13:30:40 +02:00
Andrej730 5ce7abbda0 adding default ifc objects added from shift-a menu to the current collection 2024-04-15 13:30:40 +02:00
Andrej730 1b39f243eb Editiing arbitrary profile without enabling editing profile
It was a bit confusing UX since when you finish editing arbitrary profile path the data is already saved in ifc but you were still in editing profile properties
2024-04-15 13:30:40 +02:00
Andrej730 9864f7d19e Update type manager thumbnails on editing profiles
Example - https://imgur.com/a/IcV8IIR
2024-04-15 13:30:40 +02:00
Andrej730 5a5e1e9892 disable chaching sound running the bim tests
to save someone's ears (probably mine 😁) from running 10 chaching sounds per second
2024-04-15 13:30:40 +02:00
Andrej730 847d30fdaa Fixed errors displaying IFC Connections for IfcRelConnectsElements
IfcRelConnectsElements type of connection wasn't handled properly resulting in errors.
Now you should be able to see connections for connected slabs, walls etc - https://i.imgur.com/LpFBKBC.png

Traceback:
Traceback (most recent call last):
  File "\blenderbim\bim\module\geometry\ui.py", line 102, in draw
    ConnectionsData.load()
  File "\blenderbim\bim\module\geometry\data.py", line 100, in load
    cls.data = {"connections": cls.connections()}
  File "\blenderbim\bim\module\geometry\data.py", line 134, in connections
    relating_element_connection_type = rel.RelatingConnectionType
  File "\blenderbim\libs\site\packages\ifcopenshell\entity_instance.py", line 171, in __getattr__
    raise AttributeError(
AttributeError: entity instance of type 'IFC4.IfcRelConnectsElements' has no attribute 'RelatingConnectionType'
2024-04-15 13:30:40 +02:00
Dion Moult 99e2598c00 Fix #3355. Reimplement graphical clash snapshots in BCF from IfcClash in the BlenderBIM Add-on. 2024-04-15 13:30:40 +02:00
Dion Moult 6758d878d8 You can now unload BCF projects to load another one. 2024-04-15 13:30:40 +02:00
Trashman247 6986b901d0 Move Brick.ttl ignore to main git-ignore file 2024-04-15 13:30:10 +02:00
Trashman247 9cedd37694 Silence known rdflib_sqlalchemy TypeError warning 2024-04-15 13:29:29 +02:00
Trashman247 2b52ab930c Implement fully undo/redo with checks
While these actions are short in the backend--taking about 0.01 seconds to run--the Blender UI lags a lot leading to 2-3 second pauses because of the "refresh_brick_viewer" function being slow. This should be investigated.
2024-04-15 13:29:29 +02:00
Trashman247 36d0e33958 Change namespace selector to only show alias 2024-04-15 13:29:29 +02:00
Trashman247 6a88905e23 Add changeset versioning to Brick add/remove 2024-04-15 13:29:29 +02:00
Trashman247 64d1fb4ee7 Reformat commenting, remove prints, and remove BrickStore.project 2024-04-15 13:29:29 +02:00
Trashman247 bcd7c79004 Implement fully serialize operator
- Turns out, you need the keyword "graph=" in graph_at() to actually select a graph of that name from the collection, otherwise it just returns the entire collection, so I changed that, which correctly isolates the project from the collection for serialization now.
- With this same change, I opted turn BrickStore.VersionedGraphCollection simply into BrickStore.graph and create a new BrickStore.get_project() to return the isolated graph. - This meant I should remove the reload_graph() function because I was actually just loading the entire collection into it still, and its functionality breaks when it isn't the entire collection
2024-04-15 13:29:29 +02:00
Trashman247 38788cc95b Implement early testing for serialize operator (not functional)
All the right code seems to be in place, but it seems the package won't go through with the serialize function because of read/write permissions (ERRNO 13)
2024-04-15 13:29:29 +02:00
Trashman247 4a04411262 Change graph naming to all caps 2024-04-15 13:29:29 +02:00
Trashman247 590049638e Add Brick.ttl to .gitignore 2024-04-15 13:29:29 +02:00
Trashman247 b13f6116d0 Update BrickStore.purge()
I wanted to just have a BrickStore.clear() which would so this:

        BrickStore.VersionedGraphCollection = None
        BrickStore.graph = None
        BrickStore.path = None

(aka not also set BrickStore.schema = None, since it should theoretically just load in the same path anyway) but for some reason Blender crashes when clearing a project and loading one again this way.
2024-04-15 13:29:29 +02:00
Trashman247 d2815415df Rework NewBrick and LoadBrick in test_brick.py to fit with new VGC format
- VGC means VersionedGraphCollection.
- BrickStore.schema is now a filepath, so make that the case in the testing also.
2024-04-15 13:29:29 +02:00
Trashman247 c85b97af5a Implement VersionedGraphCollection to Brick module
- Reworked `load_brick_file` and `new_brick_file` to fit under the VersionedGraphCollection implementation. (Other methods may have broken).
- Added `undo_brick` and `redo_brick`.
- Kept BrickStore.graph the same as to generally still work with the rest of the code. This was done by parsing the VersionedGraphCollection with the new `reload_brick_graph` method.
2024-04-15 13:29:29 +02:00
Carlos Dias 205128400e Update operator.py
missing output file format in arguments
2024-04-15 13:29:28 +02:00
Andrej730 6e01d5ce01 reworked detecting neighbour walls when placing new ones
hopefully it will be a bit more natural now - please give feeback

before - https://imgur.com/a/VYQt5ua
now - https://imgur.com/a/5LRAmrd
2024-04-15 13:29:28 +02:00
Andrej730 6a1d1cf039 More responsive UI for IFC search 2024-04-15 13:29:28 +02:00
Andrej730 62ecb1e261 a bit of bim.join_wall refactor 2024-04-15 13:29:28 +02:00
Andrej730 4e186f4a62 Error editing roof profile #3357
it was assuming it's a slab and was giving errors trying to start editing slab profile

File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\model\slab.py", line 618, in _execute
if extrusion.Position:
AttributeError: 'NoneType' object has no attribute 'Position'
2024-04-15 13:29:28 +02:00
Bruno Postle 84b08fa448 BlenderBIM Git documentation minor corrections 2024-04-15 13:29:28 +02:00
Bruno Postle e61c572743 BlenderBIM document Git merge asymmetry (#3096) 2024-04-15 13:29:28 +02:00
Dion Moult 623ac1fe93 Fix hppfcl segfault by bumping hppfcl and its dependencies. Remove support for py37. 2024-04-15 13:29:28 +02:00
Andrej730 2122ab7bdc Added warning for a86456392 2024-04-15 13:29:28 +02:00
Andrej730 49abaf6798 improved relative path handling for textures #3365
now we're going to store all texture paths in .ifc as posix to keep them working if .ifc moved from one platform to another

previously it was saving all paths as absolute
2024-04-15 13:29:28 +02:00
Andrej730 bfcc8decc0 Calculating angle based on world position instead of camera pos #3362 2024-04-15 13:29:28 +02:00
Andrej730 1357b83d99 Added support for OCCLUSION textures for 3aff29dec 2024-04-15 13:29:28 +02:00