Commit Graph

8500 Commits

Author SHA1 Message Date
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
Dion Moult f1e3fb38ad See #3334. Fix some get_pset implementation errors in 64516a1 2024-04-15 13:30:40 +02:00
OrionSehn 0f6e934ca8 Proposed fix to #3352 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 bd70f7bf7f add_representation - detect non consequtive curves and handle them
Basically if current mesh curve is non consequtive we handle it in similar way to b03c4da7b - convert it to curves using Blender and then save them to ifc.

The advantage is that it creates less curves in ifc because mesh method wasn't able to detect separate curves correctly if vertex order was messed up (usually it is) and it would create separate curve for each curve segment.

I've also replaced figuring vertex duplicates with `bmesh.ops.remove_doubles` manually with `bmesh.ops.remove_doubles` and it's now much faster. In some cases because of the manual calculations it was taking too long - in #3233 Ryan mentiones that it freezes blender, it wasn't really freezing Blender but to finish calculations it would take 10 minutes.
2024-04-15 13:30:40 +02:00
Dion Moult d81e64f7a2 See #3376. Bump updated build of IfcSverchok. 2024-04-15 13:30:40 +02:00
Dion Moult 00ccb77f86 Merge AWS Lambda installation documentation into official docs 2024-04-15 13:30:40 +02:00
Dion Moult 5dd9a24647 Whoops 2024-04-15 13:30:40 +02:00
Dion Moult d435152904 Close #3377. Implement xyz coordinates for COBie object placement. 2024-04-15 13:30:40 +02:00
Dion Moult 5840b1770e Write IfcOpenShell documentation for geometry trees. 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
Dion Moult ce8a9293bb See #3334. Optimise pset getting and add simple "broadphase" filtering for all facets for faster validation. 2024-04-15 13:30:40 +02:00
Dion Moult b8e2e693f1 Fix bug where IfcTester would pass derived attribute facets.
Now that IfcOpenShell supports derived attributes, we need to explicitly make sure the attribute facet only considers forward attributes.
2024-04-15 13:30:40 +02:00
Dion Moult 9af7ddaf56 See #3334. Fix bug where get_pset didn't handle property inheritance correctly. 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
Dion Moult 4845242769 Fix #3366. Fix crash in IfcDiff if you are comparing a model with no geometry. 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