IDS Information Delivery Specification
Hi! For some time I've been working on IfcOpenShell implementation of Information Delivery Specification (IDS) * standard from buildingSMART. I wasn't very active on the forum, but will try to make up for that :) As @Moult announced here, I'm involved in the GSoC '21 programme to: Add IDS validation with BCF output to IfcOpenShell with invaluable @aothms and others guidance as I'm still new to this.
Parsing and validation part is already completed (available on my fork branch) and now working on authoring and reporting. Both from code and web-app. Full list of features to be implemented is documented on IfcOpenShell/issues/1349. Initial prototype of authoring & validation webapp is hosted here: artomczak.pythonanywhere.com.
Will also try to post progress in current thread.
Let me know if I can help you with anything related to IDS and I look forward to your feedback :)
__
* in simple terms: XML standard for information delivery requirements that is easy to present in both machine and human-readable form. Somehow similar to BIMTester, possibly will be integrated at some point. You can read more on the IDS standard on technical.buildingsmart.org/projects/information-delivery-specification-ids/ and find further technical details and examples on: github.com/buildingSMART/IDS
Comments
bSI has published an updated version of the IDS and an example file here: http://standards.buildingsmart.org/IDS/
Main changes:
@ATomczak do you think the time is ripe to do more BIMTester integration, perhaps connection with BCF, and with Gherkin syntax?
almost, still working on the new changes to the schema. But we can have a meeting this week and start integration. When it comes to BCF, currently we have an option to generate a report from the validation using BCF StreamHandler. It does not produce a viewpoint or reference to entities, just a title and description.
@ATomczak nice. When would you like to meet? I'm free during Sydney waking hours.
@Moult today/tomorrow is fine for me, I will DM you.
Has some of the work been merged into ifcopenshell yet, or is it all on atomczak github?
@bernd https://github.com/IfcOpenShell/IfcOpenShell/pulls?q=is:pr+author:atomczak :)
Yes, it has been merged. Thanks @Moult. The project summary is published here on the IfcOpenShell Blog: http://blog.ifcopenshell.org/2021/08/idspy-toolkit-as-result-of-google.html
IDS python toolkit is ready. The web version is still in progress but you can already give it a try, customise and download your IDS: https://artomczak.pythonanywhere.com/create/
Hi guys,
Thanks for your work.
I'm trying to use "My Information Delivery Specification" to check my ifc.
I create my IDS from https://artomczak.pythonanywhere.com/create/ and then save it as an .xml file.
In blender bim, in BIMTester panel I fill The "IFC File" and "Feature / IDS" values and the i click on "Execute BIMTester".
Is it the correct workflow?
Unfortunately I receve this error:
Is because of my blender settings or I miss something?
Thanks for you replay.
I attach the dataset too (the .xml file is in .txt because is forbidden to download .xml files)
Maybe i find the answer:
the problem is: where i have to put these file?
Thanks
Hi @Bimlooser, check if you have ids.xsd file in your ifcopenshell library in blender. I believe it is "%APPDATA%\Roaming\Blender Foundation\Blender\2.93\scripts\addons\blenderbim\libs\site\packages\ifcopenshell\ids.xsd"
It should look like this: https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.6.0/src/ifcopenshell-python/ifcopenshell
Now i've recieved this.
The problem seems to be somewhere else. @Moult ?
I've fixed a number of BIMTester and IDS issues in https://github.com/IfcOpenShell/IfcOpenShell/commit/d026fcc9007c60d786f7c1d960268c0cbd4fab14 - I've also started adding tests to prevent regressions in the future. Wait for the next release and hopefully it solves your problems: https://github.com/IfcOpenShell/IfcOpenShell/releases
Sorry for the poor response :(
I'll wait. Thanks
Thanks for the new release. Unfortunately I got the same error
Someone can help me to fix it? Thanks!
@ATomczak :
since you have codes on BIMTester too you may could help with this problem ... https://github.com/IfcOpenShell/IfcOpenShell/issues/1888
With blenderbim-220118 now everything works fine. Thanks.
Good to hear, sorry it took so long.
Hi all!
Although I have some basic knowledge of using IfcOpenShell for simple operations, I am pretty new to using IDS through Python.
I'm using Anaconda and Jupyter notebooks to test and experience the toolkit (IfcOpenShell). However, I am not able to import "ids".
Is there something I should install beforehand apart from IfcOpenShell?
Also, I would like to know how to develop my own IDS with information requirements using code (that is, Python and IfcOpenShell) and still validate an IFC file using my custom IDS file.
Thank you, and I apologise if any issue may seem too obvious or way too easy to solve.
Hi @FDinis! You are in the right place to ask :)
I assume your IfcOpenShell is working fine, but you get an error when try to do
from ifcopenshell import ids
. First of all, make sure that you have ids.py file inside your ifcopenshell library folder, like in the repo: https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/ifcopenshell-python/ifcopenshellHave you installed IfcOpenShell using the installed or cloned the repository? If that doesn't fix the problem let me know.
Once you get it to work, authoring your own IDS is not hard, have a look at this example:
There are many examples in the test file, including how to add restrictions, validate created IDS on IFC and create reports: https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/src/ifcopenshell-python/test/test_ids.py
but also you can ask here and we will try to help :)
Hey @ATomczak ! Thank you for the prompt reply! :)
I was missing ids.py in the first place, but even after fixing it I still get this error message:
"ModuleNotFoundError Traceback (most recent call last)
Input In [2], in
import ifcopenshell
----> from ifcopenshell import ids
File D:\Anaconda3\envs\IFC_env\lib\site-packages\ifcopenshell\ids.py:28, in
import ifcopenshell.util.element
import ifcopenshell.util.placement
---> from bcf.v2.bcfxml import BcfXml
from bcf.v2 import data as bcf
from xmlschema import XMLSchema
ModuleNotFoundError: No module named 'bcf'"
I also tried to clone the repo from GitHub, but I still get the same error. :/
Still stuck at this... Any thoughts on how to solve this issue?
Thank you!
@FDinis you are almost there.
The
bcf
is among other packages in theIfcOpenShell\src
. You can simply copy this folder to your libraries folder, or add it to sys.path. I'm not acquainted with Anaconda, but invenv
I'm adding it to path by typing in Windows PowerShell:$env:PYTHONPATH="[YOUR PATH]\IfcOpenShell\src\bcf"
One more clue, make sure you have
ifcopenshell_wrapper.py
and_ifcopenshell_wrapper.pyd
files in yourifcopenshell-python\ifcopenshell
folder. If not, it means that you've copied the source code from the IfcOpenShell repository which isn't compiled. The most recent compiled code is here: https://github.com/IfcOpenBot/IfcOpenShell/commit/000e3acb2bf16ff0863ab91b208b7dbda56f8b59#comments. Make sure you download for the same version of Python as you are using (3.10 == 3.1).Let me know if that works! I agree that the configuration steps are not obvious, we should add clear instructions for others.
@ATomczak Thank you for the valuable tips!
It's finally working properly! :)
I'm checking the examples since I want to create custom IDSs and validate IFC files using those IDS files.
Thank you once again ;)
@ATomczak, I am new to IDS. I want to create custom IDS to test my IFC files. Please, are their examples of IDS that I can use as a guide? Thank you.
@polsonmila, if you're not so skilled in typing code like I am, I suggest you to visit this page artomczak.pythonanywhere.com
@Bimlooser thank you for the suggestion. I checked that page... Though I still find it hard to apply it( since I am just but a newbie). If I could get an example of how to fill in the IDS template (as on the website) I will appreciate it.
IDS schema is being updated by buildingSMART, the demo website is not up-to-date. The latest example files can be found at: https://github.com/buildingSMART/IDS/tree/master/Development/0.5
Examples on how to create IDS using python are here:
https://github.com/atomczak/IfcOpenShell/blob/IDS/src/ifcopenshell-python/test/test_ids.py
If you still have some questions let us know here.
@ATomczak thank you. I hope I can understand the code. I will do what I can and get back to you. Thank you.
Dear @ATomczak, The IDS creator is a great tool in the making. More power to your elbow and all the contributors.
I want to create an IDS that will specify all the properties, quantities and materials of an IfcWall. Is this possible with the IDS creator?
Here is what I could do with the IDS Creator. But I will need you help.