// Token: 0x06000194 RID: 404 RVA: 0x0000B098 File Offset: 0x00009298 protected double GetActualSpacingForUnitechnik(RevitElement <RebarInSystem> rebar, short angle) { int numberOfBarPositions = rebar.Element.NumberOfBarPositions; bool flag = numberOfBarPositions < 2; double result; if (flag) { result = 0.0; } else { bool flag2 = rebar.Element.DoesBarExistAtPosition(0); bool flag3 = !flag2 && (numberOfBarPositions < 3 || !rebar.Element.DoesBarExistAtPosition(2)); if (flag3) { result = 0.0; } else { Transform barPositionTransform = rebar.Element.GetBarPositionTransform(flag2 ? 0 : 1); Transform barPositionTransform2 = rebar.Element.GetBarPositionTransform(flag2 ? 1 : 2); result = base.GetActualSpacingForUnitechnik(barPositionTransform, barPositionTransform2, angle); } } return(result); }
// Token: 0x060001EB RID: 491 RVA: 0x0000D8A8 File Offset: 0x0000BAA8 public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid) { Rebar element = this.Rebar.Element; double radius = base.RebarBarType.BarDiameter / 2.0; int num; int num2; SteelGroupElementRebar.GetRebarIndices(element, out num, out num2); double num3 = 0.0; int num4; for (int i = num; i < num2; i = num4 + 1) { List <Curve> centerLineCurvesForVolumeCalculation = SteelGroupElementRebar.GetCenterLineCurvesForVolumeCalculation(this.Rebar, i); List <CurveLoop> sweepProfile = SteelGroupElementRebar.GetSweepProfile(centerLineCurvesForVolumeCalculation, radius); bool flag = sweepProfile.none <CurveLoop>(); if (!flag) { Solid solid = SteelGroupElementRebar.GetSolid(centerLineCurvesForVolumeCalculation, sweepProfile); bool flag2 = solid == null; if (!flag2) { Solid solid2 = solid.intersect(partSolid.Solid); bool flag3 = solid2 == null || solid2.Volume.Lt(0.0, -1.0); if (!flag3) { num3 += solid2.Volume; } } } num4 = i; } return(num3); }
// Token: 0x0600056C RID: 1388 RVA: 0x000156F8 File Offset: 0x000138F8 public DbwElementData(ItGeMatrix3d matWcsToPalette, RevitElement <Part> firstShell, RevitElement <Part> secondShell) { ItDebug.assert(matWcsToPalette != null && firstShell != null && secondShell != null, "Failure in: "); this.MatWcsToPalette = matWcsToPalette; this.FirstShell = new ItMachineDataWallDB.DbwElementData.Shell(ItMachineDataWallDB.DoubleWallMode.FirstShell, firstShell); this.SecondShell = new ItMachineDataWallDB.DbwElementData.Shell(ItMachineDataWallDB.DoubleWallMode.SecondShell, secondShell); }
public RevitElement RevitElementToSpeckle(Element revitElement) { var symbol = Doc.GetElement(revitElement.GetTypeId()) as FamilySymbol; RevitElement speckleElement = new RevitElement(); if (symbol != null) { speckleElement.family = symbol.FamilyName; speckleElement.type = symbol.Name; } else { speckleElement.type = revitElement.Name; } speckleElement.category = revitElement.Category.Name; speckleElement.displayMesh = GetElementDisplayMesh(revitElement, new Options() { DetailLevel = ViewDetailLevel.Fine, ComputeReferences = false }); //Only send elements that have a mesh, if not we should probably support them properly via direct conversions if (speckleElement.displayMesh == null || !speckleElement.displayMesh.vertices.Any()) { return(null); } GetAllRevitParamsAndIds(speckleElement, revitElement); return(speckleElement); }
// Token: 0x060000F3 RID: 243 RVA: 0x000094E0 File Offset: 0x000076E0 protected override bool IsMountPartOfThisShell(RevitElement <FamilyInstance> mountingPart, RevitElement <Part> part) { bool flag = mountingPart.Element.getHostId() == part.Id; bool result; if (flag) { result = true; } else { List <ItSolid> solids = ItSolid.getSolids(mountingPart, ItGeMatrix3d.kIdentity, false); bool flag2 = solids.none <ItSolid>(); if (flag2) { ItFailures.PostFailure(ItFailures.CAMMountPartInUnknownShell, mountingPart.Id); result = (part.shellType() == ShellType.FirstShell); } else { result = this.hasSolidIntersection(part, solids); } } return(result); }
// Token: 0x060000D8 RID: 216 RVA: 0x00008F98 File Offset: 0x00007198 protected override MountingPartData getOpeningData(RevitElement <Opening> opening, RevitElement <Part> part) { Floor floor = part.getFloor(); ItGeVector3d viewDirection = -floor.normal(false); return(base.GetOpeningData(opening, part, viewDirection)); }
// Token: 0x06000241 RID: 577 RVA: 0x0000F9A8 File Offset: 0x0000DBA8 public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid) { IEnumerable <double> source = from wire in base.WireItemsMinor.Union(base.WireItemsMajor) select wire.GetSteelVolumeInPart(partSolid); return(source.Sum()); }
// Token: 0x060000EA RID: 234 RVA: 0x000092AC File Offset: 0x000074AC protected override MountingPartData getDoorWindowData(RevitElement <FamilyInstance> familyInstance, RevitElement <Part> part) { ItGeBoundBlock3d localExtents = familyInstance.Element.getLocalExtents(); ItGeVector3d viewDirection = base.getViewDirection(); ItGeMatrix3d ecsToWcs = familyInstance.Element.ecs(); bool flag; List <ItGePoint3d> contourFromElement = ItMachineDataBase.getContourFromElement(familyInstance.To <Element>(), part, ecsToWcs, viewDirection, out flag); bool flag2 = contourFromElement.none <ItGePoint3d>() || contourFromElement.Count < 3; MountingPartData result; if (flag2) { ItFailures.PostFailure(ItFailures.CAMObjectWithoutValidGeometry, familyInstance.Id); result = null; } else { contourFromElement.transformBy(base.MatWcsToPalette); localExtents.transformBy(base.MatWcsToPalette); MountingPartData mountingPartData = new MountingPartData { ElementId = familyInstance.Id, Contour = contourFromElement, Height = localExtents.maxPoint.z - localExtents.minPoint.z, IsOpeningWithoutGeometry = !flag, Type = MountingPartData.Types.DoorWindow, InstallationHeight = localExtents.minPoint.z, Name = familyInstance.Element.Name, UniqueId = familyInstance.UniqueId }; result = mountingPartData; } return(result); }
// Token: 0x060000EB RID: 235 RVA: 0x000093D0 File Offset: 0x000075D0 protected override MountingPartData getOpeningData(RevitElement <Opening> opening, RevitElement <Part> part) { Wall wall = part.getWall(); ItGeVector3d viewDirection = wall.yAxis(); return(base.GetOpeningData(opening, part, viewDirection)); }
// Token: 0x060000E9 RID: 233 RVA: 0x000091B8 File Offset: 0x000073B8 protected internal override void InitializeFromAssembly(AssemblyInstance assemblyInstance) { bool flag = assemblyInstance == null; if (!flag) { Wall wall = assemblyInstance.getMainElement() as Wall; ItGeMatrix3d mat = ItGeMatrix3d.rotation(-1.5707963267948966, ItGeVector3d.kXAxis, ItGePoint3d.kOrigin); ItGeMatrix3d itGeMatrix3d = ItGeMatrix3d.translation(new ItGeVector3d(0.0, 0.0, wall.thickness())); Position position = Position.Undefined; RevitElement <Part> part = assemblyInstance.getPart(null); bool flag2 = part.isNotNull(); if (flag2) { position = part.getViewsidePosition(); } ItGeMatrix3d mat2 = ItGeMatrix3d.kIdentity; bool flag3 = position != Position.Right; if (flag3) { ItGeBoundBlock3d localExtents = assemblyInstance.getLocalExtents(); ItGePoint3d itGePoint3d = localExtents.midPoint; itGePoint3d = itGeMatrix3d * mat * itGePoint3d; mat2 = ItGeMatrix3d.rotation(3.1415926535897931, ItGeVector3d.kYAxis, itGePoint3d); } base.MatAssemblyToPalette = mat2 * itGeMatrix3d * mat; base.InitializeFromAssembly(assemblyInstance); } }
// Token: 0x0600018D RID: 397 RVA: 0x0000ACEC File Offset: 0x00008EEC internal new static SteelGroupElementAreaReinf GetInstance(RevitElement <RebarInSystem> rebarInSystem, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette) { bool flag = rebarInSystem.IsInvalid(); SteelGroupElementAreaReinf result; if (flag) { result = null; } else { SteelGroupElementAreaReinf steelGroupElementAreaReinf = new SteelGroupElementAreaReinf(cncElementData, matWcsToPalette); steelGroupElementAreaReinf.RebarInSystem = rebarInSystem; steelGroupElementAreaReinf.Host = rebarInSystem.Element.getHostingPart(); bool flag2 = steelGroupElementAreaReinf.Host == null; if (flag2) { result = null; } else { steelGroupElementAreaReinf.AreaReinforcement = (rebarInSystem.Document.GetElement(rebarInSystem.Element.SystemId) as AreaReinforcement); steelGroupElementAreaReinf.RebarBarType = (rebarInSystem.Document.GetElement(rebarInSystem.Element.GetTypeId()) as RebarBarType); steelGroupElementAreaReinf.Data = (steelGroupElementAreaReinf.AreaReinforcement.load <ItReinforcement>(null, false) ?? SteelGroupElement.GetEmptyData(steelGroupElementAreaReinf)); steelGroupElementAreaReinf.IronSetsSchematic = rebarInSystem.Element.getIronSets(RebarMode.Schematic); steelGroupElementAreaReinf.IronSetsRealistic = rebarInSystem.Element.getIronSets(RebarMode.Realistic); steelGroupElementAreaReinf.TransformToPalette(); steelGroupElementAreaReinf.SetMinMaxZ(steelGroupElementAreaReinf.IronSetsRealistic); steelGroupElementAreaReinf.SetGroup(); result = steelGroupElementAreaReinf; } } return(result); }
private void readElements() { using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + _dbFilename + ";Version=3;")) { conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = "select id,entity_id,attribute_id,value_id FROM _objects_eav"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int entity_id = reader.GetInt32(1); int attribute_id = reader.GetInt32(2); int value_id = reader.GetInt32(3); if (_idValues.ContainsKey(entity_id) == false) { _idValues[entity_id] = new RevitElement() { ElementId = entity_id } } ; _idValues[entity_id].ParameterValueIds[attribute_id] = value_id; _idValues[entity_id].Parameters[_parameterDict[attribute_id]] = _valueDict[value_id]; } } /// read the ID information for each element. cmd = conn.CreateCommand(); cmd.CommandText = "select id,external_id,category,isType FROM _objects_id"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int id = reader.GetInt32(0); if (_idValues.ContainsKey(id) == false) { _idValues[id] = new RevitElement() { ElementId = id } } ; string guid = reader.GetString(1); string cat = reader.GetString(2); int isType = reader.GetInt32(3); var elem = _idValues[id]; elem.Category = cat; elem.UniqueId = guid; elem.IsType = (isType == 1); } } } }
/// <summary> /// Coping parameters values from Revit elements to wrapper class properties /// </summary> private void Init() { foreach (var info in GetType().GetProperties()) { var parameterName = GetParameterName(info); if (parameterName == null) { continue; } Parameter parameter = null; switch (parameterName) { case BuiltInParameter builtInParameter: parameter = RevitElement.FindParameter(builtInParameter); break; case string pName: parameter = RevitElement.FindParameter(pName); break; } SetProperty(info, parameter); } }
// Token: 0x060000D5 RID: 213 RVA: 0x00008ECC File Offset: 0x000070CC protected override bool ExportUnitechnik(AssemblyInstance assemblyInstance, IEnumerable <RevitElement <Part> > parts, int iProdNo, CNCProjectData projectData) { Floor floor; if (parts == null) { floor = null; } else { RevitElement <Part> revitElement = parts.FirstOrDefault <RevitElement <Part> >(); floor = ((revitElement != null) ? revitElement.getFloor() : null); } Floor floor2 = floor; bool flag = floor2 == null; bool result; if (flag) { ItFailures.PostFailure(ItFailures.UnitechnikFailure, assemblyInstance.Id); result = false; } else { result = base.ExportUnitechnik(assemblyInstance, parts, iProdNo, projectData); } return(result); }
// Token: 0x060001AB RID: 427 RVA: 0x0000BC8C File Offset: 0x00009E8C public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid) { IEnumerable <WireItem> source = base.WireItemsMajor.Union(base.WireItemsMinor); IEnumerable <double> source2 = from item in source select item.GetSteelVolumeInPart(partSolid); return(source2.Sum()); }
// Token: 0x06000154 RID: 340 RVA: 0x0000A4DC File Offset: 0x000086DC public double GetSteelVolumeInPart(RevitElement <Part> part) { double num = 0.0; ItSolid partSolid = part.getSolid(false, null, false, true).DeepClone(); foreach (SteelGroupElement steelGroupElement in this.steelGroupElements) { num += steelGroupElement.GetSteelVolumeInPart(part, partSolid); } return(num); }
// Token: 0x060001C3 RID: 451 RVA: 0x0000C02C File Offset: 0x0000A22C private static ItReinforcement GetReinforcementDataInstance(RevitElement <FamilyInstance> girder, SteelGroupElementGirder result) { ItReinforcement itReinforcement = girder.load <ItReinforcement>(null, false) ?? SteelGroupElement.GetEmptyData(result); bool flag = SteelGroupElementGirder.IsManualGirder(girder, itReinforcement); if (flag) { itReinforcement = SteelGroupElementGirder.GetManualGirderData(girder); } return(itReinforcement); }
private Change buildDeleted(RevitElement element) { Change c = new Change() { ElementId = element.ElementId, Category = element.Category, ChangeType = Change.ChangeTypeEnum.DeletedElement, Level = (element.Level != null) ? element.Level : "", IsType = element.IsType }; c.BoundingBoxDescription = Utilities.RevitUtils.SerializeBoundingBox(element.BoundingBox); return(c); }
/// <summary> /// The SharedParameterCompare /// </summary> /// <param name="current">The current<see cref="RevitElement"/></param> /// <param name="previous">The previous<see cref="RevitElement"/></param> /// <returns>The <see cref="bool"/></returns> private bool SharedParameterCompare(RevitElement current, RevitElement previous) { bool result = false; if (current.sharedParameters == previous.sharedParameters) { result = true; } return(result); }
object GetValueFromParam_nameContext(Element elem, ParamExprGrammarParser.Param_nameContext paramName) { object parValue = null; Element el = elem; if (paramName.ChildCount > 1 && paramName.type() != null) { el = elem.Document.GetElement(RevitElement.GetTypeId()); } parValue = GetParameterValue(el, paramName); return(parValue); }
// Token: 0x060000FB RID: 251 RVA: 0x0000960C File Offset: 0x0000780C protected override void setZPositionOfContour(RevitElement <Part> part, ItOutline outline) { bool flag = part == null || outline == null; if (!flag) { ItGeBoundBlock3d localExtents = part.getLocalExtents(false); ItGeMatrix3d mat = part.ecs(false); ItGeBoundBlock3d transformed = localExtents.GetTransformed(base.MatWcsToPalette * mat); outline.Z = transformed.minPoint.z; } }
/// <summary> /// Execute compare, find same, modified, delete, new element and create a list of element to synchronize on cloud /// </summary> public void Execute() { ModifiedElementToSynchonize = new Dictionary <string, RevitElement>(); Modified = new List <string>(); Same = new List <string>(); Deleted = new List <string>(); New = new List <string>(); Deleted = ProjectProvider.Instance.DicRevitElements.Keys.Except(ModelProvider.Instance.DicRevitElements.Keys).ToList(); New = ModelProvider.Instance.DicRevitElements.Keys.Except(ProjectProvider.Instance.DicRevitElements.Keys).ToList(); var EleToCompareGuid = ModelProvider.Instance.DicRevitElements.Keys.Except(New); //Parallel.ForEach(EleToCompareGuid, guid => foreach (string guid in EleToCompareGuid) { History history = new History(); RevitElement current = ModelProvider.Instance.DicRevitElements[guid]; RevitElement previous = ProjectProvider.Instance.DicRevitElements[guid]; bool geometryIsSame = GeometryCompare(current, previous); bool revitParameterIsSame = ParameterCompare(current, previous); bool sharedParameterIsSame = SharedParameterCompare(current, previous); if (geometryIsSame && revitParameterIsSame && sharedParameterIsSame) { Same.Add(guid); } else { Modified.Add(guid); if (!geometryIsSame) { history.geometryChange = true; } if (!revitParameterIsSame) { history.parameterChange = true; } if (!sharedParameterIsSame) { history.sharedParameterChange = true; } RevitElement revitElement = new RevitElement(previous, current, new List <History> { history }); ModifiedElementToSynchonize.Add(guid, revitElement); } } ; }
private void readGeometry() { using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + _dbFilename + ";Version=3;")) { conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = "select id,BoundingBoxMin,BoundingBoxMax,Location,Location2,Level,Rotation FROM _objects_geom"; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int entity_id = reader.GetInt32(0); if (_idValues.ContainsKey(entity_id) == false) { continue; // not sure how, but let's protect just in case. } string bbMin = reader.GetString(1); string bbMax = reader.GetString(2); string lp = reader.GetString(3); string lp2 = reader.GetString(4); string levName = reader.GetString(5); float rot = reader.GetFloat(6); RevitElement elem = _idValues[entity_id]; if (!String.IsNullOrEmpty(bbMin)) { elem.BoundingBox = new BoundingBoxXYZ() { Min = parsePoint(bbMin), Max = parsePoint(bbMax) } } ; if (!String.IsNullOrEmpty(lp)) { elem.LocationPoint = parsePoint(lp); } if (!String.IsNullOrEmpty(lp2)) { elem.LocationPoint2 = parsePoint(lp2); } elem.Level = levName; elem.Rotation = rot; } } } }
private Change buildNew(RevitElement current) { Element e = _doc.GetElement(new ElementId(current.ElementId)); Change c = new Change() { ElementId = current.ElementId, UniqueId = e.UniqueId, Category = current.Category, ChangeType = Change.ChangeTypeEnum.NewElement, Level = (current.Level != null) ? current.Level : "", IsType = current.IsType }; c.BoundingBoxDescription = Utilities.RevitUtils.SerializeBoundingBox(current.BoundingBox); return(c); }
public bool Save(RevitElement revitElement) { var success = true; if (revitElement.IsValid) { //Code to save revit element in db } else { success = false; } return(success); }
/// <summary> /// The GeometryCompare /// </summary> /// <param name="current">The current<see cref="RevitElement"/></param> /// <param name="previous">The previous<see cref="RevitElement"/></param> /// <returns>The <see cref="bool"/></returns> private bool GeometryCompare(RevitElement current, RevitElement previous) { bool result = false; if (current.boundingBox == previous.boundingBox && current.centroid == previous.centroid && current.location == previous.location && current.geometryParameters == previous.geometryParameters && current.volume == previous.volume) { result = true; } return(result); }
// Token: 0x0600017A RID: 378 RVA: 0x0000AA94 File Offset: 0x00008C94 internal static SteelGroupElement GetInstance(RevitElement <FabricSheet> sheet, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette) { bool flag = SteelGroupElementMeshBase.IsCFS(sheet); SteelGroupElement instance; if (flag) { instance = SteelGroupElementMeshCFS.GetInstance(sheet, cncElementData, matWcsToPalette); } else { instance = SteelGroupElementMeshSFS.GetInstance(sheet, cncElementData, matWcsToPalette); } return(instance); }
// Token: 0x06000195 RID: 405 RVA: 0x0000B13C File Offset: 0x0000933C public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid) { Part hostingPart = this.RebarInSystem.Element.getHostingPart(); bool flag = hostingPart != null && part.Id == hostingPart.Id; double result; if (flag) { result = this.RebarInSystem.Element.Volume; } else { result = 0.0; } return(result); }
private Change compareElements(RevitElement current, RevitElement previous) { // compare the parameter values // at present, we can only compare string values Change c = compareParameters(current, previous); if (c != null) { return(c); } c = compareGeometry(current, previous); return(c); }
// Token: 0x060001CE RID: 462 RVA: 0x0000C334 File Offset: 0x0000A534 public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid) { List <ItSolid> solidListFromFamilyInstance = ItSolid.getSolidListFromFamilyInstance(this.Girder.Element, this.Girder.Element.ecs(), false, null, false); double num = 0.0; foreach (ItSolid itSolid in solidListFromFamilyInstance) { Solid solid = partSolid.Solid.intersect(itSolid.Solid); bool flag = solid != null && solid.Volume.Gt(0.0, -1.0); if (flag) { num += solid.Volume; } } return(num); }