mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-11 18:16:40 +00:00
Don't emit empty results for representation and allow implicit items to
pass when using --plan
This commit is contained in:
@@ -42,10 +42,16 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcRepresentation* inst) {
|
||||
// @todo
|
||||
// if (s.ShapeType() == TopAbs_COMPOUND && TopoDS_Iterator(s).More() && TopoDS_Iterator(s).Value().ShapeType() == TopAbs_SOLID) {
|
||||
|
||||
return filter_in_place(items, [&use_body](taxonomy::ptr i) {
|
||||
auto filtered = filter_in_place(items, [&use_body](taxonomy::ptr i) {
|
||||
// @todo just filter loops for now.
|
||||
return (i->kind() != taxonomy::LOOP) == use_body;
|
||||
return (i->kind() != taxonomy::LOOP && i->kind() != taxonomy::PIECEWISE_FUNCTION) == use_body;
|
||||
});
|
||||
|
||||
if (filtered->children.empty()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return filtered;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -236,14 +236,12 @@ void mapping::get_representations(std::vector<geometry_conversion_task>& tasks,
|
||||
}
|
||||
|
||||
// @todo, fix this properly by considering the mapped geometry types in the representation.
|
||||
if (representation->RepresentationIdentifier() && *representation->RepresentationIdentifier() == "Body") {
|
||||
geometry_conversion_task task;
|
||||
task.index = task_index++;
|
||||
task.representation = representation;
|
||||
task.products = ifcproducts->generalize();
|
||||
geometry_conversion_task task;
|
||||
task.index = task_index++;
|
||||
task.representation = representation;
|
||||
task.products = ifcproducts->generalize();
|
||||
|
||||
tasks.emplace_back(task);
|
||||
}
|
||||
tasks.emplace_back(task);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user