D
by duncan on 6 Aug 2020, edited 20 Oct 2020
#
What the best way to describe requirements in a machine readable way? For example describing LOD requirements and valid syntax / properties.
I'm looking for ways to describe requirements against this danish LOD/LOI standard (translated to english) https://www.dikon.info/download/specification-of-building-parts_en_v-3/
R
by ReD_CoDE on 6 Aug 2020
#
+1 votes
You need IDM Toolkit/Configurator or something like that (bSI works on it)
See this: http://big.yonsei.ac.kr/xppm
D
by duncan on 6 Aug 2020
#
Brilliant @ReD_CoDE that's just what I was looking for.
M
by Moult on 6 Aug 2020
#
@duncan that is what an MVD (Model View Definition - a definition of what should be included in a model) was designed for. However, the devil is in the details. For this reason, at work we've translated exchange requirements into the MicroMVDs that I've half documented in the wiki (they read like English, but are machine readable). It has been very successful - with both technical and non-technical (people who don't know anything about IFC and don't use BIM software) able to appreciate. I described a bit of it here. The academic paper here also justifies why MVDs are not currently capable. The four main points are that:
-
Are highly bespoke, leading to a lack of implementations
-
Have a lot of dialects due to an ambiguous specification, leading to unreliable execution
-
Inefficient to describe exchange requirements (a unit testing approach results in an average of 10% of the size of an mvdXML definition)
-
There are certain exchange requirements which simply cannot be described in mvdXML
Tools like the one @ReD_CoDE has pointed to help generate mvdXML - the machine readable format for an MVD.
R
by ReD_CoDE on 7 Aug 2020
#
@Moult MicroMVDs are nothing new, and even IDM Toolkit is developed to solve these kinds of issues and many other issues too
When ISO19650 came, IFC was not (and still is not) ready for that, and IDM Toolkit is the attempt to solve the issues, and introduce new IDM which will come 2021
However, some from bSI built it as commercial solutions
The approach you follow has some advantages as well as disadvantages, however, it's invaluable too me
And in the end, the day I decide to build IfcXtreme, all of those solutions will destroy, including what you purpose
D
by duncan on 7 Aug 2020
#
@ReD_CoDE thanks for your comment. You might want to check the dictionary definition of invaluable. I'm guessing you probably mean 'not valuable to me' since that's usually what you write. 'Invaluable', to the great frustration of many with English as a second language, means the opposite. I have no idea how the English language did something so stupid - but it happened.
https://www.merriam-webster.com/dictionary/invaluable
R
by ReD_CoDE on 7 Aug 2020
#
@duncan thanks, at first many confuse, the first time I heard "invaluable" I thought it's negative too, however, soon realized that it has an extremely positive meaning:
Invaluable: /ɪnˈvaljʊ(ə)b(ə)l/
adjective
extremely useful; indispensable.
"an invaluable source of information"
B
by bernd on 24 Aug 2020
#
tried to run BIM-tester. At the moment my blender is broken :-( tried to download BIM-tester from the BlenderBIM page but this does not run on my system either ...
[6224] Error loading Python lib '/tmp/_MEIsfJQav/libpython3.7m.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version
GLIBC_2.29' not found (required by /tmp/_MEIsfJQav/libpython3.7m.so.1.0)
`
How do I compile BIM-tester myself? Or is it a simple python module?
cheers bernd
D
by duncan on 24 Aug 2020
#
I've now organised pages about MicroMVDs into one category
https://wiki.osarch.org/index.php?title=Category:MicroMVD
M
by Moult on 24 Aug 2020
#
@bernd BIMTester should be run from Blender - the one on the website's download page is extremely outdated and should not be used. I'll update the downloads page to prevent confusing others, sorry. This page has instructions: https://wiki.osarch.org/index.php?title=Using_MicroMVDs_for_exchange_requirements
B
by bernd on 25 Aug 2020, edited 25 Aug 2020
#
@Moult said:
@bernd BIMTester should be run from Blender - the one on the website's download page is extremely outdated and should not be used. I'll update the downloads page to prevent confusing others, sorry. This page has instructions: https://wiki.osarch.org/index.php?title=Using_MicroMVDs_for_exchange_requirements
How about the python module from ifcopenshell? AFAIKS I could run the method _runtests from bimtester module in ifcopenshell too?
https://github.com/IfcOpenShell/IfcOpenShell/blob/d0c207f6b90877ee9f4a04434ac712e4f3867f6e/src/ifcbimtester/bimtester.py#L33
but ist it installed somewhere? How do I import this module?
B
by bernd on 25 Aug 2020
#
OK importing is easy by the use of sys.path.append() the time beeing, but how to run bimtester methods standalone with python directly?
B
by bernd on 25 Aug 2020
#
It runs from blender :-) great stuff. I need to play with this ... But still I would like to know how to run it from python.

B
by bernd on 25 Aug 2020, edited 25 Aug 2020
#
about MicroMVD for element classes ... https://wiki.osarch.org/index.php?title=Element_classes_MicroMVD
I would like to check if all IfcSpace in the ifc fit the following requirements:
-
the guid does not matter, it must just be provided for each IfcSpace
-
the Name attribute of the IfcSpace entity must be provided for each IfcSpace
-
the LongName attribute of the IfcSpace entity must be provided for each IfcSpace
-
the pset Pset_SpaceCoveringRequirements must be provided for each IfcSpace
-
the attribut FloorCovering in pset Pset_SpaceCoveringRequirements must be provided for each IfcSpace
that would be a start ...
ATM I only found how to check for some attributes and properties of a special guid entity in MicroMVD
M
by Moult on 25 Aug 2020
#
@bernd You can run it standalone python bimtester.py ...
A new MicroMVD statement needs to be defined. It should be very fast to write.
B
by bernd on 25 Aug 2020
#
and the ifc file? how to define the ifc file to take for bimtester?
B
by bernd on 25 Aug 2020, edited 25 Aug 2020
#
@Moult said:
A new MicroMVD statement needs to be defined. It should be very fast to write.
would you help to start ? May be only with this:
the Name attribute of each IfcSpace entity must be provided
B
by bernd on 25 Aug 2020, edited 25 Aug 2020
#
@Moult said:
@bernd You can run it standalone python bimtester.py ...
works great. How to create the html files from json output? adding -r does not work
B
by bernd on 25 Aug 2020, edited 25 Aug 2020
#
for some reasons my *.feature files are copied into soruce tree of ifcopenshell and sometimes deleted in its origin ... there are happen some strange os copy and remove actions in bimtester if run in python or as python method
B
by bernd on 25 Aug 2020
#
all this seam only to run if the *.feature file will be copied into the source tree of bimtester.py inside the feature directory over there ... ?
Actually this is what bimtester does and calls behave with this directory
B
by bernd on 25 Aug 2020
#
if I comment this line the reports in html are created with latest master ifcopenshell too. https://github.com/IfcOpenShell/IfcOpenShell/blob/c872ee8844327987dc2331e30b9e08f8b87124f1/src/ifcbimtester/bimtester.py#L119
Might BlenderBIM not have latest master bimtester script?
M
by Moult on 26 Aug 2020
#
Sorry - I haven't had the time yet to look at your issue.
@Moult said:
@bernd BIMTester should be run from Blender - the one on the website's download page is extremely outdated and should not be used. I'll update the downloads page to prevent confusing others, sorry.
The downloads page has now been updated.
B
by bernd on 3 Sep 2020, edited 3 Sep 2020
#
bringing this up once again ...
AFAIKT bimtester is not installed if run make install for ifcopenshell. Would you confirm this?
I tried to use the bimtester from source to import and run ...
This is what I came up with.
# Copy the feature files inside the feature directory in ifcopenshell source!
from behave.__main__ import main as behave_main
args = ['/home/hugo/Documents/dev/ifcopenshell/ifcopenshell-official/ifcos/src/ifcbimtester/features', '--format', 'json.pretty', '--outfile', 'report/report.json']
behave_main(args)
import sys
sys.path.append("/home/hugo/Documents/dev/ifcopenshell/ifcopenshell-official/ifcos/src/ifcbimtester/")
import bimtester
bimtester.generate_report()
very cumbersome IMHO