コード例 #1
0
        /// <summary>
        /// Sets the currently selected element.
        /// </summary>
        /// <param name="element">The current element.</param>
        public void SetElement(Elements.Element element)
        {
            if (_enchant != null)
            {
                Extensions.ToggleObject(_enchant, false);
            }
            _element = element;
            switch (element)
            {
            case Elements.Element.Fire:
                _enchant = _fireEnchant;
                break;

            case Elements.Element.Ice:
                _enchant = _iceEnchant;
                break;

            case Elements.Element.Bolt:
                _enchant = _boltEnchant;
                break;

            default:
                _enchant = _fireEnchant;
                break;
            }
            Extensions.ToggleObject(_enchant, false);
        }
コード例 #2
0
        /// <summary>
        /// Gets the value of a family parameter of the current family type, this applies to all family parameters (instance and type).
        /// </summary>
        /// <param name="parameterName">A family parameter of the current type.</param>
        /// <param name="familyTypeName">The name of the family type.</param>
        /// <returns>The parameter value.</returns>
        public object GetParameterValueByName(string familyTypeName, string parameterName)
        {
            Autodesk.Revit.DB.FamilyParameter familyParameter = FamilyManager.get_Parameter(parameterName);
            if (familyParameter == null)
            {
                throw new InvalidOperationException(Properties.Resources.ParameterNotFound);
            }

            TransactionManager.Instance.EnsureInTransaction(this.InternalFamilyDocument);
            SetFamilyDocumentCurrentType(familyTypeName);
            TransactionManager.Instance.TransactionTaskDone();

            switch (familyParameter.StorageType)
            {
            case Autodesk.Revit.DB.StorageType.Integer:
                return(FamilyManager.CurrentType.AsInteger(familyParameter) * UnitConverter.HostToDynamoFactor(familyParameter.Definition.GetSpecTypeId()));

            case Autodesk.Revit.DB.StorageType.Double:
                return(FamilyManager.CurrentType.AsDouble(familyParameter) * UnitConverter.HostToDynamoFactor(familyParameter.Definition.GetSpecTypeId()));

            case Autodesk.Revit.DB.StorageType.String:
                return(FamilyManager.CurrentType.AsString(familyParameter));

            case Autodesk.Revit.DB.StorageType.ElementId:
                Elements.Element element = ElementSelector.ByElementId(FamilyManager.CurrentType.AsElementId(familyParameter).IntegerValue);
                return(element);

            default:
                return(null);
            }
        }
