Attempting to make a Clearance zone around "MEP Fabrication Containment"

could you share a little bit of that rvt file ?

Continuin Convo:
ITM is mesh.
System families are line based I think.
The command looks like it works for the nonwire cable tray.(Shown here) The wire tray comes thru crazy as shown above.
I converted the solid into an impoprt instance so I can click it and remove it need be. or alter it.

I think if I can get the command to work with the Wire cable tray this would be perfect. If not I can use this too.
The only things left I think are:
I just want to add a selection list in the dynamo pop up at to determine these dimensions.
Sides, Top,Bottom.

I want to convert the units to inches.

Change the materail to transparent red.

Any help would be awesome!

Change the thickness value for the Surface.Thicken from 50 and 100 to (in inches 4’-2" and 8’-4", but my guess is you’re really using decimal feet - so 50’ and 100’ respectively) to something more reasonable - say 1 if using feet for each, or maybe 12 if you’re actually in inches.

alright for wire i dont think my exemple will work, then i would try with location line from Clockwork not sure ootb will work work here…i will give it a try later are little bit busy in the moment :wink:

Okay! I know its a challenge but all the help has been greatly appraciated everyone!

Likely going to require getting some custom location data, as most of the complex shapes in fabrication parts will require a good bit more detail than is accessible. part.get_Location() will return the location which can be converted to a Dynamo curve after pulling the curve property for linear types. But for say your corner connectors or the T connector these will be a Location element, which doesn’t convert has neither a point nor a curve. As such the best you can try to do is infer the curve by using the location of the connectors.

If someone wants to get started on playing with it, this code snippet might help:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript import Geometry as DG
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference("System")
from System.Collections.Generic import List as cList
doc = DocumentManager.Instance.CurrentDBDocument
parts = UnwrapElement(IN[0])
if parts.__class__ != list: parts = [parts]
failList = []
passList = []
locs = []
for part in parts:
    netLoc = None
    loc = part.get_Location()
    if loc.__class__ == LocationCurve: 
        netLoc = loc.Curve.ToProtoType()
    if loc.__class__ == Location: 
        connectorManager = part.ConnectorManager
        connectors = connectorManager.Connectors
        if connectors.Size  == 2:
            data = []
            for connector in connectors:
                trans = connector.CoordinateSystem
                trnsOrg = trans.Origin.ToPoint()
                xAxis = trans.BasisX.ToVector()
                yAxis = trans.BasisY.ToVector()
                zAxis = trans.BasisZ.ToVector()
                cs = DG.CoordinateSystem.ByOriginVectors(trnsOrg, xAxis,yAxis,zAxis)
                plane = cs.XYPlane
                vect = plane.Normal
                pnt = plane.Origin
                data.append(pnt)
                data.append(vect)
            netLoc = DG.Arc.ByStartEndAndTangencies(data[0],data[1],data[2],data[3])[0]
    if netLoc != None:
        passList.append(part)
        failList.append(None)
        locs.append(netLoc)
    else:
        passList.append(None)
        failList.append(part)
        locs.append(None)
OUT = locs, passList, failList
2 Likes

Yes think it will be a bit of challenge, with wire trays…but as mention get the location line from cabletrays…for fittings its another story…you could try pair the points / connector location and then draw a arc /line in these points…but again it will not be super stable…

here a tried another approach then location line can probably work sometimes, depend on which wire tray you use…

If I could choose any cable tray to make a proper clearance zone on I would use the one at the top of this post. It is the most widely used for BIm purposes.
image

For this, what if I just duplicated the tray that is currently there with nodes. Than change the type to another cable tray that is centered on the origin of the original.

It would look more like a clearance zone after being converted but just be an extra cable tray over the top of the original? It would probably be easier to get the dimensions to work with as well.

thoughts? Ideas?

I wonder if there is a way to use hanger generation to define some curves…

1 Like

Orhh yeah ….good idea…worth to try :grinning:

try something
Clearence fabrication.dyn (62.5 KB)

here should be more stable…and should work in many cases…

2 Likes

Where did you get this node package? OpenMEP?
image
I think is prventing me from running it

Hi…you can find the installer here…Release 2.0.23.1071410 · chuongmep/OpenMEP · GitHub

How do I go about using it? I cannot get anything to appear for any tray using the command. I made sure to download all the packages

Just select the system with trays and fitting and run…try first with a small sample for see if it works for you…but remember my exemple is made in millimeter…if it doesnt work for you then share a small rvt exemple so we can find out…cheers

I cannot get the revit file to be under 8 MB. Any ideas. I can sent it to you personally if youd like. Then we can just follow up on this forum. I was ablew to select objects. The shape is just never made

Allright just use fileshare, webtransfer etc…and share the link here :wink: