W7: Voxels#

21st October 2024

Presentation - In person demo from Thomas Krijnen.

  1. ___ Check out the Voxels resource.

Questions arrising from the session#

Q. Distinguishing between LayerSet and ConstinuentSet#

  • A. Use a Data type … Data is typically handled expolratory, maybe not only materials maybe layers ,could also be a problem about openings. Could aslo be affected by geometric representation. Don’t worry too much about it being complete, trying to avoid corner cases, If statement would aslo work the test a would be .is_a.

Q. Calculate glazing area without including the overlapping#

  • A. Could use voxelisation to get the external face. Typically in voxelisation would use 5cm voxels, but detail might be smaller.

  • Computational complexity increases cubicly with size of voxels, so we don’t want big voxels, perhaps you could hve develop levels of detail. Buildings are relatively similar sized, so 5 cm is a safe compromise between detail and performance - roughly equal to 30mins.

  • Really detailed models could complicate it. If you really look at the geometry it might be that thye are connected. Maybe you are in a sitaution that you don’t know if it is really at the exterior. [ADD Voxelisation to calculate external surface etc].

Q. Installation#

  • A. IfcOpenShell - should install ok, the voxelisation toolkit Thomas will provide installation instructions.

Q. Total list of functions#

  • A. IfcOpenShell is opensource. Thomas sees it as a map in an ecosystem of tools. depends on use case. If we want to do 2D it might be python… if 3d it might be something else… Maybe examples can be foudn on IfcOpenShell Academy - working through examples rather than full documentation. Maybe Dion, working mostly on Bonsai. He has done a great job on the higher level libraries - functional building blocks - can we get the links?

Q. Structure of the different entities how much is it the same across different entities#

  • A. IFC provides a taxonomy of building parts and relationships. Not designed so that it can be viewed by different domain experts. 99% of cases interested problem will be the extrusion. Use IfcOpenShell to evaluate the object into a generic geometry representation. 1) inspect data graph

    1. inspect geometry. Provide example of getting the geometric properties of a column, beam and slab. 3rd option is to look at property sets and hope we get the information you want. We could also use IDS to make sure that we get that data in the models we produce.

Q. Limits of util.element.get_Psets()#

  • Best case is to start from the geometry. but if using option 3 - get PSets then this function is good. In Ifc a property can be lots of different things. Goes back to the complexity of IFC, not every property / entity - [TODO - Check which entities this maps to and what properties we can get] When do we know if it is not supported (raise an exception) or not work. Tradeoff to be worked out. Check new validation service - so that you cna checkt he data quality.

Q. Total amount of each material (e.g. Volume)#

  • A. Assuming you find material in a way that makes sense to you, do you know enough to make use of it in assessmnet, i.e. can you link it to EPD etc. BS not put effort in defining material. Materials are in user defined strings, so internationalisation is a problem. You probably require additional information about. Can’t associate property sets to each bit of data. for instance you cannot associate PSets to geo extrusion. The same for materials, IFC did not foresee how important materials would become. Materials normally defined inside the generating software. This is a weaker point, but is representative of bigger challenges in the industry. The best advice is to clearly define what the

Q. Best way to figure out all the properties in IfcWall#

  • A. good question - probably not so much. In the express modelling language, there are attributes, GUID, name description, representation etc. Inverse attributes. Those are the ones that are given by somehthing else. find the attributes to

  • dir(mywall) - gets everything you can get (forward attributes and inverse attributes). - no clear categorisation what comes from where (Python and IfcOpenShell). Hands on explorative investigation is a good way to.

  • follow up question - what does get_psets do…

[Thomas demonstration of different functions]

  • started python

  • w = wall[0]

  • w lots of info w.GlobalId ‘sdojknfnsjdjfndsgnj’ dir(w)

  • ignore double underscores

  • Connected from and connected to are basically the same

  • get info - convenience method - gives forward attributes as a python dictionary

  • w.Representation

  • product productDefintionShape()

  • W.rep.rep[1].Items[0].get_info()

  • w.containedinstructure[0].RelatingStruture

  • gets you the building storey

  • w.Decomposes

  • ()

  • w.FillsVoids

  • should be empty for a wall but would work for a window - openning is now called void.

  • w.hasasssignments ?

  • ()

  • w.hasAssociations

  • materials stuff.

  • check IFC 4 documentation.

  • w.hasCoverings

  • Deprecated

  • w.HasOpenings

  • w.HasPorts

  • w.HasProjections

  • w.HasStructuralMembers

  • w.isdefinedby

  • gives relationships to the property sets

  • it will not give you materials or classifications etc. but this is also applied as a property set by vendors. but it is information that people really care about.

  • w.provideboundaries

  • themral analysis people intersrted in spatial boundary

  • Referencedinstructrures fro when working wiht trees.