Set right level for MEP element

Hi every one!!! I’ve got a “little” problem: when we create a project, we can create elements with wrong reference levels and elevations. I created a script that can change reference levels and elevations in active view. But it’s want a “special” views: I always must cropped my floor planes(views). I want to update my script - projected my mep elements onto surfaces of my arch. floors and find intersected elements. I’ve get surfaces, geometry of my elements (points, and lines), but script does projection only someones geometries. On my opinion - doesn’t
enough of cycle. How I can do this?

If I select solids/surfaces “by hands” (first - a[0], then - a[1], then - a[2]…) lines and points are projection on solids/surfaces wich I need. I need a cycle. May be whith python, but I can’t finded right API

May be I do somesing wrong? I just want to alining mep elements by right levels in all model. Any ideas???


Have you seen this?

If I understand right, this script working with “lite” models. For example: there is one section in model: S1_01_+0.000, S1_02_+4.000, S1_03_+8.000… But if we have more than 1 section (for example: S1_01_+0.000, S2_01_+1.000; S1_02_+4.000, S2_2_+5.000; S1_03_+8.000, S2_03_+9.000…) this script dosen’t work. Or I mistake???