mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-17 02:49:12 +00:00
Create blank ifc4 qto base quantities ruleset
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import json
|
||||
import ifcopenshell.util.pset
|
||||
import ifcopenshell.util.type
|
||||
|
||||
|
||||
def order_dict(dictionary):
|
||||
# https://stackoverflow.com/questions/22721579/sorting-a-nested-ordereddict-by-key-recursively
|
||||
return {k: order_dict(v) if isinstance(v, dict) else v for k, v in sorted(dictionary.items())}
|
||||
|
||||
|
||||
results = {}
|
||||
|
||||
psetqto = ifcopenshell.util.pset.get_template("IFC4")
|
||||
for template in psetqto.templates:
|
||||
for pset_template in template.by_type("IfcPropertySetTemplate"):
|
||||
if not pset_template.Name.startswith("Qto_"):
|
||||
continue
|
||||
query = pset_template.ApplicableEntity
|
||||
results.setdefault(query, {})
|
||||
results[query].setdefault(pset_template.Name, {})
|
||||
for quantity in pset_template.HasPropertyTemplates:
|
||||
results[query][pset_template.Name][quantity.Name] = None
|
||||
|
||||
results = order_dict(results)
|
||||
print(results)
|
||||
with open("results.json", "w") as f:
|
||||
json.dump(results, f, indent=4)
|
||||
Reference in New Issue
Block a user