コード例 #3
0
        public DB.ElementId[] ToRevit(Elements.Element hyparElement, LoadContext context)
        {
            if (hyparElement is ElementInstance instance && instance.BaseDefinition is ContentElement content)
            {
                if (content.TryGetLoadedRevitFamily(context, out var familySymbol))
                {
                    var insertionPoint = instance.Transform.Origin.ToXYZ(true);
                    var closestLevel   = GetLevelClosestToZ(insertionPoint.Z, context.Document, out double offsetFromLevel);
                    var placedContent  = context.Document.Create.NewFamilyInstance(insertionPoint, familySymbol, closestLevel, DB.Structure.StructuralType.NonStructural);
                    placedContent.LookupParameter("Elevation from Level")?.Set(offsetFromLevel);
                    try
                    {
                        SetRotationOfInstance(context.Document, instance, content, insertionPoint, placedContent);
                    }
                    catch (Exception e)
                    {
                        context.Logger.Error("Unable to set rotation of instance. Some kinds of elements do not support 3d rotation.");
                        context.Logger.Error(e.Message);
                        context.Logger.Error(e.StackTrace);
                    }

                    placedContent.SetInstanceParametersFromContent(content, context);

                    return(new DB.ElementId[] { placedContent.Id });
                }
                else
                {
                    context.Logger.Error($"Unable to find family {content.Name}, so its instances were not placed.");
                    return(new DB.ElementId[] { });
                }
            }
コード例 #4
0
        public void ShouldHaveBlockTypeAndBlockId(Elements.Element element, string expectedType)
        {
            // arrange/act
            var payload = SlackClient.SerializeObject(element);

            // assert
            payload.Should().Contain($"\"type\":\"{expectedType}\"");
        }
コード例 #5
0
        public override bool CanTranslate(Load targetLoad, Elements.Element targetElement)
        {
            if (targetLoad is Loads.UniformLoad)
            {
                return(true);
            }

            return(false);
        }
コード例 #6
0
        /// <summary>
        /// Get Element's Parameter by Name
        /// </summary>
        /// <param name="element">Element</param>
        /// <param name="name">Parameter Name</param>
        /// <returns>Parameter</returns>
        public static Elements.Parameter ParameterByName(Elements.Element element, string name)
        {
            var param = element.Parameters.Cast <Parameter>()
                        .OrderBy(x => x.InternalParameter.Id.IntegerValue)
                        .FirstOrDefault(x => x.InternalParameter.Definition.Name == name);

            if (param == null)
            {
                return(null);
            }
            else
            {
                return(param);
            }
        }
コード例 #7
0
ファイル: Scene.cs プロジェクト: kyriuch/SharpGUI
        private void addReferenceToAController(Models.Element modelElement, Elements.Element element)
        {
            if (controllerFields.Any(x => x.Name.Equals(modelElement.Name, StringComparison.CurrentCultureIgnoreCase)))
            {
                FieldInfo field = controllerFields.FirstOrDefault(x => x.Name.Equals(modelElement.Name, StringComparison.CurrentCultureIgnoreCase));

                if (field.FieldType.Name.Equals(modelElement.Type))
                {
                    field.SetValue(controller, element);
                }
                else
                {
                    logger.Warning($"Field { field.Name } should be a type of { modelElement.Type }.");
                }
            }
        }
コード例 #8
0
ファイル: Enchant.cs プロジェクト: mcnedward/unity-project
 /// <summary>
 /// Sets the currently selected element.
 /// </summary>
 /// <param name="element">The current element.</param>
 public void SetElement(Elements.Element element)
 {
     if (_enchant != null)
         Extensions.ToggleObject(_enchant, false);
     _element = element;
     switch (element)
     {
         case Elements.Element.Fire:
             _enchant = _fireEnchant;
             break;
         case Elements.Element.Ice:
             _enchant = _iceEnchant;
             break;
         case Elements.Element.Bolt:
             _enchant = _boltEnchant;
             break;
         default:
             _enchant = _fireEnchant;
             break;
     }
     Extensions.ToggleObject(_enchant, false);
 }
コード例 #9
0
        public ADSK.ElementId[] ToRevit(Elements.Element hyparElement, LoadContext context)
        {
            var stdWall = hyparElement as Elements.StandardWall;

            if (stdWall == null)
            {
                return(Array.Empty <ADSK.ElementId>());
            }
            var cl = stdWall.CenterLine.ToRevitCurve(true);
            var offsetFromLevel = 0.0;
            var level           = context.Level ?? FromHyparExtensions.GetLevelClosestToZ(Units.MetersToFeet(stdWall.Transform.Origin.Z), context.Document, out offsetFromLevel);
            var rvtWall         = ADSK.Wall.Create(context.Document, cl, level.Id, false);

            rvtWall.LookupParameter("Unconnected Height").Set(Units.MetersToFeet(stdWall.Height));
            rvtWall.LookupParameter("Base Offset").Set(Units.MetersToFeet(offsetFromLevel));

            // Letting the walls join as they are loaded causes many errors and walls that are missing.
            // For now we disallow joining.
            ADSK.WallUtils.DisallowWallJoinAtEnd(rvtWall, 0);
            ADSK.WallUtils.DisallowWallJoinAtEnd(rvtWall, 1);
            return(new ADSK.ElementId[] { rvtWall.Id });
        }
コード例 #10
0
        public override TclCommand[] Translate(Load ld, Elements.Element targetElement, string targetElementTag)
        {
            var uld = (ld as Loads.UniformLoad);

            var elm = targetElement as Elements.BarElement;

            var localLoad =
                uld.CoordinationSystem == CoordinationSystem.Local ?
                uld.Direction :
                elm.GetTransformationManager().TransformGlobalToLocal(uld.Direction);

            localLoad = localLoad.GetUnit();

            var buf = new List <TclCommand>();

            buf.Add(new TclCommand("eleLoad", "-ele", targetElementTag,
                                   "-type", "-beamUniform",
                                   localLoad.Z * uld.Magnitude,
                                   localLoad.Y * uld.Magnitude,
                                   localLoad.X * uld.Magnitude));

            return(buf.ToArray());
        }
コード例 #11
0
 public abstract bool CanTranslate(Load targetLoad, Elements.Element targetElement);
コード例 #12
0
 public abstract TclCommand[] Translate(Load targetLoad, Elements.Element targetElement, string targetElementTag);
コード例 #13
0
 public ADSK.ElementId[] ToRevit(Elements.Element hyparElement, LoadContext context)
 {
     throw new NotImplementedException();
 }
コード例 #14
0
ファイル: ElementsDirector.cs プロジェクト: Team-on/works
 public void AddElement(Elements.Element elem)
 {
     elem.OnPassIntoDirector(screen);
     elements.Add(elem);
 }