Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an interface with IFC structural analysis model. #22

Open
lcpt opened this issue Mar 20, 2016 · 33 comments
Open

Add an interface with IFC structural analysis model. #22

lcpt opened this issue Mar 20, 2016 · 33 comments

Comments

@lcpt
Copy link
Collaborator

lcpt commented Mar 20, 2016

The IfcStructuralAnalysisModel is used to assemble all information needed to represent a structural analysis model. It encompasses certain general properties (such as analysis type), references to all contained structural members, structural supports or connecting members, the connection properties, as well as loads and the respective load results.

For a general description of BIM implications in structural analysis see: http://projekter.aau.dk/projekter/files/32688467/structural-modelling-and-analysis-using-bim-tools.pdf

Form a description of the IFC structural analysis model see: http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/ifcstructuralanalysisdomain/lexical/ifcstructuralanalysismodel.htm

@berndhahnebach
Copy link
Contributor

I have collected some informations and a few example files in this regard on https://github.com/berndhahnebach/Ifc_StructuralAnalysisView .

Have you started some development in this regard already?

@anaiortega

This comment has been minimized.

@berndhahnebach
Copy link
Contributor

berndhahnebach commented Oct 5, 2018

Ana you may posted this in the wrong issue. This is about ifc structural analysis view.

Have you done any development in the regard of ifc structural analysis view already? I may have an interesting project in this regard where xc could be very very useful.

bernd

@lcpt
Copy link
Collaborator Author

lcpt commented Oct 5, 2018

We have talked a lot, but we have not done anything yet.

We are very interested, but we thought that we'll need to extend the collaborator network to develop that.

Luis.

@berndhahnebach
Copy link
Contributor

berndhahnebach commented Oct 5, 2018

What where your conclusions? Develop an importer in C++ based on one of the opensource libraries around (for example ifcquery or ifcopenshell) or develop in Python based on IfcOpenShell or something totaly different?

As I have written, I'm involved in a project we gone try to do a proof of concept (POC) ot parametrically connect geometry to analysis. I will get mid faces and lines and load faces. The idea ist to connect this with XC. Thus I'm really interested in XC from project point of view ATM. The idea was to tranfer geometry with IFC structural analysis view. I have some experience with the IfcOpenShell Python API since Iuse the API inside FreeCAD quite a lot.

BTW: Personally I'm interested in the whole project XC, since it is a structural analysis software not for university but for engineers like me too :-) and of course because it uses Python and Python is just great!
BTW2: Since our software at work AxisVM exports to ifc structural analysis view it would be possible than to transfer geometry easily to XC and to get more used to work with XC.

bernd

@anaiortega
Copy link
Collaborator

As Luis wrote, we have not done any IFC development. The conversations he refers to date back a few months ago, when we were contacted by a software company that kindly invited us to include XC in a BIM server so that the program would gain in visibility.
https://bimserver.center/bim_store.asp?lang=0
Obviously, for that, it seemed vital to implement a good BIM import / export in XC. At that time we thought that the path to take was to make use of the development that had already been done for freeCAD.
Unfortunately, later we have been developing other capabilities that were more urgent for the work, so the time we have dedicated to the ifc is almost zero, it can be said that we are a little green on these issues.

I think, therefore, that it would be up to you to lead the project you are talking about and tell us where you would need our help.

Ana

@berndhahnebach
Copy link
Contributor

berndhahnebach commented Oct 8, 2018

thanks for the information. OK I may give it a try. But it will be in Python based on IfcOpenShell.

ATM I'm sturggeling to understand the geometry definition of XC ... https://github.com/anaiortega/XCmodels/blob/master/workingModel/model_gen.py#L26-L174 and to get some data out of XC see #33 (ATM my main interest is geometry or if this is not possible the mesh.)

bernd

@berndhahnebach
Copy link
Contributor

berndhahnebach commented Oct 8, 2018

I have remodeled workingExample in another structural analysis software, to be able play with ifc, but I even do not know if the geometry I have taken from model_gen of workingModel is the right one?

geometry solid

geom-ifc

geometry FEM

anlysis-ifc

with dimension

18103 mirgos_modell_test

@anaiortega
Copy link
Collaborator

It seems to me it's OK.

About your previous question (geometry definition in workingmodel script):

In XC you can do direct generation of the mesh (nodes, elements, ...) or generate geometry (points, lines, surfaces, volumes, ...) and mesh automatically.

The way it's done in the workingmodel script is the second one, but using some functions that camouflage a little the geometry generation. It's constructed by making a grid of hot points (defined by coordinates in lists xList, yList, zList) that we are going to use lately to generate lines, surfaces , ... The way we will refer to one of this points is by calling the index (i,j,k) that its (x,y,z) coordinates occupy in those lists. Sets of points are also selected by defining a range of index ((i_min,j_mim,k_min),(i_max,j_max,k_max)) that point to their ((x_min,y_mim,z_min),(x_max,y_max,z_max)) coordinates.

It is just one way to do it, the user can choose the one that suits him best. In any case, ideally you should group the entities in sets that contain geometric stuff (surfaces, lines, points) and its attached nodes and elements. In this script we have many of them: beamX, beamY, columnZ, foot, wall, decks, ...

You can have access to those elements by iterating in the corresponding get method. For example:
listOfSurfacesInSetDecks=[s for s in decks.getSurfaces] gives you the list of instances of xc.QuadSurface objects in the set decks

Anallogously there exists methods getLines, getNodes, getElements, ...

Ana

@berndhahnebach
Copy link
Contributor

got it. The only one left ATM for me is #33

@berndhahnebach
Copy link
Contributor

berndhahnebach commented Oct 8, 2018

is it possible to display the geometry group entries of workingModel without a fem mesh in a openGL window or to export them somehow tot dxf or whatever format?

@lcpt
Copy link
Collaborator Author

lcpt commented Oct 8, 2018

The geometry (points, lines surfaces...) is displayed by display_blocks.py...

@lcpt lcpt closed this as completed Oct 8, 2018
@lcpt lcpt reopened this Oct 8, 2018
@lcpt
Copy link
Collaborator Author

lcpt commented Oct 8, 2018

Wrong button. Sorry.

@berndhahnebach
Copy link
Contributor

The geometry (points, lines surfaces...) is displayed by display_blocks.py...

I can not find any display_blocks.py in anas examples?

@lcpt
Copy link
Collaborator Author

lcpt commented Oct 9, 2018

display_blocks.py

@ebrahimraeyat
Copy link
Contributor

Hi, I know this is an old issue, but I want to know what is going in this regard? Thanks

@lcpt
Copy link
Collaborator Author

lcpt commented Dec 24, 2020

I'm working on it. I think I'll have some experimental models in the next weeks.

@ebrahimraeyat
Copy link
Contributor

I'm working on it. I think I'll have some experimental models in the next weeks.

I am very interested in. CSI ETABS has capability to export model in IFC format.
Thank

@lcpt
Copy link
Collaborator Author

lcpt commented Dec 29, 2020

Hi.

I've added two tiny tests here that use FreeCAD to import block topology entities (points and surfaces for the moment).

@ebrahimraeyat
Copy link
Contributor

Thanks, @lcpt. I will look them soon. How did you make two FreeCAD files? Directly in FreeCAD or importing the IFC files to FreeCAD?

@lcpt
Copy link
Collaborator Author

lcpt commented Dec 30, 2020

I've created the files in FreeCAD with the sole purpose of testing reading IFC metadata. It's only a beginning.

@ebrahimraeyat
Copy link
Contributor

Thanks, @lcpt. What is your opinion about to use ifcopenshell for reading the data? This way we can make the IFC file in whatever software that support IFC export.

@lcpt
Copy link
Collaborator Author

lcpt commented Jan 4, 2021

If we use directly ifcopenshell to import the data, we have no opportunity to modify/adapt the model if needed. Using FreeCAD (that uses ifcopenshell too) you can export the IFC using whatever software you want, then import it to FreeCAD and then, use the FreeCAD module to import the model geometry into XC (as is or modified at your will). I think the second approach is better.

@ebrahimraeyat
Copy link
Contributor

I said this for 2 reason:
1- as I know FreeCAD IFC import can not import loads, boundary conditions etc, it only imports the geometry
2- imagine that a user create the model in Revit, why he/she must open it in FreeCAD again? It adds more to the dependencies of software.
Thanks.

@lcpt
Copy link
Collaborator Author

lcpt commented Jan 7, 2021

Well...

The development of XC is driven by our own needs as a small structural engineering practice. We can't afford to develop things that we can't use in our daily work. Moreover, our resources are limited, so we need to reuse already existing developments as much as possible. That being said, we are delighted to share our work with the structural engineering community and to encourage others to modify or enhance our tools to fit their needs.

Apart from that, the use of a FreeCAD model allow us to introduce a workaround if needed (IfcStructuralAnalysisModel is not perfect).

About the reasons you mention in your comment:

  1. Maybe this can be an opportunity to collaborate with the FreeCAD community to enhance its IFC<->FreeCAD interface.
  2. Because it's the work I can share with her/him, if she/he doesn't like it she/he can buy a Robot or Sofistik or SCIA license or hire us to develop the interface you propose.

@ebrahimraeyat
Copy link
Contributor

Thanks, @lcpt. I said this because FreeCAD internally use ifcopenshell for importing and exporting to IFC. I am comfortable with FreeCAD, but I said this for future development that may be involved more developer.
Thanks.

@lcpt
Copy link
Collaborator Author

lcpt commented Jan 7, 2021

Yes, I know. I do not deny that my approach is a bit of a "workaround" to make things work with XC as it is, but I think that this can work reasonably fast, and it can serve as a proof of concept for a more elaborate procedure.

FreeCAD IFC (sort of) model

XC FE model

@ebrahimraeyat
Copy link
Contributor

It is fantastic. Thank you so much.

@ebrahimraeyat
Copy link
Contributor

Hi @berndhahnebach , @lcpt.
is somethings going in this regard? Thanks

@lcpt
Copy link
Collaborator Author

lcpt commented Mar 16, 2023

Hi @ebrahimraeyat.

Not much :(. You can find an example that uses some IFC features through FreeCAD here.

@ebrahimraeyat
Copy link
Contributor

I we use directly ifcopenshell to import the data we have no opportunity to modify/adapt the model if needed. If you use FreeCAD (that uses ifcopenshell too) you can make the IFC in whatever software you want, then import it to FreeCAD and then use the FreeCAD module to import the model geometry into XC (as is or modified at your will). I think the second approach is better.

@yorikvanhavre is extensively works on IFC in FreeCAD. it is very exciting. Is there any structural references for IFC? I am very interested on it.

Native-IFC

@yorikvanhavre
Copy link

Yes, there is an extensive structure in IFC for structural, "wireframe" elements.. you can define members, nodes, and if I remember well even load situations. http://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcstructuralanalysisdomain/lexical/ifcstructuralanalysismodel.htm

@ebrahimraeyat
Copy link
Contributor

Yes, there is an extensive structure in IFC for structural, "wireframe" elements.. you can define members, nodes, and if I remember well even load situations. http://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcstructuralanalysisdomain/lexical/ifcstructuralanalysismodel.htm

Thanks, I will look them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants