Basic IFC2x3 model exported from Sketchup

JQLJQL
edited September 2020 in General

Hi everyone,

I decided to step back a little and stick with what I know for now. I know it might be out of scope for OSArch as Sketchup is not opensource and not free anymore (for commercial use at least).

I hope this topic is useful for someone in the same path as me. For me it might be the starting point for actual diving into a BIM workflow with the tool I work with. Maybe it will help others.

I'm using Sketchup 2020.

Sketchup has a native IFC 2x3 exporter, and a classifier tool with the IFC 2x3 schema built in.

It seems broken the native exporter is broken. It also seems we can use the IFC4 Schema if we want, but as the exporter is for IFC2x3 and broken it won't do any good.

The process I tried only worked using this plugin to export to IFC:

https://github.com/BIM-Tools/SketchUp-IFC-Manager/releases

The plugin is developed by Jan Brawer (Brewski whom I talked with a long time ago on Sketchucation), and has been trying, for ages to get to grips with BIM and Sketchup.

STRUCTURE
I started by structuring a very basic model as you would for an IFC file:
Project > Site > Building > Storey

The only Sketchup objects that can be used are components. Groups won't work. So the outliner must have a component for a project, with a nested component for the site, with the building inside, storeys inside the building, windows in the storeys and I guess it keeps going on on for every other element.

I'll keep investigating how it's better structured as windows are sometimes glued to walls and inside them in Sketchup, but I'm guessing that will not work.

CLASSIFICATION
You can use Sketchup Native classification and I found that the it is simplified in a streamlined way for architecture. You can click on the simplify button which complexifies the classification for other purposes besides architecture. I won't be doing that soon.

The classifications I used were:

  • IfcProject;
  • IfcSite;
  • IfcBuilding;
  • IfcBuildingStorey;
  • IfcWindow.

Jan's plugin has a classification tool too, which has something related to Layers and Materials in it, which I will try later.

EXPORT TO IFC
You have to export using Jan Brawer's plugin or your component's names will be forgotten.

In the end I've imported the IFC file to BlenderBIM and it seems nice:

It would be great if someone could chime in and tell me if this looks right or if there's something strange.

I'll keep on posting my experiments and will stick to sketchup for now, if you don't mind, until I can do more stuff with other software.

Best regards to all and thanks for your help so far.

João

«1

