This is how it is supposed to be with managed metadata.
With managed metadata, you want to break up the terms, and then they can only occur (be reused) once.
Whenever you are faced with this problem, you should consider splitting the "materials" and "civils" in separate sets, so that you can tag your items with the combination of the two-
Contrast with a directory tree in a file system, where "terms" (folders, e.g. year, classes, materials or other metadata) can be identical and occur many times in the tree (like your example which would not only be possible, but also make sense in such an organisation). But with metadata this would not make sense to have identical terms places multiple places in a stricter hierarchy ("concrete" belongs to the group of "materials" only, it can not simultaneously belong in other groups in a taxonomic hierarchy)
One possible solution, but I do not think it is a good one in your case is to create non-identical terms for the same property, e.g.
-- Port Design
----- Concrete Port Design
----- Concrete Bridges
but it would defeat the purpose of being able to filter out all items with the same material ("concrete")