/***************************************************/ /**** Public Methods ****/ /***************************************************/ public static IInstance InstanceFromRevit(this CurveElement curveElement, RevitSettings settings = null, Dictionary <string, List <IBHoMObject> > refObjects = null) { settings = settings.DefaultIfNull(); IInstance instance = refObjects.GetValue <ModelInstance>(curveElement.Id); if (instance != null) { return(instance); } InstanceProperties instanceProperties = (curveElement.LineStyle as GraphicsStyle).InstancePropertiesFromRevit(settings, refObjects) as InstanceProperties; if (curveElement.ViewSpecific) { View view = curveElement.Document.GetElement(curveElement.OwnerViewId) as View; if (view == null) { return(null); } instance = BH.Engine.Adapters.Revit.Create.DraftingInstance(instanceProperties, view.Name, curveElement.GeometryCurve.IFromRevit()); } else { instance = BH.Engine.Adapters.Revit.Create.ModelInstance(instanceProperties, curveElement.GeometryCurve.IFromRevit()); } instance.Name = curveElement.Name; //Set identifiers, parameters & custom data instance.SetIdentifiers(curveElement); instance.CopyParameters(curveElement, settings.ParameterSettings); instance.SetProperties(curveElement, settings.ParameterSettings); refObjects.AddOrReplace(curveElement.Id, instance); return(instance); }