xBimTeam / XbimEssentials

A .NET library to work with data in the IFC format. This is the core component of the Xbim Toolkit
https://xbimteam.github.io/
Other
494 stars 173 forks source link

Windows, Doors, .. #557

Open fikoer99 opened 6 months ago

fikoer99 commented 6 months ago

Hello xBIM Team,

I didn't know where to ask my question, other than here. If this is the wrong place, excuse me.

Currently we are working with XBimEssentials to create buildings. We now want to change the default doors and windows to something more modern, with more details as well. In ALLPLAN I often used libraries and macros to import different window and door types, e..g for garages etc.. But how would that work in xBIM (Doing it programitcally)

This is from ALLPLAN: image

This is from xBIM Coding: image

Thanks for the help! Best regards, Fikret

martin1cerny commented 6 months ago

Hi @fikoer99 ,

thank you for using the Toolkit. You can use the Toolkit to import and place library components indeed. On the simplistic level you can use our model.InsertCopy() function which will take what we call 'data island' from one model and insert it in another.

IFC is not hierarchical but multidirectional graph, so this function implements an opinionated selection to draw the line around the data island. You may need to have a look at the code as it will copy over some entities you will probably not want as it is intended for slightly different scenario (isolating small testable data islands). Once you start bringing all the related objects, you easily end up with the complete model.

Also, while this is relatively straightforward for fixed-size models (like a chair, boiler etc.), you may want to apply some configuration (or parametric behaviour) to other kinds of elements (length of the pipe, width of the door etc.). You can use the Toolkit to modify the geometry, but it doesn't have any high level support for dimensional scripting etc. So, you may need to develop special libraries of IFC objects where your code will understand the parameters of the geometry so you can use the Toolkit to set the right values (mostly lengths and placements in general).

I'm happy to jump on a call if you wanted to discuss more about this interesting project.

fikoer99 commented 6 months ago

Hello @martin1cerny,

Thanks for the fast reponse and your help. I will investigate on the proposed solutions and try to implement it like that.

I would love to have a call with you. Where and when would you be available?

Best regards, Fikret

martin1cerny commented 6 months ago

You shall be able to book my time here.