Comments

  • Visually it looks fine :) You might need to provide a file for some in-depth analysis, though.

  • Do you want the ifc or sketchup or both? IFC Attached

    Geometry is not fine. In sketchup there are gluable windows that create openings automatically. However that is only a visual effect and they do not really create geometry. It's an easy method for sketchup but it doesn't export the opening to IFC.

  • Looking through the code, it seems as though he's got a huge undertaking ahead of him! It's also good to know Ruby folks have a library they can use.

    You are correct about the geometry - it is missing an opening element. However, at the same time I'm seeing a double up in building storeys. I think this could be a bug in the BlenderBIM Add-on...

  • Do you think it would be interesting to get Jan on board? I could invite him here, see if he's interested.

    About the double up in storeys, you mean there are twice the stores there should be, or do you mean a double of the window?

  • Absolutely, bring Jan on board!

    The double up of storeys occurs in the BlenderBIM Add-on import. It could be totally my fault, I'll need to look deeper but haven't had the time.

  • As long as it's not my fault :P
    I'll invite him.

  • How Everyone, thanks for inviting me 😄.
    I also had some contact with Dion recently about my ifcJSON python converter.
    The SketchUp IFC manager is essentially 2 things, it tries to improve the IFC output from sketchup (especially classifications, like used in the bsDD) and tries to make the process of classifying for IFC objects simpler.
    But it's not a tool for making the modelling of BIM elements easier, like the bim-tools for sketchup that I did earlier
    I can take a look at converting cutting components into ifc openings, but I think the benefit is quite limited, because the cutting only works with flat faces, and a wall without volume will have limited value in IFC I'm afraid. Might be better if I would just add the hole in the mesh without including the opening element. I will check out the demo model!

  • JQLJQL
    edited September 2020

    Hi @brewsky and thanks for accepting the invitation. I'm really glad you're here.

    This model isn't good example for the hole conversion has it has no actually thickness of the walls.

    However I can make another one which would be similar to a real example of how these hole cutting components can be used and share it here along with the IFC file.

    It's nice sharing ideas with you again!

    All the best and thank you.

    João

    brewsky
  • @brewsky I think a wall without volume may be useful for early stage feasibility, topological analysis, energy analysis, structural surface members for structural analysis, and certain types of lighting analysis for glazed facades. It may certainly not be the body representation context, though :) Just some 2 cents!

  • @Moult said:
    @brewsky I think a wall without volume may be useful for early stage feasibility, topological analysis, energy analysis, structural surface members for structural analysis, and certain types of lighting analysis for glazed facades. It may certainly not be the body representation context, though :) Just some 2 cents!

    Yes, I agree!

  • A heads up that the bug where the spatial element would import twice if it has a representation assigned has now been fixed: https://github.com/IfcOpenShell/IfcOpenShell/commit/cbeaee8501bdc5492978671b01fd1e746aa7c8e5

  • @Moult said:
    It may certainly not be the body representation context, though :)

    What other options are there for BuildingElements, it seems like all have: RepresentationIdentifier : 'Body'
    Maybe surfacemodel instead of Brep, but that's still a body type...
    Or do I miss something? I'm interested in simple analytical mass models, but have never looked into the used object types. First thing I would use is IfcSpace, but would you just create a window or openingelement directly on the space without a seperate wall object present? That seems very usable for ladybug/honeybee for example.

  • @JQL I remodelled your CASA into a dutch WONING ;-)
    I added one additional level of classification, instead of just a mass for a storey I converted every face into a wall/slab/roof.
    I'm not sure if this is valid IFC, but I get no errors on the flat walls from KIT IFC checkingtool about that, but a roof without an assembly seems no valid "coordinationview".
    I added materials, and the Dutch NL-SfB classification as example.
    I also worked around the cutting component issue by cutting a real hole for now.
    But at least creating seperate entities for wall/roof/slab faces helps in the model structure, at work we also do a lot of mass modelling, but then we skip the windows altogether.

  • JQLJQL
    edited September 2020

    Hi @brewsky and @Moult and thanks for your continued input. It's helping a lot in my progress.

    I'm trying to figure out how much of my practice needs to change as actually, right now, even in construction documentation stage, my work is similar to the work performed at a conceptual stage, with massing studies. The only difference is accuracy and section detail.

    I'm wondering how much of that workflow is wrong if I'm making the move to OpenBIM and comply with IFC standards, and how much I have to change modelling processes.

    Basically, I have a working scheme where the façade is an envelope and the rooms are an interior volume. I actually build no walls at all, just a collection of boxes that represent rooms. The gap between them is the wall representation. I wonder if this would be possible and if it would be possible to create a regular IFC file using this model organization, without further work on modelling or separating walls from roof and slab. It would be ideal at least at an initial stage where building schematics are changing on interaction with stakeholders and this is pushing forward until construction documentation on my workflow. Here's basic model organization (each color is a different object):

    These rooms and façade, then get glueing/hole cutting components for openings, windows and doors (hole cutting components are not solid like in Blender, they can glue to a face and cut it, but cannot cut a solid):

    The external envelope with windows and doors:

    The internal room's object with doors and openings:

    It's like an extension of massing studies and it would also probably simplify studies like these:

    @Moult said:
    @brewsky I think a wall without volume may be useful for early stage feasibility, topological analysis, energy analysis, structural surface members for structural analysis, and certain types of lighting analysis for glazed facades. It may certainly not be the body representation context, though :) Just some 2 cents!

    We might include a full structured model based on solids, and MEP models if needed, though for MEP we usually stick to 2D plans on smaller buildings with small diameter piping and no HVAC systems.

    We then work with the external component and rooms and eventually add a section to detail the model for construction documentation. The section is a flat face auto generated by Sketchup but then we draw all details very fast (no hatching or colors for materials here, but that can also be done fast):

    We will fine tune the 3D model after detailing, so both detailing and 3d models match and the project is documented:

    So what we model is only the visible architectural faces which have a distance between them that represents the thickness of walls and slabs. In a real model the structural and MEP models would fit there (no clash detection for this kind of models):

    If I'm moving to IFC I'm having doubts on what can I keep from this workflow. Do you have any advice on what is the best thing to to do with:

    • Rooms - Can this logic be applied, and if so, these rooms should be individual boxes or could they be a collection of boxes?
    • External Envelope - This is a collection of facade outer surface, roof outer surface and eventually ground floor slab outer surface. There is no IFC entity for that, of course, but can I export it as a neutral IFC element and then, at later stages of the project, convert it into slabs and walls and foundation or slab? Does this sound reasonable?
    • Openings - I found an IFC opening object but I think my models might not be valid as they are a ring of faces (box with opposite faces erased) and I suppose IFC expects a solid. Is this right?

    I also don't know how to deal with Sketchup's:

    • Section Planes (I didn't find a Section Plane Object in IFC or something similar)
    • Section Faces with details (There is also no 2D section cut face, or detail description. The closest I got was annotation...);

    I'm attaching sketchup and ifc models for the case that you want to investigate this further.

    Thanks in advance.

    PS: @brewsky I'm going to check your model right now. Thanks

    psyborg
  • @brewsky I did check your model and understand that you split all basic building elements. Is there a way to avoid doing that or is it best practice for a final IFC model to split every wall member into a building element?

    I guess if the perimeter walls for floor 1 and floor 2 would be a single object, it would make more sense to me.

    I also would like to know if it would be allowed to have, inside IfcBuilding a single wall for all façades and for the floors I would only use slabs and interior walls. At least that way I can work on the façade walls with a modelling methodology of a massing study. It doesn't make much sense to me, conceptually, to be working on a façade split by floors.

    I mean, do we have some freedom in how we organize the model, or must it be always adhering to some standard?

  • In IFC there is a lot of freedom, it depends mostly on what you want to do with the exported IFC model. It's possible to directly add geometry to a building, but then also adding windows as decompositions mixes things up I think. What do you think @Moult ? Not labeling a window as an ifcwindow also seems like a missed opportunity. So one thing could be to create a single wall entity from all the wall faces. But somehow that also feels a bit weird.

  • JQLJQL
    edited September 2020

    I don't mind to have IfcWindow s and IfcStorey s inside IfcBbuilding.

    Where do you insert a IfcCurtainWall?

    Isn't it in the IfcBuilding too?

    Would it be sloppy?

    I just don't understand why a façade is different if it's a curtain wall. Facades are a single element of design, they are not a result of interior openings, they must be thought from both sides.

  • @brewsky Usually when you add geometry to an IfcBuilding directly, it is used as an entire building mass or footprint (e.g. for context analysis or urban scale analysis). I wouldn't "generate" it. I would let users explicitly set it.

    One example I've come across is that a local council requires a watertight facade model that they then 3D print into a physical context model of their jurisdiction. This is excellent to place in as the IfcBuilding representation.

    @JQL a facade is any wall with IsExternal set to true. A wall vs a curtain wall depends on the construction - a curtain wall is top hung, whereas regular walls aren't.

  • @Moult , so what you're saying is that the outer shell can be used as IfcBuilding and the inner shells as IfcSpaces?

    Which means that this is an abstract representation of a building that has no particular info on walls or roof?

    And that this abstract representation is good for energy analysis or similar analysis (I've seen models for structural analysis that are similar to the inner spaces geometry)?

    What about windows and doors? Can they reside inside IfcBuilding and IfcSpaces or do they have to be nested inside IfcStoreys?

    I will build a model like this and share it here.

  • @JQL you can indeed use an outer shell for an IfcBuilding. I'm not quite sure what you mean by inner shells, but indeed IfcSpace is meant to contain space volumes.

    This abstract representation may be good enough for analysis, but keep in mind that representation (i.e. geometry) is not enough. There needs to be relationships defined, such as space boundaries for energy analysis, or connections for structural analysis.

    For an energy analysis model, the windows are indeed usually represented as a hole, or subset of the polygon that represents the space. I don't think doors are usually highlighted in an energy analysis model.

  • @JQL said:
    Which means that this is an abstract representation of a building that has no particular info on walls or roof?
    And that this abstract representation is good for energy analysis or similar analysis (I've seen models for structural analysis that are similar to the inner spaces geometry)?

    For structural analysis you certainly need particular info like material and sections, otherwise it does not really make sense, other than the connection relationship as Dion said. Regarding the model one will need to consider the geometry of the structural elements, and here the concept of spaces is not really helping. It all depends on the structural system, for a reinforced concrete frame structure you can even go just with lines representing beams and columns, for timber walls or masonry you will have surface elements and any windows or doors shall be taken into account, and so on...

    JQL
  • JQLJQL
    edited September 2020

    Hi @Moult and @brewsky

    Inner shells was a bad term. It's the pack of inner rooms, that in Sketchup I don´t particularly like to separate into individual objects. It becomes a component with several boxes which are not separated into individual IfcSpaces. Later in the process, in a less conceptual stage it would be easy to split it into individual groups/components (Sketchup terminology for objects) and classify each as a separate IfcSpace.

    Which means my final sketchup model would be an IfcBuilding with IfcSpaces, IfcDoors, IfcWindows, IfcOpeningElement (which I believe it's the element that creates the opening on walls into each window/door fits) and no walls.

    This method allows me to create fast presentations and define all finishes at conceptual level very fast. Iteraction is easy and clients are happy. Once finished I could move the model into the next steps of the workflow, for which I'm exploring BlenderBIM and FreeCAD

    I would use energy and sound analysis tools for specifying energy/sound requirements for each space and outer shell.

    I would use structural analysis tools to predefine structural concepts to pass on to engineers.

    With the structural model and energy analysis and using topological with sverchok (if that will ever happen) and I was thinking I could process walls and window requirements in at least a semi automatic way based on the model that I could keep iterating in either Sketchup, FreeCAD or BlenderBIM.

    I need to understand where would I build final documentation, but I think BlenderBIM would be the central model, as I could still use it for texturing and rendering there and that is a part of the whole creative process we use.

    I think the following is more addressed @brewsky :

    I tried using the outer shell as IfcBuilding as @Moult suggested:

    My Sketchup model is organized like this:
    1 - IfcProject = 1x Ifc Site + A section cut face (surface generated by a section plane that I use to draw details on) classified as IfcAnnotationSurface (it's highlighted in the blender image)
    2 - IfcSite = Geometry for the Site + 1x IfcBuilding
    3 - IfcBuilding component = Geometry for the outer shell + 2x IfcWindow + 1x IfcDoor + 1x IfcStorey
    4 - IfcStorey = 1x IfcSpace
    5 - IfcSpace = geometry for the interior rooms + 1x IfcDoor + 4x IfcOpeningElement

    The resulting IFC export turned out like this:
    1 - IfcProject = Geometry for the site + 1x Ifc Site
    2 - IfcSite = Geometry for the outer shell + 1x IfcBuilding
    3 - IfcBuilding = Geometry for one window + 2x IfcBuildingStorey
    4 - 2x IfcStoreys = the rest of the geometry was spread all over the two storeys
    5 - There is neither IfcSpace nor IfcOpeningElement

    I think errors might derive from using IfcSpace and IfcOpeningElement and IfcAnnotationSurface that your plugin doesn't support.

    I don't even know if IfcAnnotationSurface would be adequate for this kind of geometry of a detail of the model.

    I also noticed that if I use your plugin to classify elements, the classification doesn't stick. I may be doing something wrong.

    Finally, there are transformation errors as seen on the image. They might be related to those Ifc classifications not being found.

    IFC and SKP files attached.
    .

    nikitron
  • @Jesusbill said:
    It all depends on the structural system, for a reinforced concrete frame structure you can even go just with lines representing beams and columns, for timber walls or masonry you will have surface elements and any windows or doors shall be taken into account, and so on...

    So, @Jesusbill , you'd recommend that I would create a specific structural model?

    That was, more or less, what I had in mind.

    Thanks for the info.

  • @JQL I'd say yes and it depends on the structural system you want to consider.
    If for example you considered Cross Laminated Timber Panels for walls and roof, what you already have could almost be ok; personally I would define the CLT panel planes in their actual centerline (so if no info on the wall layup is known the center plane?) and beams/lintels that go above openings to take the weight transferred from the roof.
    If you want to consider a reinforced concrete frame you can define a simple grid of columns and beams. In that case the wall infill is typically not taken into account as a structural material although its weight is considered in the calculations.

  • That is very useful info.

    I was imagining I could model a cell system by axis surfaces that split the building in rooms and floors then, I would define wich kind of structure to use and the software would extract the lines, or faces depending on the structure.

    Guess I'm thinking the same way as people that think Architect's work is just a push of a creativity button and a CAD button.

    Jesusbill
  • @JQL said:
    Guess I'm thinking the same way as people that think Architect's work is just a push of a creativity button and a CAD button.

    I think it is really useful to imagine like this how we want things to be, to choose what can be automated without loss, to help us do things that shouldn't be automated.

    Jesusbill
  • That's a great goal, however one thing is to expect others do develop those automation methods, the other is trying to develop them yourself.

    I'm not in the position to do either. I'm still learning and will eventually figure out a way to contribute at a later stage.

    Thanks!

    Opus
  • @JQL I think it's important to know that IFC can be used to describe an enormous amount of building elements, systems and relations. But in itself it's nothing but a file format that can potentially contain these things. The Sketchup plugin that I made is meant only to be able to export more of the data that's already available inside sketchup than the native IFC exporter does. There is nothing smart in it that creates any advanced IFC relations or alternative geometry representations. So when you do not model a wall, it will not be in the IFC model. It really depends on what you want to do with the model if that's a problem. I really like the efficient cell-approach that you use in sketchup. But I don't see a contractor that's used to recieve models in revit or archicad for example using the resulting IFC model. For that I think you somehow have to fill the voids between the spaces with walls. You might be able to "generate" those with a clever plugin (most information is indirectly available). This will be the same for analytical models. The geometry there will be simpler, for daylight (honeybee? :-D) the geometry of your internal cells could probably be re-used somehow, but it needs to be properly classified/filtered somehow.

  • I'm still very far away from a process where the voids are filled with walls or slabs, automatically. I have no problems around here because most contractors I deal with use 2d drawings. In the future I'm thinking topologic could be a good fit for the job of auto filling.

    @topologic is able to detect cells and make them speak with each other (or so it seems). However, to work with it, I have to be able to use a visual programming software that is based on python and hope that, topologic works with it one day (or I can make it work). I've been trying to get to grips with sverchok for Blender so I could eventually use it along with Ladybug tools and Topologic.

    It's all very interesting and it all has great potential, but until then I think I'll just deal with IFC by remodeling the SketchUp base file if I need to.

    Right now it seems my process is a continuous line from sketch to construction site. It's a pity but I'm feeling that a BIM workflow would be a massive change to it, I have to break my way of thinking in order to comply with it.

    I'll keep thinking on the subject and following development around here.

    Thanks for your support.

  • @JQL You're welcome 😄
    BlenderBIM and sverchok really do seem like a very cool combination for what you try to accomplish

Sign In or Register to comment.