How to call a library correctly?


I try to call a library - ifcopenshell

so the idea is to get the ifcClasses which are adressed to the elements

# Phython-Standard- und DesignScript-Bibliotheken laden
import sys
import clr
from Autodesk.DesignScript.Geometry import *

sys.path.append(r'C:\Program Files (x86)\IronPython 2.7\Lib\ifcopenshell')
from ifcopenshell import *

elem = UnwrapElement(IN[0])

ifcelem = []

for i in elem:

OUT = ifcelem

I want to get from my “Airelements” the IfcClass.

How is the process of “installing” a library? at moment i did just drag/drop/unzip…

Thats my library i work with ironpython 2.7.

is my path correct? or my syntex ? how can i deal with it. I check in Revit an IFC file



I’m not sure that I understand the end goal but as you have already imported the ifc in Revit why not use the parameter “IfcExportAs”

… but got the Parameter filled automaticly during the first ifc export?

IfcExportAs have i to fill it manually? where can i get my “Ifc”-Categories? is it just the mappingtable under options? it should be stored in the element? or Can I create it the first time when i export?

in that model that i got it is not activ this parameter! it is just expost to any coordinationsoftware… so Revit is unable to extract this information? f.e. i could also get modell from Microstation, so how can i get the IfcClasses

this Autodesk’s guide can be help you

here a simple example, if your goal is to control the Ifc Classes of a Revit export

import clr
import sys
import re
import System
reDir = System.IO.DirectoryInfo(re.__file__)
path_py3_lib = reDir.Parent.Parent.FullName
sys.path.append(path_py3_lib + r'\Lib\site-packages')
import ifcopenshell
ifc_file =[0])
products = ifc_file.by_type('IfcProduct')
out = {}
for product in products:
    rvtid = product.Name.split(':')[-1]
    if rvtid.isdigit() :
        out[product.GlobalId] = {"GuidIfc" : product.GlobalId, 
                                    "Name" : product.Name, 
                                    "rvt_Id" : rvtid,
                                    "class": product.is_a()}

OUT = out

extract the zip package here

as I already told you, ifcopenshell package is not compatible with IronPython2

api doc ifcopenshell


Thank you very much!

I have still problems calling the path… my path is currently this way:


I created Lib and site-packages and put ifcopenshell there …hmm

can i write the full path ( “C:\Users\DraxlA.WERKSTATT\AppData\Local\python-3.8.3-embed-amd64\Lib\site-packages\ifcopenshell”)

Hi @Draxl_Andreas
for Dynamo 2.13 need to paste the package in 3.8.10 directory

you need this version (64bits)

1 Like

Thank you, i had to open close Revit. It works!

1 Like