Exemple #1
0
def offset_bbox(bbox, offset):
    """
    Offset Bounding Box by given offset
    http://archi-lab.net/create-view-by-room-with-dynamo/
    """
    bboxMinX = bbox.Min.X - offset
    bboxMinY = bbox.Min.Y - offset
    bboxMinZ = bbox.Min.Z - offset
    bboxMaxX = bbox.Max.X + offset
    bboxMaxY = bbox.Max.Y + offset
    bboxMaxZ = bbox.Max.Z + offset
    newBbox = DB.BoundingBoxXYZ()
    newBbox.Min = DB.XYZ(bboxMinX, bboxMinY, bboxMinZ)
    newBbox.Max = DB.XYZ(bboxMaxX, bboxMaxY, bboxMaxZ)
    return newBbox
    duplicate_plan.CropBox = cropbox
    duplicate_plan.CropBoxVisible = False
    return duplicate_plan


with db.Transaction("Duplicate View"):
    for sheet_name in all_sheet_names:
        # check if duplicate exists
        col_plan = db.Collector(
            of_class="ViewPlan",
            is_type=False,
            where=lambda x: sheet_name + "-Plan" in x.Name,
        ).unwrap()
        col_rcp = db.Collector(
            of_class="ViewPlan",
            is_type=False,
            where=lambda x: sheet_name + "-RCP" in x.Name,
        ).unwrap()
        # get cropbox region
        cropbox = DB.BoundingBoxXYZ()
        bbmin, bbmax = ui.Pick.pick_box(sheet_name)
        cropbox.Min = bbmin.unwrap()
        cropbox.Max = bbmax.unwrap()

        if col_plan.GetElementCount() < 1:
            # create duplicate
            duplicate_plan = duplicate_view(plan_view, cropbox, "-Plan")
        if col_rcp.GetElementCount() < 1:
            # create duplicate
            duplicate_rcp = duplicate_view(rcp_view, cropbox, "-RCP")