Room Separation Lines not Aligned to View Level

Hello,

I searched the forum topics but could not find a solution so I hope anyone can help.

I am using clockwork to add room separation lines but it does not seem to add the lines to the correct level. See attached captures.

Is there a way to fix this either by hosting the “ModelCurves” to the correct level or moving the “ModelCurve” to the correct elevation?

Thanks

1 Like

I have a few questions though;

  • Do you get the Curves from Rooms or some other Elements?
  • Where do you want the Curves for the Elements on the First Floor?
1 Like

Hello @bvs1982 .

  1. I get the curves using node “Room.FinishBoundary” of a room placed on the Second Floor.

  2. I want the curve elements to be on the Second Floor.

Hi @zakim try translate your curves to elevation heigh

1 Like

You should just need to change the elevation of the Dynamo curves before creating the separation curves in Revit. You can do something like a PullOntoPlane with the level.

Are the boundary curves you get from the room located at the second floor level, or do they show up on the first floor as well? You may just have a room hosted to the wrong level or with some kind of offset that’s placing the boundary curves below where you think it is.

1 Like

hi have just tried it seems it is the viewplane node inside the node there gives trouble, try open and then use views level instead and get the plane from there and pull onto plane node…it seems work for me

This is why asked my second question :sweat_smile:.

The clockwork node uses the origin of the view to create the sketch plane, this does not always relate to the level.

You could take the curves and pull them onto the level plane - use the Clockwork Level.Plane and Curve.PullOntoPlane (Edit - That would be in Dynamo, not Revit :person_facepalming:)

You could set the origin of the view to the level

1 Like

Hello @Nick_Boyts and @sovitek . The boundary are for a room on the Second Floor. In other words, any of the Rooms hosted on the upper floors their newly created separated lines are always hosted on the bottom level (i.e. First Floor).

I also tried PullOntoPlane but it is not working.

I think it also good to keep your List Levels
in mind. By the looks of it you gotten ALL
your Rooms but flattened your List with all the Curves. But i guess that is a different topic :sweat_smile:.

try as here and see if it could work,
Revit_mQ8KIOXmWE
Home.dyn (16.0 KB)

3 Likes

Looks like @Mike.Buttery answered your question here. You’d have to use a new node or create your own solution in Python, like @sovitek has shown above.

Here is a modification to the Clockwork python code which uses the Level Id instead of a view origin to create the plane
Edit: Details :backhand_index_pointing_right: here

import clr

clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *

clr.AddReference("RevitNodes")
import Revit

clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
curves = UnwrapElement(IN[0])
view = UnwrapElement(IN[1])

TransactionManager.Instance.EnsureInTransaction(doc)

if view.LevelId:
    sketchplane = SketchPlane.Create(doc, view.LevelId)
    curvearray = CurveArray()
    for curve in curves:
        curvearray.Append(curve.ToRevitType())
    doccreation = doc.Create
    separatorarray = doccreation.NewRoomBoundaryLines(sketchplane, curvearray, view)
else:
    separatorarray = []
TransactionManager.Instance.TransactionTaskDone()

elementlist = list()
for item in separatorarray:
    elementlist.append(item)
if isinstance(IN[0], list):
    OUT = elementlist
else:
    OUT = elementlist[0]
3 Likes

Thank you @sovitek for sharing this sample file and solution. I tried it and it works really well. Thank you (and @Mike.Buttery , @bvs1982 , and @Mike.Buttery ) for your valuable support.

I just wish if there was a dimple Dynamo OTB node to solve this issue. It seems strange that my full dynamo project works well. But one would expect Dynamo communicate better with Revit levels as normal view/plane definition.

I am also not well versed in Python… something I should explore to learn.

1 Like