Dear IFC developers, dear buildingsmart and to whom it may concern.
I am a C# | .NET programmer for 3d | cad program for Pipelines (Sewage | Drainage | Water Supply) etc. We have own 3d | cad | graphics format, but out program cannot save to other file formats, and also cannot get information from filetypes which are not developed by us.
So, as there is growing demand for interoperability, and users of our program want to be able to save | export Pipelines etc to IFC (and probably to open it later in Civil3d) - I am asked to make export module - to save to IFC.
We 've got some data similar to databases | tables with variables and their content, and that is to be saved to IFC.
I started to learn what is IFC. So I found out that it is developed by buildingSMART (formerly the International Alliance for Interoperability, IAI). So I found your website, and started to make kind of research. We need to make a program | module | library in C# programming language, and it should be able to save our file format - to ifc (mostly and first of all, as beginning we want to be able to export pipelines to Civil3d).
I started to google for C# code for IFC, there are some libraries in NuGet in Visual Studio. And on your site of buildingsmart I found a list of over 400 programs to work with IFC. But first with them is that most of them seems to be closed-source. Even though IFC is said to be open itself, free inter-exchange format between different cad | 3d | vector graphics programs, still it looks like each program which works with IFC supports its features not as good as it is expected. I tried to make IFC files from some cad programs, and found out that generated IFC files are not clear, not intuitively understood. So, my efforts to write a little program to just save a simple pipe (like that in ArchiCad - I took its coordinates - ifcCartesianPoints and ifcPolyLoops) - to IFC is at present unsuccessful.
I faced a problem that there are so many different fields in IFC file. Even to generate simple empty file - something like “HelloIFC” (similar to “Hello, world” program in programming languages world) - came out to be uneasy task. It seems that cad | vector | 3d programs which generate IFC files are putting there some information which seems to be not critical for important core data like coordinates and lines. On other hand, some data for unclear reasons is enciphered | encoded in some way so that I cannot find out how it is at all saved into IFC. Maybe such 3d | vector programs are not even compatible fully with IFC to save even simple 2d-lines etc to IFC files.
So I am having a question about what is IFC-certification? Do we require to pass special IFC-certification program? Do we require some special certificate to be sure that our program is doing what is required by users…? So, what do I need to do to get IFC certificate? Should I learn, study on special IFC courses which are there inside buildingSMART? Do you have in buildingSMART any courses, any lessons - especially for programmers, to be able to develop software in any language (we need now just C#), and make it faster, and without head-aches struggling hard to find out what means what in those lines inside IFC?
I think that ideally there is expected to be some official tool from buildingSMART itself, open-source, written in c# or | and in other most popular programming languages, well-documented, and also with examples, compiled code, maybe some github - freely downloadable repository for everyone who wants to use this free IFC file format - to be able to make it as fast as possible.
But unfortunately, as I can see, even within those over 400 programs | tools | sites to which buildingSMART gives links to - there seems to be only very few tools with open-source code. And even if there are such tools, they seem to be not complete, not full, not possible to compile them and having other problems, making it hard or even impossible to use such repositories present on buildingSMART’s over 400 links list…
This is sad, and forced me to think to write to you.
So, in short, minimum demanded IFC features which we require most of all - is ability to generate some empty blank ifc-file (with those maybe around 100 or so lines with some settings etc), and then also to be able to write data - like Pipelines (Sewage | Drainage | Water Supply).
This is very strange that IFC file cannot be opened or viewed | imported into viewer | editor, if it doesn’t has those extra information. If minimum set of data is cartesian points and lines which connect these points together, then what is the need of all those other properties | variables in the ifc file? it seems like most of those other properties are not used much, but it is strange that they are required, demanded by some cad | 3d | vector programs. It is like adding some extra information to make more encrypted, encoded etc - to be protected against someone. But if this file format is free, then why use encoded parts of text in ifc file?
Please, kindly guide us to make first steps to be able to record, save, export to simplest ifc files with pipes. where to find any manuals for programmers to be able to do such ifc exporter | importer, reader | writer etc?
If we try to make | open big file with size of 1Megabyte or more - there are thousands of lines, and we probably need some tool which is already written in c# to make this exporting to ifc possible, at least export to IFC we need.
Maybe if such source code is not available for free - then we can offer to buy it. Just tell us what options we do have to buy source code in c# to export pipelines or maybe any other objects. We need some reliable tool to test | verify | check generated IFC files to be sure that they are properly created and I believe such checkers can be best done, made by buildingSMART itself… Is buildingSMART a group of companies who develop IFC, and at same time such companies are making commercial tools for vector | 3d | cad graphics, and is it thus so that for this very reason, even tools for this ifc format are not freely available (especially in open-source)?
We have to ask you, buildingSMART, to let us know if there are special parts of your website which are protected only for registered users, who are probably members of buildingSMART, and who thus can access special protected parts of site like documentation for programmers etc? Also, if we speak about IFC standard itself, I want to know what is IFC ISO document which is also sold (there is link on | from you site buildingSMART) on your site? is it different from the files which are at present freely available on your website even for anonymous users | guests?
We found some example to make a wall in IFC, but even link to file from this document - on buildingsmart tech site - is not opening - it says that such file don’t exist. Does it mean that it doesn’t exist only for those who are not registered? Or it is permanently removed? So we need something like this pdf for a wall, but for Pipelines (Sewage | Drainage | Water Supply) etc. And I have no idea how to begin with, from what to make even small file with a simplest smallest pipe, and be able to generate such IFC file properly, so it is opened well in any 3d | vector | graphics programs which is supporting ifc files…
Well, ideally we want to be able to export any other kinds of object to ifc - roads, wells, building etc. and to read them from ifc and to be used inside our “isolated” program which uses own file format.
For example, to make it simple, what is required to make our program 100% certified by buildingSMART but to be able only only to work well and perfectly best only with Pipelines (Sewage | Drainage | Water Supply) - for exporting | saving into IFC files only (not even reading IFCs, and not even working with any other objects in ifc)…?
Is it possible to pass some special “buildingSMART Pipelines Sewage | Drainage | Water Supply export to ifc (course | manual for c# programmer) certification”?
Such module to save from our program to ifc these pipelines is very much necessary and required by our users of program we make, so we are even ready to buy such modules | libraries | source code, certification | certificate | manual etc - whatever - to make it done.
So we need a program that in it we have one more option - to save also to IFC. to save info about our project etc (we need to know how to do it, at least manual from “first hands” - from you), save info about pipelines etc etc.
Please answer us, this email, and provide some best solution, or maybe possible solutions how to achieve this as fast as possible. Internet is huge, and there are so many sites which provide some information or even programs for IFC. But it takes so much time to check them all. Maybe of them are available only if bought, - no free or trial versions etc. so we don’t even know which one
pipelines to ifc exporter" to buy (c# source code) - we don’t know which is better, which has more features, more certified etc - more supporting all newest fields, newest IFC versions etc…
We need kind of description of ifc - especially for programmers in c#, and especially for pipelines, exporting. we need manual with details, examples, best - with available source code, compiled as well, maybe at least DLL-s, but so at least we are able to have full access to all fields, properties etc within ifc file, and not to “invent wheel” making own tool (also not having documentation it seems" mission impossible" right now - trying to guess “blindly” by empirical method of “scientific experiments” - “let’s try in analogical way - maybe it will work and our generated file will be opened without problems”)…
so taking all these into account we kindly ask you to provide us, give us guidelines, hint, answers what to do in such situation and which step are to be performed to achieve this required functionality. - at least to save | export Pipelines (Sewage | Drainage | Water Supply) to ifc in C#.
Ideally I’ld also be happy to get some “minimal ifc file” - having minimum extra fields (which seem to be optional) - so we concentrate on important data within file, and not waste efforts, time, health etc, other resources - on researching the meaning of some optional fields which seem to be a lot of them in ifc file format specification.
it is very bad then when such I’ld say optional information is not added into ifc - it is unable to be opened.
There are so many extra fields which seemed to be just empty, not filled, and it also takes too much useless time, waste of time to research each of them, everyone of them - but in the end to come to the point that they are optional and not “a must” to be included in our save-to-ifc program. Please give us guidelines to make just minimal files first. Having hundreds of lines in ifc file is a bit scary, having thousands of lines in ifc file with some simple 3d object - is tiresome to read it all manually and try to parse, and writing code for each and every “ifc…” property | entity etc…
C# is ideally wanted language for us, but if unfortunately maybe it is not possible, but there is documentation, source-code for similar tool to export pipeline etc to ifc - then also please let us know.
Thank you all in advance. ifc is a good format - to be able to exchange data between different programs, different file types. but maybe because so many companies apply efforts to support it, - then it grows enormously - to add features of hundreds of companies - and make it all possible in IFC… this makes this format too huge, with so much duplicate (probably properties, fields, entities, - at least it seems like that), so it becomes a huge challenge to add ifc support to existing vector graphics program…
I made myself small tool to read ifc file - just cartesian points and loop poly lines - and i can see in Unity3d how 3d model is built only using this minimalistic information. maybe some micro-ifc format is to be introduced to have there only minimalistic information without any extra duplicate fields which just spoil experience of reading ifc file by human. it is very hard to debug ifc files, as their editors and even viewers are usually big programs which run slow.
so we need fast and reliable solution to this demand on ifc-export in our PipeLines etc editor.
Please answer questions above.
Thank you all in advance
Wish you all Merry Christmas and all the best in New Year 2023