diff --git a/src/ifcgeom/taxonomy.h b/src/ifcgeom/taxonomy.h index d795cbb91a..c74080cfaa 100644 --- a/src/ifcgeom/taxonomy.h +++ b/src/ifcgeom/taxonomy.h @@ -1239,7 +1239,11 @@ typedef item const* ptr; if (pwupg) { return pwupg; } - return std::static_pointer_cast(u); + if (auto r = std::dynamic_pointer_cast(u)) { + return r; + } else { + throw std::runtime_error("Unexpected topology"); + } } template std::shared_ptr dcast(const std::shared_ptr& u) {