Sure, how about 17:00 utc?
Sure, how about 17:00 utc?
I apologise for being so late to this discussion, but I wanted to take a step back on how development has evolved, a sort of "there and back again", if that makes sense.
The BlenderBIM Add-on started as a way to export Blender data into IFC. You'd model whatever you wanted using the rules of Blender (modifiers, sculpting, whatever, and nowadays, geometry nodes), and press the export button, and voila, you'd get an IFC.
Although this gives you unlimited freedom to use the full capabilities of Blender, there are many problems with this approach. Ignoring speed, scalability, and code maintenance, the issue is that BIM is not just about you in Blender, it's about modeling in a way that is compatible with all disciplines, not just geometric.
Let's say you modeled a wall using a solidify modifier, thus having a single edge running along the base of the wall as it turned corners around a room. Imagine that wall is arrayed up each floor of a multistorey building. How would a quantity surveyor deal with this? If you didn't have a custom quantification script to provide the net side area, how would a surveyor calculate that in a standardised way? What if only one of those wall portions were structural? How would a structural engineer associate their analytical model with just a portion of that wall? Does the axis of your wall align with the structural axis required for analysis? What about building energy modeling? Is your wall adjacent to the same energy zone types throughout the entirety of its extrusion? What about construction sequencing, how is that wall divided per floor for time data? What about life cycle analysis? Is the Blender material definition of that wall really sufficient to connect to a life cycle graph in a standardised manner? What if a drawing needed to be generated? Is the mesh efficient for boolean operations? What about multi-user editing? Facility management? Linking sensors? MEP systems? (I know, it's a wall, so probably not too related, but you get the idea)
This is not a simple problem and often underestimated in our industry. Building a "draw wall" tool is relatively simple. Ensuring it follows certain rules designed to be compatible with all disciplines is much harder.
To solve this, the BlenderBIM Add-on was designed to work natively in IFC. Blender was no longer a modeling tool, it was simply an interface through which you could perform authoring actions that were allowed by the IFC schema. This meant that the add-on could now handle a lot of disciplines to a great level of detail that was never seen before in the industry. However, it also meant that all the freedom of "I can use all of Blender's features" were lost. Even the basics, like the ability to press "Undo" in Blender had to be redesigned. To create a wall, we first needed to build everything else under the hood.
Slowly, IFC's modeling capabilities have been reintroduced one by one into the Blender interface, so slowly we are being able to address the so-called basic modeling tools again. IFC offers a few modeling capabilities that cover the vast majority of modeling tasks, like:
Material layer sets. This allows a prismatic extrusion of material layers. This is similar to how you'd use Blender's solidify modifier, but of course, it's semantically meaningful with layered material definitions. Anytime you're doing walls, slabs, and coverings, this is probably your go-to option.
Material profile sets. This allows a (potentially parametric) profiled extrusion along a path. This is how you might use Blender's beveled curve modeling technique, but of course, it comes out of the box with a ton of parametric standardised construction industry profiles. Any structural modeling like beams, columns, members, foundations, should all probably use this.
Type instances. This allows you to designate a single object as being a construction type, then having many instances of that type. Changes to the geometry of the type will propagate to all instances. Similarly, if you change the layer thickness of a material layer, all instances will also have their thicknesses updated. Same with profiles. This should be used pretty much everywhere, from wall types, door types, furniture types, equipment, etc.
Openings and voids. This allows you to void things, similar to how you'd use the Blender boolean modifier, but it is semantically meaningful, so that fabricators and construction sequencers and quantity surveyors know it is a void.
Fills. This allows you to say that an opening is filled by an object. Potentially the opening is related to the size of the filling object, or certain properties are inherited from the opening.
Aggregations. This allows you to nominate that objects are part of a bigger object. This is potentially similar to how Blender's collections work. Our support for this is still a bit incomplete unfortunately.
(No support yet) Parametric door shapes. Instead of manually modeling a door, a door is defined out of parameters.
(No support yet) Parametric window shapes. Instead of manually modeling a window, a window is defined out of parameters.
(No support yet) Parametric stair shapes. Instead of manually modeling a stair, a stair is defined out of parameters.
(No support yet) Half space voids. This allows you to nominate that an object is cut at a plane. Very useful for trimming walls up to a roof line, mitering structural details.
(No support yet) Void features. Good for punching out holes and stuff in structural modeling.
(No support yet) Connection relationships. Good for saying this separate object is connected to another, so they move together, stretch appropriately, or can have structural connections suggested, or material layer junctions detailed.
(No support yet) A whole suite of non-mesh geometry types which I hope to include in the future when people are modeling certain things like spheres, arcs, or even now rail alignment curves.
(Almost zero support) MEP segments vs fittings. This allows you to nominate the cross sections of MEP (ducts, pipes, trays, cables) segments and distinguish between what can be straight as a segment compared to what allows a direction change / split such as a fitting.
(Almost zero support) Distribution ports. This allows you to distinguish whether or not two objects can connect to one another.
Probably more, but this is off the top of my head.
Notice there are things which don't exist in IFC (yet) like arrays, and mirroring (well, kinda, yes, but not the way you think), and group instances. So it's certainly not a perfect system.
So instead of taking the approach of "what are all the Blender features I can use", perhaps start with "is there a preferred BIM modeling technique that allows data to be structured across all disciplines?".
If you choose not to use the IFC modeling tools, you have two choices. Either model something manually as you have, but then its your responsibility to make it play nice with all the other disciplines. Alternatively, model something using modifiers / nodes / scripts / whatever, but then in addition to adding all the data yourself, the parametric behaviour will only ever exist in your Blend file. Once you lose your Blend file, that parametric goodness is lost.
I hope that sheds a little insight.
@Moult Thanks alot for this insight into the BlenderBim story. Glad to hear that you are slowly bringing back the modelling and designing capabilities!> @Moult said:
If you choose not to use the IFC modeling tools, you have two choices. Either model something manually as you have, but then its your responsibility to make it play nice with all the other disciplines. Alternatively, model something using modifiers / nodes / scripts / whatever, but then in addition to adding all the data yourself, the parametric behaviour will only ever exist in your Blend file. Once you lose your Blend file, that parametric goodness is lost.
I think that having multiple choices is the right approach because the design process is structured into multiplle parts. The first part is always the concept design which i think Blender can really have a strong point. Then you have the other stages where things go much closer to construction documentation specialities. Of course there i always a back and forth between and the process is not linear.
I am already suprised that you can already assign an IFC class to any mesh very easy and then can create floorplans and sections
Now how you keep the parametric BIM capabilities during this dynamic process its the real issue and challenge i suppose and all the other BIM softwares have their own methods some better than others.
In my view however i think taking advantage of all Blender strengths and features is crucial and Blender Bim cannot just be an authoring tool if it wants to be largely adopted.
I am using Blender for a couple of months and i think si so powerfull that you can almost find a way to solve most of these issues, especially through its object data system and constraints, not to metion scripting.
The real challenge is automating this process and i`v seen this has been discussed already.
Going back to the tutorial and learning aspect I really want to suggest something else which i am suprised it did not happen yet : creating a community Discord channel. I am also new to Discord but my learning process would have never been the same if i wasnt there for example in the Blender Community channel.
Another aspect is that i wish that YouTube would be the main video sharing platform for these tutorials or tips. I find it difficult to find the videos that have been already uploaded here and hosted on other servers.
I dont want to undermine the value of OSarch Community website but i believe a live chatting presence in Discord for BlenderBim and Blender users is essential as its popularity is really huge. By the way, Blender CAD Sketcher is already there and its been super usefull.
@dimitar said:
Wondering, what is the way to add doors and windows? And can they remain associative such that if a wall is moved the doors and windows follow? I've looked through most of the info in the wiki and elsewhere, but still find lack of info about doors and windows.
Another question - how does one define spaces? Are they manual at the moment?
I`v been asking the same thing and i havent really tested yet with BlenderBim but using Blender native constraints you can achieve something like that using parenting and other constrants. For example one feature that i like in Archicad is when you add a window or a door it will be constraint to the wall surface and can only move on the plane of the wall. I tested something like that really fast in Blender and had an object be constraint to a curve from which you extrude a wall. If the window or the void is child of the curve or the extrusion and is also constraint to the curve with Track To or something similar, then it will perform exactly like that.
The biggest challenge is however to automate some of these processes because it can become reallly tedious.
Working on a library of these kind of objects and having them as Assets is also one way. But these should be recognized by BlenderBim too.
So the Asset feature of Blender should work nicely with BlenderBim. Is this possible already?
@Constantinesis said:
Now how you keep the parametric BIM capabilities during this dynamic process its the real issue and challenge i suppose and all the other BIM softwares have their own methods some better than others.
It is definitely planned to allow arbitrary parametric (modifiers / nodes / scripts / whatever) behaviour in the future. I completely understand where you're coming from - I have a background in Blender modeling, so I certainly know which tools I'm missing :) Arrays are definitely on the top of the list. However, this is not something we are doing alone, so it takes a bit of time to settle on a system that works.For example, we'd very much like not just Blender intelligence to be supported, but FreeCAD too, or OpenSCAD, or IFC.JS, etc. So yes, it's on the roadmap, but it's not something to rush into. The current proposed strategy is to record an optional "parametric engine" behind an object, so that an authoring app that can recognise the identifier of an engine can connect to the parametric system used to generate the object (both geometry and data). This way someone can build a "parametric engine" that say supports the Blender modifier stack (or a subset of it), and knows how to accommodate things like quantity take-off, or realignment of structural coordinate systems, or generation of accompanying 2D symbols, etc.
@Constantinesis said:
... creating a community Discord channel ... Another aspect is that i wish that YouTube would be the main video sharing platform for these tutorials or tips.
I'd recommend https://osarch.org/chat - it supports both Matrix and IRC, both of which are mature open source live chatting technologies. There are typically 30-40 people online. I highly recommend joining :) As for YouTube / Peertube, we can certainly do a lot better. Do you have time to help?
@Constantinesis said:
If i apply an existing wall style to a custom geometry with modifiers (like in the video) will it react with the window, doors openings interact with other BlenderBim functions and tools?
To an extent. You can create a wall using whatever (e.g. arbitrary mesh) and you can insert a window / door using the BlenderBIM functions and it'll "just work" assuming the wall is along the local X axis, as that is the rule in IFC. In the future, with more developers, we can make these assumptions less restrictive. And of course, as mentioned before you'll lose the parametric data until we build support for parametric engines, but at least the tools will work. Here's an example:
I understand that i need to assign a custom 2d symbol for any custom doors and windows.
In Blender, an object can only have one geometric data (e.g. mesh / curve). In IFC, there are usually many. Each geometry belongs to a "context" determining the purpose of that geometry (e.g. 3D shape, 2D symbol, analytical curve, etc). You can check the contexts available in Scene Properties > IFC Geometry > IFC Geometric Representation Contexts. On a fresh project, we create the most useful ones out of the box for you by default. Then, each you can add a new geometry to an object for a context by going to Object Properties > IFC Geometry > IFC Representations. You can switch between representations there too. The doors and windows that come with the demo library give a good example of this.
@Constantinesis said:
Actually i am confused because i saw there is a real time section cut shader and viewer but in the same time you also have the SVG export. I prefer the real-time section view of the model. Can that be used for horizontal sections (floorplans)?
The real time section cut is a shader trick that is fast, but not a true boolean. It is good enough for a live preview, but not good enough for professional construction documentation. The SVG-based drawing system is a true construction documentation system, including foreground, background, semantic metadata, sheets and drawing references, object based annotation, and more. That said, it makes sense to at least trigger the temporary section cut when previewing a drawing, so I'll add that to the roadmap.
I have also just discovered Measure It Arch, another free plugin, really amazing for associative dimensioning, annotations but also line style representations. I saw there is an interest for Blender Bim and Measure IT arch to work together
The BlenderBIM Add-on already has integration with the MeasureIt Arch Add-on. However, MeasureIt Arch is not an IFC native system, so drawings only ever exist in Blender. Drawings are also a bit more than just dimensions, which include element filtering, metadata-based styles, and drawing references, so the integration is pretty limited. Last I checked MeasureIt was focusing on dimensions, which is great, but doesn't satisfy our needs. The SVG-based drawing system in the BlenderBIM Add-on is native IFC, so drawings exist in IFC and can be interoperable in other apps like FreeCAD, IFC.JS, etc. It also means you can generate drawings from non Blender-produced IFCs, or headlessly on a server for larger projects with hundreds of drawings. Object associative dimensioning is supported, but geometry associative dimension is not yet supported. Line styles and text styles is supported but needs a lot of work. You can read more here: https://github.com/IfcOpenShell/IfcOpenShell/issues/1153
My most important question is, if i assign a class to a custom mesh, will it be correctly represented in floorplan and section drawings?
Manifold geometry will be, yes.
What does Type mean in this context? Is it a higher category than of the Class? I mean do i need to also assign a Type to the custom mesh, together with a class? What about the Layer thicknes associated with the type? WIl it the instances change if i update its layer thickness ?
You don't need a type, but it is highly recommended. In construction, most objects belong to a construction type. Like wall types, door types, furniture catalogue types, duct size types, and so on. When a project moves past early geometric exploration, you can create construction type objects. This is like an asset library that you can insert. So when you create a wall type, all walls of that type will share its thickness and material properties. Updating the thickness will propagate to all occurrences of that type if the wall type is defined with a parametric thickness.
Is there a way i can have a 2d camera view interactively showing the section cuts? It would also be nice to see the generated drawing inside Blender. I can see the Temporary section cutaways but its without any CAD symbol styles.
When the temporary section cutaway feature integrates with the viewport drawing annotations in the future, this'll probably be want you're after. Not yet though.
The path in the link is no longer correct though, it seems to be under blenderbim\bim\data\styles now. Yes, you can edit the css and svg files and change the appearance in any way you like, that's the idea. Why the directories are no longer exposed in the UI I don't know. @Moult ?
It is now available in the add-on settings to prevent accidental changing in the project properties and prevent confusion with IFC project properties vs local data directories.
If you understand svg you can just add the code for your symbol into the right svg file. I don't think there is a way to draw it graphically and save as svg in inkscape or illustrator, so that blenderbim will understand it.
You can use Inkscape to draw these (in fact, I used LibreCAD DXFs converted into SVGs in Inkscape to create them - imagine drawing a concrete hatch just using code, impossible!). Then, you can copy and paste the SVG code into the supplied SVG template files. markers.svg includes marker designs like arrowheads for dimensioning. patterns.svg includes hatching patterns. symbols.svg includes standalone symbols like annotation tag bubbles, rectangle material tags, hexagonal window tags, etc. Then there are templates for titleblocks and so on. When you create these, just keep a very close eye out for the dimensions used as real world millimeters are used for everything, including pen thicknesses.
Wondering, what is the way to add doors and windows? And can they remain associative such that if a wall is moved the doors and windows follow? I've looked through most of the info in the wiki and elsewhere, but still find lack of info about doors and windows.
Doors and windows work like any other asset. Activate the BIM tool (green cube in viewport), choose your door or window type, and click on a wall. Then with the wall selected, position the 3D cursor (shift RMB) where you want the door to be and add the door / window (Shift-A).
Another question - how does one define spaces? Are they manual at the moment?
Yes :( Draw them manually, then treat like any other spatial element (building, storey, etc).
How about we host a unilateral screenshare May 5th, at 20:00 utc.
I won't be able to join but this is an excellent initiative and I hope my writeup helps for the moment.
@theoryshaw that time works for me!
@Moult - You are completely correct that array tools and others make it hard to schedule properties correctly. This is also an issue that I've had to work around in Freecad with formula-based calculations of array properties. It depens though, on the intended use of the model.
However I am still left with questions:
Is BlenderBIM a really fast IFC viewer/analyzer/clash detection tool/FM tool/etc and/or also a design tool? If it is also a design tool, then what is the best way to use it? I know there are tons of ways to use BlenderBIM, but showing a few examples (i know that there are some, although already dated?) and a small description of use cases would go a long way for further adoption.
I am always exploring the best way to do basic BIM architecture - easy way to place and manipulate walls; associative floor levels, doors, windows, and spaces; auto or semi-auto floor slabs and ceilings; scheduling; and documentation. Beyond the basics further advanced features that are super useful to have are an easy collaboration workflow between multiple users and platforms, parametric objects like stairs and curtain walls, and an easy way to work with components like furniture and plumbing (LODs, embedded plan and elevation representations), and documentation automation tools. I usually work on the other side of the architectural spectrum, dealing with quite complex and large massings, but the basics above are what most architects (including myself) spend most of the time with. Do you and the community think this type of functionality would fall well within the spectrum of what BlenderBIM has to offer? Or maybe it already offers a lot of that and I've failed to understand well. I did watch the session on youtube where the wall tools already seem to offer most important features.
I would like to suggest showing a few ways to use BlenderBIM over. maybe good to place on blenderbim.org. For example there can be sections to show each of the following with an overview of best uses:
BlenderBIM for architects & designers
General info
Design geometry with native IFC via BlenderBIM with wall tools and dynamic opening tools.
Convert Blender geometry into IFC
Small scale
Medium and Large scale
Design facades?
See holistic view of all imports?
Renovations
BlenderBIM for engineers
General info
Profile based elements and clash detection?
*Steel profiles
*pipes?
*framing?
*rebar?
BlenderBIM for project managers
*3D coordination
*comments?
*clash detection
*Quantity Takeoff
BlenderBIM for contractors
The one place where all building information can be collected and viewed
*Schedule of materials
*4d? timelines?
BlenderBIM for owners and FMs
MEP controls
Awaraness of all elements and sizes for maintenance, repairs, and renovations
BlenderBIM for consulants
Anyone else?
Your suggestions sound great @dimitar and I'd love to showcase those workflows and I'm always surprised by innovative uses of the BlenderBIM Add-on I see in the wild that sometimes never are shown here. I lack the time though, but I'd really appreciate help in sharing what can be done so far as a poweruser (very much like what @theoryshaw has been doing exceptionally wall). Perhaps some video share sessions can help answer questions more effectively, and you can help spread the knowledge whilst I continue to chip away slowly at the endless coding todo list.
@Moult @duncan maybe we start a new thread and have the last few posts moved there. I finally managed to create a wiki login. I've tried multiple times before never worked. I propose to add a section at https://wiki.osarch.org/index.php?title=BlenderBIM_Add-on after Features, called Use Cases, where we can start plugging in the info started. Ideally, later, that info should make its way to the blenderbim.org site as well.
Also, are the Features at the wiki still current?
Sounds good. Let's shoot for May 5th at 17:00 UTC.
Here's a ICS calendar invite for it.
Also, it might or might not help, but in the following chat rooms, we're in the trenches teasing out BB workflows around a specific project.
https://app.element.io/#/room%2F%23OD_Workflow_Discussions%3Amatrix.org
https://app.element.io/#/room%2F%23101_W_33rd_St%3Amatrix.org
Files located here: https://gitlab.com/openingdesign/101_W_33rd_St/-/tree/main/Models%20and%20CAD/IFC
In short, we modeling large scale details in BB and FreeCAD, and annotating (w/ intelligent ifcmaterial tagging) them in Revit.
@dimitar @Moult @theoryshaw
I see three topics emerging here
I suggest Dions post be made into an article for the front page and pushed on our social media ... yeah, so it's Friday evening and I was feeling enthusiastic so for anyone with admin or editor rights to the WordPress site here's a link to check the news piece before it goes live @Moult please give a thumbs up if you 'approve of this message' and I'll make it live.
@dimitar and others I suggest important comments/ideas about docs be copied/moved/continued in this thread where I also started a similar discussion on docs a while back and have shared some thoughts.
I just had a quick chat with @theoryshaw and we agree that it would be great to restart the BlenderBIM - Expert knowledge exchange idea @vpajic started which needs a bit more help to move forward. That discussion will hopefully move there.
This might mean this discussion can back away from these broader issues which can continue in other discussions.
What was the topic anyway? Oh yeah, BlenderBIM - How do I start? Enjoy the continued discussion without more of my administrative interruptions :-)
Just an FYI, that ICS i posted has the incorrect jitsi meeting ID. It has since been corrected.
It's https://meet.jit.si/osarch for future reference.
Login or Register to reply.