I can imagine that layers could work like Archicad. They use it for dimensioning/anotation. So that the 2d info for schematic 1:200 drawing has a layer. But also the 1:50 2d info has a layer. That way you can instantly switch between the level of detail you want tot show. Although that is what i remember of my test run with Archicad. Also Revit does have a kind of layer function, it has design options. Really useful for testing for example different façade options. The new layer function could also used for that? Also you could use it to quickly hide parts of the building or surrounding
How do you guys planning on using the new layer function?
@JanF I guess the thing to point out is the layers in IFC are not "new", in fact, you may open a lot of existing IFC files and discover that there are actually layers hidden inside, just that most viewing software did not expose it. Layers are optional and do not replace IFC classes.
Layers were developed by @krande - so I'm sure he can elaborate on the usecase that prompted development :)
However, I can think of a few usecases myself:
Many BIM software still work with a layer based approach and have poor IFC support. This results in an IFC with poor IFC classifications, but rich layer data. This layer data can be used to help clean up the IFC.
Layers can be used to store styling information, especially for 2D annotation, where the classes are less meaningful, especially after buildingSMART went ahead and deleted 90% of them.
Some government bodies and older systems have a contractual requirement to comply with a CAD layer standard, so that BIM models and older CAD models can interoperate.
@Meetlat good point about the design options! IFC currently has very poor support for design options, so layers may be used to the rescue!
@JanF@Moult The need arose from a couple of things. One issue was the fact that layers is used extensively in our primary CAD system and we needed a way of transferring that information through IFC. Without having an option to hide certain elements by default we ended up with a ton of doubly defined geometries or other non-physical geometry volumes (no-go zones, etc..). The IfcPresentationLayers seemed to me to be a decent approach for setting certain elements in a defaulted "hidden" state. I would be happy to explore better alternatives if anyone know of some alternatives for grouping elements in IFC with similar abilities? You might ask why we have doubly defined geometries in the first place? Well one issue I recently encountered was specifically with built up girders. I wanted them to be represented as a IfcBeam so that I can access all the necessary attributes needed for my structural analysis using beam elements (start, end positions, cardinality point, etc..) whilst fabrication would need the built up girders represented as individual IfcPlates given that the girder is welded up from individual plates in the first place.
Personally I do not have any strong feelings one way or the other towards IfcPresentationLayer in itself (which two-three weeks ago I did not know existed :p). If someone know of better alternatives that provide the same level of functionality within the IFC ecosystem I would gladly change :)
I think it's better we gather all "use cases" and see which approaches, and which IFC classes and attributes are suitable
Personally, I think layers are good and even can become better
It's about a year I want to see some new features in BlenderBIM that opens doors to do "layer-based design" which is a normal approach in facade design
Any decent IFC viewer should be able to filter elements by any property. What do you need a layer property for? It has no meaning whatsoever. If it is a design option, simply make a "design option" property, if you need some elements to be hidden make a visibility property.
If you have different versions of the same element they should be representations.
If you want to send the model and force a particular view with a particular settings on the viewer can't you just send a bcf with it?
@JanF sort of. In theory the layer information (name / visibility / frozen / etc) could be turned into Pset_CadLayer and a bunch of the spec removed. There is one technical difference between the two solutions, which may or may not describe the logic that buildingSMART went through when they made this decision.
In the pset solution, psets in IFC are assigned to elements, therefore an entire element can be assigned to one layer, but not more, as psets cannot be repeated.
In the dedicated assignment class solution (i.e. the way it is now), the assignment class actually does not reference an element. Instead, it references a representation, or a representation item. This has a few implications. The first is that theoretically you can assign a rep or rep item to more than one layer, which is not possible with psets. The second implication is that if you assign to a rep, you can have one context in one layer, and another context in another layer. E.g. the body geometry can be in a layer Foo and the clearance outline can be in a layer Bar. The third implication is that if you assign to a rep item, you can have one portion of the geometry in one layer, and another portion of the geometry in another layer. E.g. from a single Window element, the frame can be in one layer, and glazing in another.
All this highly granular layer assignment make a little more sense when you consider that unlike a pset solution, a dedicated class lets you reference a layer style. This includes line weights, stroke patterns, and so on. The obvious rebuttal is that the same thing can be achieved with materials and regular style assignments ... but ah well.
Personally, I'm with you. I don't want to use layers, and I don't like this overcomplicated assignment / layer style hierarchy. I thought I'd simply point out that there are technical differences between the two approaches. Also, most IFC viewers ignore layers, it's nice to have a FOSS one that supports it well, even if we don't use it to author files.
@JanF, Dion mentioned a simple example of layered-design:
E.g. from a single Window element, the frame can be in one layer and glazing in another.
For instance, Revit has limited support of layered walls, you can define wall layers, but it's really hard and time-consuming and even sometimes impossible to build complicated/composite wall layers, with its associated parts, like frames, bolts, ...
So, we need some layers, or planes, and also some reference (snapping) points in Blender and BlenderBIM to be able to build such walls that have patterns that those patterns repeat when we draw/put a wall from point A to point B
So, we need some layers, or planes, and also some reference (snapping) points in Blender and BlenderBIM to be able to build such walls that have patterns that those patterns repeat when we draw/put a wall from point A to point B
It's way harder than you may think, eg what happen arround windows / doors, for wood framed walls as sample, you must take account of openings to spread structural beams in credible fashion, things like that require another level than what blender native array is able to handle.
A "Rule" based entity like some kind of "Rail clone" probably will solve such issues, but as it require multiple entity interaction is pretty hard to implement properly.
@stephen_l some months ago we (you, Dion, and I) talked about this in the webchat, and you're right (especially about the rule-based notion)
Some months ago I had another idea, today I have another, because Blender is going to improve in some areas that are important to me, like "volumetric rendering", like OpenVDB, and also subdivision area, like OpenSubDiv
Soon we will focus more on OpenSubDiv which has the potential to open some new doors
Latest version of BlenderBIM is discussed at BIMvoice:
Moult shows the use of IFC Debug feature for advanced inspection of IFC data. I learned that you can read IFC files like text and use the #number to inspect specific data within Blender. He also shows the IFC Object Material function, explaining the four different ways to set material properties. At the end Sverchok is used to filter an IFC for data using the IFC nodes. Nice video, helps understanding the use of the add-on a lot! Thanks!
Thanks for sharing @Meetlat! Credits go to @condur for helping produce the video! We will be releasing a new one every week. I think next week's one will be a back to basics.
BlenderBIM Add-on v0.0.201207 has been released with 50 new features and fixes. It's our built environment, help support the BlenderBIM Add-on: 100% free and open source software that lets you author and document BIM data fully to ISO standards. It's built by the AEC community, for the AEC community. Get it today: https://blenderbim.org/
Highlights include drastically improved material, geometry, and context IFC round-tripping, and stabilisation of the new material system.
Hi, I'm brand new to BlenderBIM, I was trying to follow the HelloWorld tutorial from YouTube, got all the way through to the export part, I'm getting an error on export
"ValueError: Expected AggregateOfEntityInstance for attribute IfcMemberType.RepresentationMaps, got #99=IfcProductDefinitionShape($,$,(#91,#98))"
I don't know if I have the add-on installed correctly. Could someone offer some help please?
@Smarty23 that's an odd error. Which Hello World tutorial is it from YouTube? I see we're both online now, can you join the OSArch Live Chat (see link at top of the forum) and ping me on the chat, and let's screenshare using Jitsi Meet. Then I can help debug.
@Smarty23 ah yes, that is a heavily outdated video. In future videos I do put up a warning screen in case the video gets out of date. Basically to fix it, instead of manually creating the aggregation collection, use the "aggregate" buttons in the scene properties.
BlenderBIM Add-on v0.0.210131 has been released with 110 (yes!) new features and fixes. It's our built environment, help support the BlenderBIM Add-on: 100% free and open source software that lets you author and document BIM data fully to ISO standards. It's built by the AEC community, for the AEC community. Get it today: https://blenderbim.org/
The biggest impact to users include ZERO IFC data loss during imports and exports. If you've ever been concerned about losing data whenever you export from another "native" format or import into a "native" format with quirks and workarounds, worry no more. The BlenderBIM Add-on now uses IFC as a 100% native format. With the BlenderBIM Add-on you can edit IFCs and truly trust the quality and reliability of IFC data as a native format!
Twice as fast import times
Users will also experience much faster imports, where imports on average will be twice as fast. On some files which were affected by a presentation layer regression in the last release, they can be even 4 times faster to import. Also expect lighter Blender memory usage.
Blazing-fast export times
Users now no longer need to wait for exporting IFCs. Exporting IFCs is usually seen as a painful experience, but no more! The new version has blazing fast exports - for example a 350MB IFC can be exported in only 20 seconds!
Improved UI that adapts to your IFC version
When editing IFCs, you no longer need to be a guru who knows what's in the IFC spec when entering in data now. The BlenderBIM Add-on interface will adapt to the particular IFC version you are editing, and provide options like number sliders and dropdowns to make sure you fill out your BIM data correctly.
Partial IFC editing
Users no longer need to edit the whole IFC if you don't need to. The BlenderBIM Add-on now allows users to edit only portions of the IFC without affecting the rest of the IFC. You don't even need to import the entire IFC file if you don't want to. The BlenderBIM Add-on is one of the few IFC authoring tools that keeps track of ownership histories, so you can tell who edited what and when.
Whole new BCF-XML system
This new version also comes with a completely rewritten BCF-XML system, with full support for editing all aspects of BCF topics, comments, viewpoints, and more. IfcClash results also now export to BCF, so you can do clash detection and view results in other apps, or inspect issues in Blender.
The beginnings of a whole new system of 3D annotations
Although we didn't get around to the full TO-DO list of improvements we have in mind for 2D drawing generation, you'll discover a whole new set of 3D annotations which are in preparation for the new drawing system we'll be working on in future releases.
Laying the foundation for future updates
With 100% native IFC authoring, partial IFC editing, and full ownership and editing tracking, we're laying the foundation for a very exciting year ahead of Open Source and Free Software for the entire industry. Expect improvements in drawing generation, IFC-native parametric geometry editing, and even multi-user, cross-application simultaneous IFC authoring and collaboration. The future is bright. Join us and change the industry today at https://osarch.org!
A huge thank you to the rising number of community contributors who are helping code, test, translate, finance and make all of this possible for the entire industry.
New "clean wireframes" feature lets you easily apply edge split modifiers to elements to create technical drawings
New "link IFC" feature lets you easily append IFCs from another blend file to create a master file, good for large scale projects
BIMTester can now generate a report immediately after running a test in the same command (thanks rbertucat!)
HTML reports from BIMTester now specify an encoding for fancy characters (thanks rbertucat!)
BIMTester can now load in a custom IFC schema (thanks rbertucat!)
BIMTester now has a set of steps for testing aggregations (thanks rbertucat!)
Dimensions in drawings now show arrowheads and dimension text (thanks qwiglydee/BIMVoice!)
Improved naming for smart clash groups (thanks vinnividivicci!)
New feature to save a BCF project
You can now view and edit the BCF project name
You can now set the BCF author
You can now create new BCF projects
You can now add new BCF topics to a BCF project
New BIMTester translations into German and French (thanks berndhahnebach!)
New BCF library available for developers to supersede the older BCFPlugin library
New BCF library now has full BCFXML write and editing capabilities
Equal dimensions in drawings now show "EQ" annotations
New "Path" argument for BIMTester (thanks rbertucat!)
BIMTester HTML reports now shows skipped tests (thanks rbertucat!)
BCF comments are now shown in the UI as a subpanel instead of in the text editor which was pretty poor
Improved BCF UI
Optimised import now only considers surface styles, not all random styles
Import optimised for files which have loads of aggregations
New feature to snap spaces separated by wall gaps together to help create building energy models
New annotation decorations in 3D for leader lines (thanks qwiglydee/BIMVoice!)
New annotation decorations in 3D for stair arrows (thanks qwiglydee/BIMVoice!)
New annotation decorations in 3D for hidden lines (thanks qwiglydee/BIMVoice!)
BCF comments is now no longer read-only, you can now add/edit/delete comments
You can now add/delete BCF viewpoints
You can now add/delete BCF header files
BCF FoV ranges outside 45-60 degrees are now supported
3D annotation decorations now support imperial units
New button to add, as well as annotation decorations in 3D for break lines (thanks qwiglydee/BIMVoice!)
New feature to copy the 3D grid to to active 2D drawing (thanks qwiglydee/BIMVoice!)
Misc annotation are now decorated in 3D (thanks qwiglydee/BIMVoice!)
You can now add/delete BCF reference links
You can now add/edit/delete BCF topic labels
You can now add/delete BIM Snippets in BCF
You can now customise the CSV delimiter in IfcCSV (thanks htlcnn!)
You can now add/delete BCF document references
You can now add/remove related BCF topics
New button to quickly open the drawing camera in the sidebar for usability (thanks htlcnn!)
IfcClash can now export to BCFXML, which is super awesome! You can now use the results in other collaboration apps and cloud platforms!
Grids are now decorated with grid labels in 3D (thanks qwiglydee/BIMVoice!)
IfcClash can now generate image snapshots of clashes and store them in BCFXML
IFC exporting is now super optimised, by writing directly from IFC itself in memory. As a user, this basically means that exporting to IFC is super fast - as fast as saving a native file.
Importing now stores STEP ID links for key rooted elements as well as key semantic elements, like elements, materials, and styles
IfcOpenShell pset utility module now handles all the possible syntaxes for ApplicableEntity, so you can determine exactly what psets are avalable for each element (thanks CyrilWaechter!)
3D annotation decorations now support anti-aliasing
All IFC editing completely rewritten and refactored to use partial editing. As a user, this means zero IFC data loss during imports and exports for all geometric information as well as all non-geometric information.
IFC import heavily optimised due to new partial editing paradigm. Expect IFC files to import twice as fast as they did before (or four times as fast if you were affected by the presentation layer regression bug in the last release).
Entire UI completely redesigned to a more consistent UX, which is easier on the eyes with less nested boxes, and shows more IFC information
New IfcOpenShell placement utility module for calculating relative coordinates
Representations can now be added to any context. This includes invalid ones or contexts (i.e. not subcontexts) themselves, or those with missing target views
Switching representations will now change all linked data objects too, not just the active object
Optimisations and caching improvements to IfcOpenShell pset utility module (thanks CyrilWaechter!)
When viewing IFC attributes, now the UI will distinguish between NULL/None and simply empty attributes - this means as a user you know whether or not the data is truly empty or if the BIM author simply hasn't gotten to it yet
All IFC attributes intelligently now have a new UI depending on the data type. This means number sliders, true/false checkboxes, and dropdown lists to make it easier for users to get BIM data right.
All enumeration options are now shown when editing attributes, so you can pick from the list instead of checking the spec.
All attributes are detected from the relevant IFC schema version, so you can't accidentally put IFC4 data in an IFC2X3 file or vice versa
You can now create fresh IFC projects prior to exporting to a file
BIMTester can now output Zoom SmartView to visually zoom to failed tests (thanks berndhahnebach!)
Grids are now auto resized to the drawing boundaries upon adding (thanks qwiglydee/BIMVoice!)
IFC class dropdowns are now generated specific to the IFC schema version
Psets now respect shared STEP IDs, so the one-to-many mapping is preserved
Like attributes, psets and qtos now are sensitive to schema, data type, and distinguish between null vs empty
Aggregations no longer use collection instances, which was a bit silly and confused a lot of users
IfcPerson data is now imported. Previously it wasn't.
IfcOrganisation data is now imported. Previously it wasn't.
You can now edit the IFC organisation Identification attribute, which was previously missing from the UI
New feature in IfcCOBie to let you process the currently loaded IFC file (thanks ihabelaghoury!)
New annotation decorations in 3D for sections (thanks qwiglydee/BIMVoice!)
Drawings can now detect other drawings and generate section references (thanks qwiglydee/BIMVoice!)
BIMTester now has a dedicated standalone GUI (thanks berndhahnebach!)
BIMTester has improved CLI arguments (thanks berndhahnebach!)
New feature in IfcCSV to let you process the currently loaded IFC file (thanks ihabelaghoury!)
IfcPatch is now packaged so you can install it separately as a Python module (thanks CyrilWaechter!)
Full support for editing IfcMaterialList added!
The reusability of material set relationships are now round-tripped
Like attributes, materials now are sensitive to schema, data type, and distinguish between null vs empty
User is banned from creating IFC2X3 material psets because they are annoying
Accomodate custom pset templates for materials
BIMTester BIM auditing tools have started to be translated to Italian and Dutch (thanks berndhahnebach!)
IfcOpenShell geolocation utility can now apply geolocation transformations to matrixes, not just vectors
"Fake geolocation" from offending IFC files which are handled as Blender offsets are now stored with a dedicated UI so the user knows if the geolocation is correct
New Project UI to show basic project metadata about the currently active IFC project
IfcPatch extract elements recipe now supports bringing across openings as well, not just the elements you're interested in (thanks FreakTheMighty!)
You can now load new classification libraries on the fly
You can now mix classification libraries with project references
Remove setting to merge or import aggregates as the new aggregate import improvements make it obsolete
IfcCSV now supports exporting information about the related containing spatial structure element, useful for creating schedules related to floors, buildings, or spaces
New IfcOpenShell date utility module, because dates shouldn't be something we need to think about
Groups are no longer shown in the tree where they typically clutter things and don't add value
Openings are always imported now using Blender booleans
Qto utils now use the bmesh volume calculation method, which after the upstream Blender bug was fixed, leads to more accurate volumes for quantity take-off
New "remove deep" function in the IfcOpenShell element utility module for purging IFC data selectively (thanks aothms!)
The huge MVD panel completely removed and reorganised into import, export, and geometry editing UI locations for improved usability
New pie menu (press shift-E in the 3D viewport!) for quickly reaching common geometric editing functions
Nicer presentation layers UI, more what you'd expect out of traditional CAD layers.
Owner histories are now supported for adding new products, with proper history timestamp
Export time is now output to console for convenience
Writing 2D or 3D IFC curves from a Blender mesh is now possible in IFC2X3
Editing attributes now supports updating ownership histories, with proper history timestamp
Updating aggregates now supports updating ownership histories, with proper history timestamp
New fixes:
Fix bug where selecting the IFC file for drawing generation didn't work
Fix bug where aggregates where accidentally hidden when generating drawings
Fix crash when creating drawings on Windows with Blender versions >=2.91
Fix issue in selector utility when filtering with boolean values (thanks c4rlosdias!)
Fix bug where IfcSverchok's IfcGetAttribute node would not work (thanks htlcnn!)
A huge ton of IfcOpenShell improvements which I cannot fully summarise like geometry generation stability fixes, as well as crash fixes when removing elements as well as manipulating inverse relationships (thanks aothms!)
Improved snapshot filename checking in the new bcf library (thanks htlcnn!)
Have tried to update it but I'm getting errors when I try to enable it. This is what I'm getting.
Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\Blender 2.91\2.91\scripts\modules\addon_utils.py", line 351, in enable
mod = import(module_name)
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim__init__.py", line 23, in
from .bim import *
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\bim__init__.py", line 47, in
modules[name] = importlib.import_module(f"blenderbim.bim.module.{name}")
File "C:\Program Files\Blender Foundation\Blender 2.91\2.91\python\lib\importlib__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\bim\module\bimtester__init__.py", line 2, in
from . import ui, prop, operator
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\bim\module\bimtester\operator.py", line 4, in
import bimtester.run
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\bimtester\run.py", line 1, in
import behave.formatter.pretty # Needed for pyinstaller to package it
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\behave__init__.py", line 20, in
from behave.step_registry import * # pylint: disable=wildcard-import
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\behave\step_registry.py", line 9, in
from behave.matchers import Match, get_matcher
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\behave\matchers.py", line 13, in
from parse_type import cfparse
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\parse_type\cfparse.py", line 17, in
class Parser(parse.Parser):
AttributeError: module 'parse' has no attribute 'Parser'
@CarpgianeDS a few people have reported this but I haven't been able to replicate it yet. Can you please join the OSArch live chat and ping me? Hopefully with a screenshare I can finally figure out what it is.
@Moult I can do, though our IT department have strict admin privileges on our work stations. Have to jump into a meeting but I can ping in 30 mins time, if that's ok.
Comments
I can imagine that layers could work like Archicad. They use it for dimensioning/anotation. So that the 2d info for schematic 1:200 drawing has a layer. But also the 1:50 2d info has a layer. That way you can instantly switch between the level of detail you want tot show. Although that is what i remember of my test run with Archicad. Also Revit does have a kind of layer function, it has design options. Really useful for testing for example different façade options. The new layer function could also used for that? Also you could use it to quickly hide parts of the building or surrounding
How do you guys planning on using the new layer function?
@JanF I guess the thing to point out is the layers in IFC are not "new", in fact, you may open a lot of existing IFC files and discover that there are actually layers hidden inside, just that most viewing software did not expose it. Layers are optional and do not replace IFC classes.
Layers were developed by @krande - so I'm sure he can elaborate on the usecase that prompted development :)
However, I can think of a few usecases myself:
@Meetlat good point about the design options! IFC currently has very poor support for design options, so layers may be used to the rescue!
@JanF @Moult The need arose from a couple of things. One issue was the fact that layers is used extensively in our primary CAD system and we needed a way of transferring that information through IFC. Without having an option to hide certain elements by default we ended up with a ton of doubly defined geometries or other non-physical geometry volumes (no-go zones, etc..). The IfcPresentationLayers seemed to me to be a decent approach for setting certain elements in a defaulted "hidden" state. I would be happy to explore better alternatives if anyone know of some alternatives for grouping elements in IFC with similar abilities? You might ask why we have doubly defined geometries in the first place? Well one issue I recently encountered was specifically with built up girders. I wanted them to be represented as a IfcBeam so that I can access all the necessary attributes needed for my structural analysis using beam elements (start, end positions, cardinality point, etc..) whilst fabrication would need the built up girders represented as individual IfcPlates given that the girder is welded up from individual plates in the first place.
Personally I do not have any strong feelings one way or the other towards IfcPresentationLayer in itself (which two-three weeks ago I did not know existed :p). If someone know of better alternatives that provide the same level of functionality within the IFC ecosystem I would gladly change :)
I think it's better we gather all "use cases" and see which approaches, and which IFC classes and attributes are suitable
Personally, I think layers are good and even can become better
It's about a year I want to see some new features in BlenderBIM that opens doors to do "layer-based design" which is a normal approach in facade design
Any decent IFC viewer should be able to filter elements by any property. What do you need a layer property for? It has no meaning whatsoever. If it is a design option, simply make a "design option" property, if you need some elements to be hidden make a visibility property.
If you have different versions of the same element they should be representations.
If you want to send the model and force a particular view with a particular settings on the viewer can't you just send a bcf with it?
@JanF sort of. In theory the layer information (name / visibility / frozen / etc) could be turned into
Pset_CadLayer
and a bunch of the spec removed. There is one technical difference between the two solutions, which may or may not describe the logic that buildingSMART went through when they made this decision.In the pset solution, psets in IFC are assigned to elements, therefore an entire element can be assigned to one layer, but not more, as psets cannot be repeated.
In the dedicated assignment class solution (i.e. the way it is now), the assignment class actually does not reference an element. Instead, it references a representation, or a representation item. This has a few implications. The first is that theoretically you can assign a rep or rep item to more than one layer, which is not possible with psets. The second implication is that if you assign to a rep, you can have one context in one layer, and another context in another layer. E.g. the body geometry can be in a layer Foo and the clearance outline can be in a layer Bar. The third implication is that if you assign to a rep item, you can have one portion of the geometry in one layer, and another portion of the geometry in another layer. E.g. from a single Window element, the frame can be in one layer, and glazing in another.
All this highly granular layer assignment make a little more sense when you consider that unlike a pset solution, a dedicated class lets you reference a layer style. This includes line weights, stroke patterns, and so on. The obvious rebuttal is that the same thing can be achieved with materials and regular style assignments ... but ah well.
Personally, I'm with you. I don't want to use layers, and I don't like this overcomplicated assignment / layer style hierarchy. I thought I'd simply point out that there are technical differences between the two approaches. Also, most IFC viewers ignore layers, it's nice to have a FOSS one that supports it well, even if we don't use it to author files.
@JanF, Dion mentioned a simple example of layered-design:
For instance, Revit has limited support of layered walls, you can define wall layers, but it's really hard and time-consuming and even sometimes impossible to build complicated/composite wall layers, with its associated parts, like frames, bolts, ...
So, we need some layers, or planes, and also some reference (snapping) points in Blender and BlenderBIM to be able to build such walls that have patterns that those patterns repeat when we draw/put a wall from point A to point B
It's way harder than you may think, eg what happen arround windows / doors, for wood framed walls as sample, you must take account of openings to spread structural beams in credible fashion, things like that require another level than what blender native array is able to handle.
A "Rule" based entity like some kind of "Rail clone" probably will solve such issues, but as it require multiple entity interaction is pretty hard to implement properly.
@stephen_l some months ago we (you, Dion, and I) talked about this in the webchat, and you're right (especially about the rule-based notion)
Some months ago I had another idea, today I have another, because Blender is going to improve in some areas that are important to me, like "volumetric rendering", like OpenVDB, and also subdivision area, like OpenSubDiv
Soon we will focus more on OpenSubDiv which has the potential to open some new doors
@stephen_l just a question, Blender uses which scene graph method? Is it a custom scene graph/tree?
Latest version of BlenderBIM is discussed at BIMvoice:
Moult shows the use of IFC Debug feature for advanced inspection of IFC data. I learned that you can read IFC files like text and use the #number to inspect specific data within Blender. He also shows the IFC Object Material function, explaining the four different ways to set material properties. At the end Sverchok is used to filter an IFC for data using the IFC nodes. Nice video, helps understanding the use of the add-on a lot! Thanks!
Thanks for sharing @Meetlat! Credits go to @condur for helping produce the video! We will be releasing a new one every week. I think next week's one will be a back to basics.
BlenderBIM Add-on v0.0.201207 has been released with 50 new features and fixes. It's our built environment, help support the BlenderBIM Add-on: 100% free and open source software that lets you author and document BIM data fully to ISO standards. It's built by the AEC community, for the AEC community. Get it today: https://blenderbim.org/
Highlights include drastically improved material, geometry, and context IFC round-tripping, and stabilisation of the new material system.
Image credits go to the Opening Design Aalseth Residence team - available under CC BY-SA 4.0.
New features:
New fixes:
I guess I now rank as a collector!
If anybody is looking for old builds there is a link on the site, or here for convenience :) https://blenderbim.org/builds/
Hi, I'm brand new to BlenderBIM, I was trying to follow the HelloWorld tutorial from YouTube, got all the way through to the export part, I'm getting an error on export
"ValueError: Expected AggregateOfEntityInstance for attribute IfcMemberType.RepresentationMaps, got #99=IfcProductDefinitionShape($,$,(#91,#98))"
I don't know if I have the add-on installed correctly. Could someone offer some help please?
@Smarty23 that's an odd error. Which Hello World tutorial is it from YouTube? I see we're both online now, can you join the OSArch Live Chat (see link at top of the forum) and ping me on the chat, and let's screenshare using Jitsi Meet. Then I can help debug.
@Moult it's this Hello World Tutorial. https://youtube.com/watch?v=iD3v3eu2AjY&t=252s
@Smarty23 ah yes, that is a heavily outdated video. In future videos I do put up a warning screen in case the video gets out of date. Basically to fix it, instead of manually creating the aggregation collection, use the "aggregate" buttons in the scene properties.
BlenderBIM Add-on v0.0.210131 has been released with 110 (yes!) new features and fixes. It's our built environment, help support the BlenderBIM Add-on: 100% free and open source software that lets you author and document BIM data fully to ISO standards. It's built by the AEC community, for the AEC community. Get it today: https://blenderbim.org/
Image credits go to the Opening Design CTR team - available under CC BY-SA 4.0.
ZERO IFC data loss during import / export
The biggest impact to users include ZERO IFC data loss during imports and exports. If you've ever been concerned about losing data whenever you export from another "native" format or import into a "native" format with quirks and workarounds, worry no more. The BlenderBIM Add-on now uses IFC as a 100% native format. With the BlenderBIM Add-on you can edit IFCs and truly trust the quality and reliability of IFC data as a native format!
Twice as fast import times
Users will also experience much faster imports, where imports on average will be twice as fast. On some files which were affected by a presentation layer regression in the last release, they can be even 4 times faster to import. Also expect lighter Blender memory usage.
Blazing-fast export times
Users now no longer need to wait for exporting IFCs. Exporting IFCs is usually seen as a painful experience, but no more! The new version has blazing fast exports - for example a 350MB IFC can be exported in only 20 seconds!
Improved UI that adapts to your IFC version
When editing IFCs, you no longer need to be a guru who knows what's in the IFC spec when entering in data now. The BlenderBIM Add-on interface will adapt to the particular IFC version you are editing, and provide options like number sliders and dropdowns to make sure you fill out your BIM data correctly.
Partial IFC editing
Users no longer need to edit the whole IFC if you don't need to. The BlenderBIM Add-on now allows users to edit only portions of the IFC without affecting the rest of the IFC. You don't even need to import the entire IFC file if you don't want to. The BlenderBIM Add-on is one of the few IFC authoring tools that keeps track of ownership histories, so you can tell who edited what and when.
Whole new BCF-XML system
This new version also comes with a completely rewritten BCF-XML system, with full support for editing all aspects of BCF topics, comments, viewpoints, and more. IfcClash results also now export to BCF, so you can do clash detection and view results in other apps, or inspect issues in Blender.
The beginnings of a whole new system of 3D annotations
Although we didn't get around to the full TO-DO list of improvements we have in mind for 2D drawing generation, you'll discover a whole new set of 3D annotations which are in preparation for the new drawing system we'll be working on in future releases.
Laying the foundation for future updates
With 100% native IFC authoring, partial IFC editing, and full ownership and editing tracking, we're laying the foundation for a very exciting year ahead of Open Source and Free Software for the entire industry. Expect improvements in drawing generation, IFC-native parametric geometry editing, and even multi-user, cross-application simultaneous IFC authoring and collaboration. The future is bright. Join us and change the industry today at https://osarch.org!
A huge thank you to the rising number of community contributors who are helping code, test, translate, finance and make all of this possible for the entire industry.
See the next post for full change log.
New features:
New features (continued - yes, it's that long!)
New fixes:
This is exciting!! Congrats Dion, you people are really creating an awesome tool for the entire industry!!!
Amazing effort and result @Moult and anyone else who helped you! Thank you for your dedication and relentlessness!
Gamechanger.
Incredible achievement. Speechless.
@Moult thanks for your incredible works! Could you please give a link to the bmesh issue fixed in Blender? From which version is it applied?
@htlcnn https://developer.blender.org/T79369
Have tried to update it but I'm getting errors when I try to enable it. This is what I'm getting.
Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\Blender 2.91\2.91\scripts\modules\addon_utils.py", line 351, in enable
mod = import(module_name)
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim__init__.py", line 23, in
from .bim import *
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\bim__init__.py", line 47, in
modules[name] = importlib.import_module(f"blenderbim.bim.module.{name}")
File "C:\Program Files\Blender Foundation\Blender 2.91\2.91\python\lib\importlib__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\bim\module\bimtester__init__.py", line 2, in
from . import ui, prop, operator
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\bim\module\bimtester\operator.py", line 4, in
import bimtester.run
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\bimtester\run.py", line 1, in
import behave.formatter.pretty # Needed for pyinstaller to package it
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\behave__init__.py", line 20, in
from behave.step_registry import * # pylint: disable=wildcard-import
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\behave\step_registry.py", line 9, in
from behave.matchers import Match, get_matcher
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\behave\matchers.py", line 13, in
from parse_type import cfparse
File "C:\Users\carpgiane.dossantos\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\blenderbim\libs\site\packages\parse_type\cfparse.py", line 17, in
class Parser(parse.Parser):
AttributeError: module 'parse' has no attribute 'Parser'
@CarpgianeDS a few people have reported this but I haven't been able to replicate it yet. Can you please join the OSArch live chat and ping me? Hopefully with a screenshare I can finally figure out what it is.
@Moult I can do, though our IT department have strict admin privileges on our work stations. Have to jump into a meeting but I can ping in 30 mins time, if that's ok.